diff options
author | ChromeOS Developer <dparker@chromium.org> | 2014-03-06 10:11:39 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-03-08 00:52:18 +0000 |
commit | cd1a1e90fa4ee704c96cfdb75d03978e3bdd8b88 (patch) | |
tree | b95f38c46c2de0be6ced8e15f341269979f298fb | |
parent | 4c9c03a0e7f0f04c9e31f38af857b4e300449512 (diff) | |
download | chrome-ec-cd1a1e90fa4ee704c96cfdb75d03978e3bdd8b88.tar.gz |
Peppy: Shutdown immediately if PP5000 rail goes down unexpectedly
BUG=chrome-os-partner:25833
BRANCH=peppy
TEST=Trip the PP5000 VR by over-volting the rail. Verify that
the system shuts down rather than the EC becoming unresponsive
due to loosing PP3300_EC unexpectedly. Check both S0 and S3
cases.
Change-Id: I1e95e029b6831ac50671338c1fc927237f8560fd
Signed-off-by: Dave Parker <dparker@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/189039
Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r-- | board/peppy/board.c | 6 | ||||
-rw-r--r-- | common/chipset_x86_common.c | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/board/peppy/board.c b/board/peppy/board.c index 57c0a75f9e..399a494af0 100644 --- a/board/peppy/board.c +++ b/board/peppy/board.c @@ -52,7 +52,11 @@ const struct gpio_info gpio_list[] = { x86_interrupt}, {"PP1350_PGOOD", LM4_GPIO_H, (1<<6), GPIO_INT_BOTH, x86_interrupt}, - {"PP5000_PGOOD", LM4_GPIO_N, (1<<0), GPIO_INT_BOTH, + /* + * Catch PP5000_PGOOD interrupts while in S3 + * (http://crosbug.com/p/25833) + */ + {"PP5000_PGOOD", LM4_GPIO_N, (1<<0), GPIO_INT_BOTH_DSLEEP, x86_interrupt}, {"VCORE_PGOOD", LM4_GPIO_C, (1<<6), GPIO_INT_BOTH, x86_interrupt}, diff --git a/common/chipset_x86_common.c b/common/chipset_x86_common.c index 1652564df4..34c2647990 100644 --- a/common/chipset_x86_common.c +++ b/common/chipset_x86_common.c @@ -335,11 +335,11 @@ DECLARE_HOOK(HOOK_AC_CHANGE, x86_ac_change, HOOK_PRIO_DEFAULT); void x86_interrupt(enum gpio_signal signal) { #ifdef BOARD_peppy - /* Catch the PP5000 rail going down in S0 quicky as it is likely the + /* Catch the PP5000 rail going down unexpectedly as it is likely the * PP3300_EC rail is going down with it. (http://crosbug.com/p/25833) */ if (signal == GPIO_PP5000_PGOOD && (gpio_get_level(signal) == 0) && - chipset_in_state(CHIPSET_STATE_ON)) { + (gpio_get_level(GPIO_PP5000_EN) == 1)) { usb_port_all_ports_off(); CPRINTF("[%T Disabled USB ports and triggering shutdown]\n"); chipset_force_shutdown(); |