diff options
author | Dave Parker <dparker@chromium.org> | 2013-07-03 15:35:36 -0700 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-07-03 20:52:34 -0700 |
commit | 6321de981146d2da32466c0aa335a89e85aba521 (patch) | |
tree | 56818a50e454037160c96560f10839a0257d4b7b | |
parent | 5f30f40cb5a83bc900ce3400d6a5f3327bc96fdc (diff) | |
download | chrome-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.c | 8 |
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. |