diff options
author | Wai-Hong Tam <waihong@google.com> | 2018-11-09 16:13:43 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-12-09 00:48:16 -0800 |
commit | 768ce709a6dd85921e60bf871ff0d34824eba990 (patch) | |
tree | 80e542e70ab9c08383becbaec67b773de5edcf8e /board/cheza | |
parent | a47d02a9411d5ec2e6397eaf9ec0b8a73aebaa29 (diff) | |
download | chrome-ec-768ce709a6dd85921e60bf871ff0d34824eba990.tar.gz |
cheza: Make chipset_reset do a warm reset
Make the chipset_reset function do a warm reset to match the
expectation of what AP-initiated reset does, which is also a
warm reset but triggered by PS_HOLD.
The warm reset is done by sending a low pulse to the PMIC
RESIN_L pin, which requires PMIC registers being reprogrammed
that makes it as a warm reset trigger.
If the PMIC registers not reprogrammed properly, it falls back
to do a cold reset power sequence. It is done by EC monitoring
the AP_RST_L signal, which is already one of the power signals.
BRANCH=none
BUG=b:117941911
TEST=Typed "apreset" just after "reboot" (PMIC registers not
programmed), checked the transition S0 -> S5 -> S0.
TEST=Typed "apreset" when AP booted into userspace (PMIC
registers programmed), checked a warm reset happened, AP_RST_L
toggled.
Change-Id: Ia1c5c7a8fd56a9e4867d4dd4c8bf2333c083c616
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1330117
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Diffstat (limited to 'board/cheza')
-rw-r--r-- | board/cheza/board.c | 6 | ||||
-rw-r--r-- | board/cheza/board.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/board/cheza/board.c b/board/cheza/board.c index 715e8fa768..8570349f77 100644 --- a/board/cheza/board.c +++ b/board/cheza/board.c @@ -188,10 +188,10 @@ BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); /* Power signal list. Must match order of enum power_signal. */ const struct power_signal_info power_signal_list[] = { - [SDM845_AP_RST_L] = { + [SDM845_AP_RST_ASSERTED] = { GPIO_AP_RST_L, - POWER_SIGNAL_ACTIVE_HIGH | POWER_SIGNAL_DISABLE_AT_BOOT, - "AP_RST_L"}, + POWER_SIGNAL_ACTIVE_LOW | POWER_SIGNAL_DISABLE_AT_BOOT, + "AP_RST_ASSERTED"}, [SDM845_PS_HOLD] = { GPIO_PS_HOLD, POWER_SIGNAL_ACTIVE_HIGH, diff --git a/board/cheza/board.h b/board/cheza/board.h index dfdb6e92f4..a243de34f3 100644 --- a/board/cheza/board.h +++ b/board/cheza/board.h @@ -169,7 +169,7 @@ #include "registers.h" enum power_signal { - SDM845_AP_RST_L = 0, + SDM845_AP_RST_ASSERTED = 0, SDM845_PS_HOLD, SDM845_PMIC_FAULT_L, SDM845_POWER_GOOD, |