summaryrefslogtreecommitdiff
path: root/power
diff options
context:
space:
mode:
authorSooraj Govindan <sooraj.govindan@intel.com>2020-02-07 19:35:25 +0530
committerCommit Bot <commit-bot@chromium.org>2020-02-19 21:57:57 +0000
commit2396f0e9bcd6fe2ac3fa60920771882299c2d7e5 (patch)
tree79b47923020198bca950534a81e87fb2dacacadb /power
parent0340484f40f22e3e26aaf490c292363be3697445 (diff)
downloadchrome-ec-2396f0e9bcd6fe2ac3fa60920771882299c2d7e5.tar.gz
waddledoo:Handle EC_AP_PCH_PWROK_OD and ALL_SYS_PWRGD
As per Waddledoo power sequencing requirements, 1. ALL_SYS_PWRGD should be driven based on DRAM power good and the PP1050_ST power good. 2. the EC needs to assert EC_AP_PCH_PWROK_OD, with a 2ms minimum delay after receiving the DRAM power good and the PP1050_ST power good. 3. Enable CONFIG_BACKLIGHT_LID BUG=b:147257114 BRANCH=None TEST=make -j BOARD=waddledoo; flash waddledoo, verify that DUT can boot to S0. Change-Id: I5ad226faa15cfe8ae569524decf405bbd378a28c Signed-off-by: Sooraj Govindan <sooraj.govindan@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2044250 Tested-by: Sooraj Govindan <sooraj.govindan@intel.corp-partner.google.com> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'power')
-rw-r--r--power/icelake.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/power/icelake.c b/power/icelake.c
index 2a2d484b85..c020b5541f 100644
--- a/power/icelake.c
+++ b/power/icelake.c
@@ -82,6 +82,11 @@ __overridable int intel_x86_get_pg_ec_all_sys_pwrgd(void)
return gpio_get_level(GPIO_PG_EC_ALL_SYS_PWRGD);
}
+__overridable void board_jsl_all_sys_pwrgd(int value)
+{
+
+}
+
void chipset_force_shutdown(enum chipset_shutdown_reason reason)
{
int timeout_ms = 50;
@@ -161,11 +166,12 @@ static void enable_pp5000_rail(void)
}
#ifdef CONFIG_CHIPSET_JASPERLAKE
-static void assert_ec_ap_vccst_pwrgd(void)
+static void assert_ec_ap_vccst_pwrgd_pch_pwrok(void)
{
GPIO_SET_LEVEL(GPIO_EC_AP_VCCST_PWRGD_OD, 1);
+ GPIO_SET_LEVEL(GPIO_EC_AP_PCH_PWROK_OD, 1);
}
-DECLARE_DEFERRED(assert_ec_ap_vccst_pwrgd);
+DECLARE_DEFERRED(assert_ec_ap_vccst_pwrgd_pch_pwrok);
#endif /* CONFIG_CHIPSET_JASPERLAKE */
enum power_state power_handle_state(enum power_state state)
@@ -189,14 +195,19 @@ enum power_state power_handle_state(enum power_state state)
#ifdef CONFIG_CHIPSET_JASPERLAKE
/*
- * Assert VCCST power good when ALL_SYS_PWRGD is received with a 2ms
- * delay minimum.
+ * Set ALL_SYS_PWRGD after receiving both PG_DRAM and PG_PP1050_ST.
+ * Assert VCCST power good and PCH_PWROK, when ALL_SYS_PWRGD is
+ * received with a 2ms delay minimum.
*/
if (all_sys_pwrgd_in && !gpio_get_level(GPIO_EC_AP_VCCST_PWRGD_OD)) {
- hook_call_deferred(&assert_ec_ap_vccst_pwrgd_data, 2 * MSEC);
+ board_jsl_all_sys_pwrgd(all_sys_pwrgd_in);
+ hook_call_deferred(&assert_ec_ap_vccst_pwrgd_pch_pwrok_data,
+ 2 * MSEC);
} else if (!all_sys_pwrgd_in &&
gpio_get_level(GPIO_EC_AP_VCCST_PWRGD_OD)) {
GPIO_SET_LEVEL(GPIO_EC_AP_VCCST_PWRGD_OD, 0);
+ GPIO_SET_LEVEL(GPIO_EC_AP_PCH_PWROK_OD, 0);
+ board_jsl_all_sys_pwrgd(all_sys_pwrgd_in);
}
#endif /* CONFIG_CHIPSET_JASPERLAKE */