summaryrefslogtreecommitdiff
path: root/src/mainboard/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google')
-rw-r--r--src/mainboard/google/falco/smihandler.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mainboard/google/falco/smihandler.c b/src/mainboard/google/falco/smihandler.c
index 7b7dd69beb..52dd77654a 100644
--- a/src/mainboard/google/falco/smihandler.c
+++ b/src/mainboard/google/falco/smihandler.c
@@ -32,6 +32,9 @@
#include <ec/google/chromeec/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)
{
switch (smif) {
@@ -98,6 +101,9 @@ void mainboard_smi_sleep(u8 slp_typ)
if (smm_get_gnvs()->s3u1 == 0)
google_chromeec_set_usb_charge_mode(
1, USB_CHARGE_MODE_DISABLED);
+
+ /* Prevent leak from standby rail to WLAN rail in S3. */
+ set_gpio(GPIO_WLAN_DISABLE_L, 0);
break;
case 5:
if (smm_get_gnvs()->s5u0 == 0)
@@ -106,6 +112,9 @@ void mainboard_smi_sleep(u8 slp_typ)
if (smm_get_gnvs()->s5u1 == 0)
google_chromeec_set_usb_charge_mode(
1, USB_CHARGE_MODE_DISABLED);
+
+ /* Prevent leak from standby rail to WLAN rail in S5. */
+ set_gpio(GPIO_WLAN_DISABLE_L, 0);
break;
}