summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parker <dparker@chromium.org>2013-07-03 15:35:36 -0700
committerChromeBot <chrome-bot@google.com>2013-07-03 20:52:34 -0700
commit6321de981146d2da32466c0aa335a89e85aba521 (patch)
tree56818a50e454037160c96560f10839a0257d4b7b
parent5f30f40cb5a83bc900ce3400d6a5f3327bc96fdc (diff)
downloadchrome-ec-6321de981146d2da32466c0aa335a89e85aba521.tar.gz
haswell: Enable LTE module in S0
Note that the PP3300_LTE_EN signal does different things on different boards. On peppy/slippy it controls both LTE power and gates a wake interrupt to the PCH. On falco it just gates the wake interrupt; module power is tied to the DX rail. On all boards there is a separate DISABLE_L signal from the PCH. BUG=chrome-os-partner:20513 BRANCH=falco,peppy TEST=Manual. Verify module detectable via lsusb in S0. Verify power to module is disabled in S3. Signed-off-by: Dave Parker <dparker@chromium.org> Change-Id: I4984081009e4a1ce8ad8996e97f779c545829ce5 Reviewed-on: https://gerrit.chromium.org/gerrit/60941 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Commit-Queue: Dave Parker <dparker@chromium.org> Tested-by: Dave Parker <dparker@chromium.org>
-rw-r--r--common/x86_power_haswell.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/common/x86_power_haswell.c b/common/x86_power_haswell.c
index f47a2c6769..d4d4e868e5 100644
--- a/common/x86_power_haswell.c
+++ b/common/x86_power_haswell.c
@@ -364,6 +364,7 @@ static void x86_power_init(void)
gpio_set_level(GPIO_PP1350_EN, 0);
gpio_set_level(GPIO_EC_EDP_VDD_EN, 0);
gpio_set_level(GPIO_PP3300_DX_EN, 0);
+ gpio_set_level(GPIO_PP3300_LTE_EN, 0);
gpio_set_level(GPIO_PP3300_WLAN_EN, 0);
gpio_set_level(GPIO_PP5000_EN, 0);
gpio_set_level(GPIO_PCH_RSMRST_L, 0);
@@ -579,10 +580,14 @@ void chipset_task(void)
gpio_set_level(GPIO_PP3300_WLAN_EN, 1);
gpio_set_level(GPIO_WLAN_OFF_L, 1);
+ /* Enable LTE/WWAN */
+ gpio_set_level(GPIO_PP3300_LTE_EN, 1);
+
/* Wait for non-core power rails good */
if (wait_in_signals(IN_PGOOD_S0)) {
chipset_force_shutdown();
gpio_set_level(GPIO_WLAN_OFF_L, 0);
+ gpio_set_level(GPIO_PP3300_LTE_EN, 0);
gpio_set_level(GPIO_PP3300_WLAN_EN, 0);
gpio_set_level(GPIO_EC_EDP_VDD_EN, 0);
gpio_set_level(GPIO_PP3300_DX_EN, 0);
@@ -633,6 +638,9 @@ void chipset_task(void)
gpio_set_level(GPIO_WLAN_OFF_L, 0);
gpio_set_level(GPIO_PP3300_WLAN_EN, 0);
+ /* Disable LTE/WWAN */
+ gpio_set_level(GPIO_PP3300_LTE_EN, 0);
+
/*
* Deassert prochot since CPU is off and we're about
* to drop +VCCP.