diff options
author | Aseda Aboagye <aaboagye@google.com> | 2020-01-30 18:25:33 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-02-05 08:28:46 +0000 |
commit | fc1e135e21727c73e25c7876fb8ef1ae4f54ce9e (patch) | |
tree | bc06a4b15cd2d459e29a7402585a7cabe0c94c2a /baseboard/dedede/baseboard.c | |
parent | 9711789044958d1a67c36bce6eec88948f9dd980 (diff) | |
download | chrome-ec-fc1e135e21727c73e25c7876fb8ef1ae4f54ce9e.tar.gz |
dedede: Override power_signal_get_level()
The dedede EC's don't have GPIOs for some of the signals used for power
sequencing but instead have other logic. The common chipset driver
assumes that all these signals are either GPIOs or eSPI virtual wires
therefore these signals were not being updated correctly for dedede.
This commit adds an override for power_signal_get_level() in order to
get the correct values for the signals from the baseboard specific code.
BUG=b:148169171
BRANCH=None
TEST=Build and flash waddledoo, verify that DUT can boot to S0.
Change-Id: Ibccb35405d9e09bfe0873b3d080cfb6a81e61af3
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2032729
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'baseboard/dedede/baseboard.c')
-rw-r--r-- | baseboard/dedede/baseboard.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/baseboard/dedede/baseboard.c b/baseboard/dedede/baseboard.c index 7d410559c4..f6afa3088b 100644 --- a/baseboard/dedede/baseboard.c +++ b/baseboard/dedede/baseboard.c @@ -42,6 +42,23 @@ __override int intel_x86_get_pg_ec_all_sys_pwrgd(void) gpio_get_level(GPIO_PG_DRAM_OD); } +__override int power_signal_get_level(enum gpio_signal signal) +{ + if (signal == GPIO_PG_EC_DSW_PWROK) + return intel_x86_get_pg_ec_dsw_pwrok(); + + if (signal == GPIO_PG_EC_ALL_SYS_PWRGD) + return intel_x86_get_pg_ec_all_sys_pwrgd(); + + if (IS_ENABLED(CONFIG_HOSTCMD_ESPI)) { + /* Check signal is from GPIOs or VWs */ + if (espi_signal_is_vw(signal)) + return espi_vw_get_wire(signal); + } + return gpio_get_level(signal); + +} + void baseboard_chipset_startup(void) { /* Allow keyboard backlight to be enabled */ |