summaryrefslogtreecommitdiff
path: root/baseboard/dedede/baseboard.c
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2020-01-30 18:25:33 -0800
committerCommit Bot <commit-bot@chromium.org>2020-02-05 08:28:46 +0000
commitfc1e135e21727c73e25c7876fb8ef1ae4f54ce9e (patch)
treebc06a4b15cd2d459e29a7402585a7cabe0c94c2a /baseboard/dedede/baseboard.c
parent9711789044958d1a67c36bce6eec88948f9dd980 (diff)
downloadchrome-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.c17
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 */