falco: drive WLAN_DISABLE_L low in S3 and S5

When the board is in S3 and S5 the WLAN_DISABLE_L signal
can leak power into the WLAN power well since the GPIO
controlling WLAN_DISABLE_L is in the suspend well. Therefore,
drive WLAN_DISABLE_L low to avoid the power leak.

Change-Id: I1a0df80dd47fdbd535aca7a9d49253794c480606
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/61421
Reviewed-on: http://review.coreboot.org/4358
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Aaron Durbin 2013-07-10 09:04:47 -05:00 committed by Stefan Reinauer
parent c5aac958ae
commit 3641cb1d66
1 changed files with 9 additions and 0 deletions

View File

@ -32,6 +32,9 @@
#include <ec/google/chromeec/ec.h> #include <ec/google/chromeec/ec.h>
#include "ec.h" #include "ec.h"
/* GPIO46 controls the WLAN_DISABLE_L signal. */
#define GPIO_WLAN_DISABLE_L 46
int mainboard_io_trap_handler(int smif) int mainboard_io_trap_handler(int smif)
{ {
switch (smif) { switch (smif) {
@ -98,6 +101,9 @@ void mainboard_smi_sleep(u8 slp_typ)
if (smm_get_gnvs()->s3u1 == 0) if (smm_get_gnvs()->s3u1 == 0)
google_chromeec_set_usb_charge_mode( google_chromeec_set_usb_charge_mode(
1, USB_CHARGE_MODE_DISABLED); 1, USB_CHARGE_MODE_DISABLED);
/* Prevent leak from standby rail to WLAN rail in S3. */
set_gpio(GPIO_WLAN_DISABLE_L, 0);
break; break;
case 5: case 5:
if (smm_get_gnvs()->s5u0 == 0) if (smm_get_gnvs()->s5u0 == 0)
@ -106,6 +112,9 @@ void mainboard_smi_sleep(u8 slp_typ)
if (smm_get_gnvs()->s5u1 == 0) if (smm_get_gnvs()->s5u1 == 0)
google_chromeec_set_usb_charge_mode( google_chromeec_set_usb_charge_mode(
1, USB_CHARGE_MODE_DISABLED); 1, USB_CHARGE_MODE_DISABLED);
/* Prevent leak from standby rail to WLAN rail in S5. */
set_gpio(GPIO_WLAN_DISABLE_L, 0);
break; break;
} }