diff options
author | Diana Z <dzigterman@chromium.org> | 2020-07-24 10:58:47 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-24 20:59:13 +0000 |
commit | 639e946785ff12f5c77fcc66880bbd998bc1d460 (patch) | |
tree | 1be6368f571999b2716130f843f8871a55d5ab47 /baseboard | |
parent | f863427cb86267ff4b36a91c49b2733b071da178 (diff) | |
download | chrome-ec-639e946785ff12f5c77fcc66880bbd998bc1d460.tar.gz |
Dedede: Restore pull-up on PG_PP1050_ST_OD after jumping
After RSMRST sets, we configure a pull-up on PG_PP1020_ST_OD. This
pull-up is lost during GPIO init after a sysjump, so restore it before
the chipset init.
BRANCH=None
BUG=b:159863180
TEST=on waddledee and waddledoo, boot to the OS and run "sysjump rw" and
"sysjump ro" on the EC console
Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: I1b543329de976c5f64dbfbebf8f7576e70e63084
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2314939
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'baseboard')
-rw-r--r-- | baseboard/dedede/baseboard.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/baseboard/dedede/baseboard.c b/baseboard/dedede/baseboard.c index 0a88006a33..6ec8b42742 100644 --- a/baseboard/dedede/baseboard.c +++ b/baseboard/dedede/baseboard.c @@ -136,7 +136,7 @@ static void pp3300_a_pgood_preserve(void) } DECLARE_HOOK(HOOK_SYSJUMP, pp3300_a_pgood_preserve, HOOK_PRIO_DEFAULT); -static void pp3300_a_pgood_restore(void) +static void baseboard_prepare_power_signals(void) { const int *stored; int version, size; @@ -147,8 +147,13 @@ static void pp3300_a_pgood_restore(void) (size == sizeof(pp3300_a_pgood))) /* Valid PP3300 status found, restore before CHIPSET init */ pp3300_a_pgood = *stored; + + /* Restore pull-up on PG_PP1050_ST_OD */ + if (system_jumped_to_this_image() && + gpio_get_level(GPIO_RSMRST_L_PGOOD)) + board_after_rsmrst(1); } -DECLARE_HOOK(HOOK_INIT, pp3300_a_pgood_restore, HOOK_PRIO_FIRST); +DECLARE_HOOK(HOOK_INIT, baseboard_prepare_power_signals, HOOK_PRIO_FIRST); __override int intel_x86_get_pg_ec_all_sys_pwrgd(void) { |