diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c index 639719a85d..113de0ca2c 100644 --- a/src/ec/google/chromeec/ec.c +++ b/src/ec/google/chromeec/ec.c @@ -160,6 +160,21 @@ int google_chromeec_clear_events_b(u32 mask) EC_CMD_HOST_EVENT_CLEAR_B, mask); } +int google_chromeec_get_mkbp_event(struct ec_response_get_next_event *event) +{ + struct chromeec_command cmd; + + cmd.cmd_code = EC_CMD_GET_NEXT_EVENT; + cmd.cmd_version = 0; + cmd.cmd_data_in = NULL; + cmd.cmd_size_in = 0; + cmd.cmd_data_out = event; + cmd.cmd_size_out = sizeof(*event); + cmd.cmd_dev_index = 0; + + return google_chromeec_command(&cmd); +} + /* Get the current device event mask */ uint32_t google_chromeec_get_device_enabled_events(void) { diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h index 95d744358c..45d9b03df1 100644 --- a/src/ec/google/chromeec/ec.h +++ b/src/ec/google/chromeec/ec.h @@ -126,4 +126,10 @@ struct google_chromeec_event_info { void google_chromeec_events_init(const struct google_chromeec_event_info *info, bool is_s3_wakeup); +/* + * Get next available MKBP event in ec_response_get_next_event. Returns 0 on + * success, < 0 otherwise. + */ +int google_chromeec_get_mkbp_event(struct ec_response_get_next_event *event); + #endif /* _EC_GOOGLE_CHROMEEC_EC_H */