summaryrefslogtreecommitdiff
path: root/common/usb_pd_policy.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb_pd_policy.c')
-rw-r--r--common/usb_pd_policy.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/common/usb_pd_policy.c b/common/usb_pd_policy.c
index 28d3d4f5d3..98299968f7 100644
--- a/common/usb_pd_policy.c
+++ b/common/usb_pd_policy.c
@@ -1240,4 +1240,29 @@ static int command_mfallow(int argc, const char **argv)
DECLARE_CONSOLE_COMMAND(mfallow, command_mfallow, "port [true | false]",
"Controls Multifunction choice during DP Altmode.");
#endif /* CONFIG_CMD_MFALLOW */
+
+#ifdef CONFIG_COMMON_RUNTIME
+static enum ec_status hc_remote_pd_dev_info(struct host_cmd_handler_args *args)
+{
+ const struct ec_params_usb_pd_info_request *p = args->params;
+ struct ec_params_usb_pd_rw_hash_entry *r = args->response;
+ uint16_t dev_id;
+ uint32_t current_image;
+
+ if (p->port >= board_get_usb_pd_port_count())
+ return EC_RES_INVALID_PARAM;
+
+ pd_dev_get_rw_hash(p->port, &dev_id, r->dev_rw_hash, &current_image);
+
+ r->dev_id = dev_id;
+ r->current_image = current_image;
+
+ args->response_size = sizeof(*r);
+
+ return EC_RES_SUCCESS;
+}
+DECLARE_HOST_COMMAND(EC_CMD_USB_PD_DEV_INFO, hc_remote_pd_dev_info,
+ EC_VER_MASK(0));
+#endif /* CONFIG_COMMON_RUNTIME */
+
#endif /* CONFIG_USB_PD_ALT_MODE_DFP */