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); }