diff options
author | Aseda Aboagye <aaboagye@google.com> | 2020-04-08 20:01:04 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-04-21 19:45:33 +0000 |
commit | d8d1f71a4f5e53d97ab99f86a2cbd2aa1dd7a268 (patch) | |
tree | 0dd7f28ccb6704ee9790e0b0a3793e50caf05c15 /baseboard/dedede/baseboard.c | |
parent | 071e1b8f7604d2bcc3fe9d775b7d6098bf38dc50 (diff) | |
download | chrome-ec-d8d1f71a4f5e53d97ab99f86a2cbd2aa1dd7a268.tar.gz |
waddledoo/waddledee: Deassert ALL_SYS_PGOOD quickly
According to tPLT17 in the PDG, the time from SLP_S3_L assertion to
VCCIN_EN de-assertion should be less than 200us, but this was not
occurring on waddledoo. This commit adds a special interrupt handler
in order to meet that timing requirement by immediately deasserting
ALL_SYS_PGOOD once SLP_S3_L is asserted.
BUG=b:152552074
BRANCH=None
TEST=Build and flash waddledoo, boot and shut AP down, verify that the
time between SLP_S3_L asserting and ALL_SYS_PGOOD deasserting is less
than 200us.
TEST=`make -j buildall`
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Change-Id: Ib34016d5bdfa956f410dde3e3b3074bd306a18f9
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2142744
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'baseboard/dedede/baseboard.c')
-rw-r--r-- | baseboard/dedede/baseboard.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/baseboard/dedede/baseboard.c b/baseboard/dedede/baseboard.c index 59c23f560a..f7fa77feed 100644 --- a/baseboard/dedede/baseboard.c +++ b/baseboard/dedede/baseboard.c @@ -134,6 +134,20 @@ __override int power_signal_get_level(enum gpio_signal signal) } +void baseboard_all_sys_pgood_interrupt(enum gpio_signal signal) +{ + /* + * We need to deassert ALL_SYS_PGOOD within 200us of SLP_S3_L asserting. + * that is why we do this here instead of waiting for the chipset + * driver to. + */ + if (!gpio_get_level(GPIO_SLP_S3_L)) + gpio_set_level(GPIO_ALL_SYS_PWRGD, 0); + + /* Now chain off to the normal power signal interrupt handler. */ + power_signal_interrupt(signal); +} + void baseboard_chipset_startup(void) { /* Allow keyboard backlight to be enabled */ |