diff options
author | Rachel Nancollas <rachelsn@google.com> | 2016-08-16 10:40:39 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-17 19:17:13 -0700 |
commit | 2d96f851ab2df57b447e65ac2c2365572223a36d (patch) | |
tree | b534208df55727c2c0493f2624623551040acf09 | |
parent | 0713fff57d9263e2fb4baf8ef0879778f7478a9a (diff) | |
download | chrome-ec-2d96f851ab2df57b447e65ac2c2365572223a36d.tar.gz |
Reef: Turns off correct power rails when entering G3
Turn off PP3300_A, PP5000_A, and PMIC when chipset_do_shutdown is called.
BUG=chromium:54962
TEST=Press power button for 9 seconds and confirm that PP3300_A, PP5000_A,
and PPVAR_VNN are at 0 volts. Also verify that system boots from G3 when
power button is pressed.
BRANCH=None
Change-Id: Ib8347873728e3940fd588599403c94d0f264f64c
Signed-off-by: Rachel Nancollas <rachelsn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/371340
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Rachel Nancollas <rachelsn@google.com>
Tested-by: Kevin K Wong <kevin.k.wong@intel.com>
Reviewed-by: David Hendricks <dhendrix@chromium.org>
Reviewed-by: Kevin K Wong <kevin.k.wong@intel.com>
-rw-r--r-- | board/reef/board.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/board/reef/board.c b/board/reef/board.c index 1a9dc5e7bc..53db204442 100644 --- a/board/reef/board.c +++ b/board/reef/board.c @@ -583,12 +583,27 @@ DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT); */ void chipset_do_shutdown(void) { +#if IS_PROTO == 1 /* * If we shut off TCPCs the TCPC tasks will fail and spam the * EC console with I2C errors. So for now we'll leave the TCPCs * on which means leaving PMIC_EN, PP3300, and PP5000 enabled. */ cprintf(CC_CHIPSET, "%s called, but not doing anything.\n", __func__); +#else + /* Disable PMIC */ + gpio_set_level(GPIO_PMIC_EN, 0); + + /*Disable 3.3V rail */ + gpio_set_level(GPIO_EN_PP3300, 0); + while (gpio_get_level(GPIO_PP3300_PG)) + ; + + /*Disable 5V rail */ + gpio_set_level(GPIO_EN_PP5000, 0); + while (gpio_get_level(GPIO_PP5000_PG)) + ; +#endif } void board_set_gpio_hibernate_state(void) |