ryu: workaround MAX77620 shutdown issue

When shutting down the MAX77620 PMIC by asseting its SHDN pin, the
EN_PP3300 output of the PMIC (GPIO3) is not going off keeping the PP3300
rail up. Workaround that issue by removing the pull-up on EN_PP3300 when
we assert SHDN.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>

BRANCH=none
BUG=chrome-os-partner:38689
TEST=on a P5 board, type "apshutdown" and see the power state machine
going to S5, type "powerbtn" and see it going back to S0.

Change-Id: I0e5fba6da118d931b07fff58088604ee00a6bcdd
Reviewed-on: https://chromium-review.googlesource.com/263958
Trybot-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
This commit is contained in:
Vincent Palatin
2015-04-03 11:50:57 -07:00
committed by ChromeOS Commit Bot
parent 25e6261ce5
commit 1f7961e693

View File

@@ -144,6 +144,11 @@ static void set_ap_reset(int asserted)
*/
static void set_pmic_pwron(int asserted)
{
#ifdef BOARD_RYU
/* TODO(crosbug.com/p/38689) Workaround for MAX77620 PMIC issue */
if (asserted)
gpio_set_flags(GPIO_EN_PP3300_RSVD, GPIO_INPUT | GPIO_PULL_UP);
#endif /* BOARD_RYU */
/* Signal is active-low */
gpio_set_level(GPIO_PMIC_PWRON_L, asserted ? 0 : 1);
}
@@ -158,6 +163,11 @@ static void set_pmic_therm(int asserted)
{
/* Signal is active-low */
gpio_set_level(GPIO_PMIC_THERM_L, asserted ? 0 : 1);
#ifdef BOARD_RYU
/* TODO(crosbug.com/p/38689) Workaround for MAX77620 PMIC issue */
if (asserted)
gpio_set_flags(GPIO_EN_PP3300_RSVD, GPIO_INPUT);
#endif /* BOARD_RYU */
}
/**