summaryrefslogtreecommitdiff
path: root/src/mainboard/google/eve
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google/eve')
-rw-r--r--src/mainboard/google/eve/ec.c4
-rw-r--r--src/mainboard/google/eve/ec.h6
-rw-r--r--src/mainboard/google/eve/smihandler.c2
3 files changed, 12 insertions, 0 deletions
diff --git a/src/mainboard/google/eve/ec.c b/src/mainboard/google/eve/ec.c
index 868714aac1..d5710f326d 100644
--- a/src/mainboard/google/eve/ec.c
+++ b/src/mainboard/google/eve/ec.c
@@ -24,6 +24,10 @@ void mainboard_ec_init(void)
google_chromeec_log_events(MAINBOARD_EC_LOG_EVENTS |
MAINBOARD_EC_S3_WAKE_EVENTS);
+ /* Log and clear device events that may wake the system */
+ google_chromeec_log_device_events(
+ MAINBOARD_EC_S3_DEVICE_EVENTS);
+
/* Disable SMI and wake events */
google_chromeec_set_smi_mask(0);
diff --git a/src/mainboard/google/eve/ec.h b/src/mainboard/google/eve/ec.h
index fa0dc21f75..81d591cb40 100644
--- a/src/mainboard/google/eve/ec.h
+++ b/src/mainboard/google/eve/ec.h
@@ -48,6 +48,7 @@
/* EC can wake from S3 with lid or power button or key press */
#define MAINBOARD_EC_S3_WAKE_EVENTS \
(MAINBOARD_EC_S5_WAKE_EVENTS |\
+ EC_HOST_EVENT_MASK(EC_HOST_EVENT_DEVICE) |\
EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED))
/* Log EC wake events plus EC shutdown events */
@@ -56,6 +57,11 @@
EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN) |\
EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC))
+/* EC device events to enable and log in S3 */
+#define MAINBOARD_EC_S3_DEVICE_EVENTS \
+ (EC_DEVICE_EVENT_MASK(EC_DEVICE_EVENT_TRACKPAD) |\
+ EC_DEVICE_EVENT_MASK(EC_DEVICE_EVENT_DSP))
+
/*
* ACPI related definitions for ASL code.
*/
diff --git a/src/mainboard/google/eve/smihandler.c b/src/mainboard/google/eve/smihandler.c
index 493a3349e5..f51248cef5 100644
--- a/src/mainboard/google/eve/smihandler.c
+++ b/src/mainboard/google/eve/smihandler.c
@@ -36,6 +36,8 @@ void mainboard_smi_sleep(u8 slp_typ)
{
chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS,
MAINBOARD_EC_S5_WAKE_EVENTS);
+ chromeec_smi_device_event_sleep(slp_typ,
+ MAINBOARD_EC_S3_DEVICE_EVENTS, 0);
mainboard_gpio_smi_sleep(slp_typ);
}