diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2015-04-09 16:15:45 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-04-11 00:35:59 +0000 |
commit | 68f65494c7f1d379b6b1a02a026f56a24753444f (patch) | |
tree | fe883ab620c5c49c783c0d04a816704fc88b442b /power | |
parent | 15391709fd964e23d91deaf3db832a9d83da1ea5 (diff) | |
download | chrome-ec-68f65494c7f1d379b6b1a02a026f56a24753444f.tar.gz |
ryu: rework the workaround for the EN_PP3300 issue
When shutting down the MAX77620 PMIC by asserting its SHDN pin, the
EN_PP3300 output of the PMIC (GPIO3) is not driving low keeping the PP3300
rail up. Workaround that issue by removing the pull-up on EN_PP3300 when
we assert SHDN.
Revert the previous CL 263958 aka "ryu: workaround MAX77620 shutdown issue",
in order to use a better workaround which ensures that the power rails
sequencing at startup
Detect the PP1800 rail going up and down by reading the HPD_IN gpio
state (which has a pull-up tied to PP1800), then enable/disable
EN_PP3300 in sequence.
The code using an interrupt on HPD_IN is enabled only on P5,
and as a downside, it is killing the base charging on those boards.
Indeed HPD_IN(C1) is hijacking the EXTINT1 which used to be connected
to the LID_OPEN (E1) GPIO used for the base detection.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=none
BUG=chrome-os-partner:38689
TEST=on both P4 and P5 boards, do various power cycling sequences of the
AP using the "apshutdown" and "powerbtn" commands.
Change-Id: Icad6e9ae6a08d76cbfd19f97dd7c129bf43037d8
Reviewed-on: https://chromium-review.googlesource.com/265186
Trybot-Ready: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'power')
-rw-r--r-- | power/tegra.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/power/tegra.c b/power/tegra.c index 2bdba8b5f9..5efd41e61d 100644 --- a/power/tegra.c +++ b/power/tegra.c @@ -144,11 +144,6 @@ 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); } @@ -163,11 +158,6 @@ 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 */ } /** |