summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRachel Nancollas <rachelsn@google.com>2016-08-16 10:40:39 -0700
committerchrome-bot <chrome-bot@chromium.org>2016-08-17 19:17:13 -0700
commit2d96f851ab2df57b447e65ac2c2365572223a36d (patch)
treeb534208df55727c2c0493f2624623551040acf09
parent0713fff57d9263e2fb4baf8ef0879778f7478a9a (diff)
downloadchrome-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.c15
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)