summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ec/google/chromeec/ec.c15
-rw-r--r--src/ec/google/chromeec/ec.h6
2 files changed, 21 insertions, 0 deletions
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 */