summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthikeyan Ramasubramanian <kramasub@google.com>2024-10-30 15:43:06 -0600
committerKarthik Ramasubramanian <kramasub@google.com>2024-11-05 00:21:11 +0000
commit2e52f863adccab359fad7ad61ced9fdc249fff3a (patch)
treefd7c4c620a1b0afb2b87478f0a3af3efd2fc6b09
parentc7bca700c8dbbdfaf47a27f287bbbab30a72313a (diff)
ec/google/chromeec: Add API to get PD Chip info
Add API to get Power Delivery (PD) Chip info which includes vendor ID, product ID and firmware version(if any). BUG=None TEST=Build Brox BIOS image and boot to OS. Change-Id: I4cc4493ac64d44076877fee633488c95cd09807e Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84936 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
-rw-r--r--src/ec/google/chromeec/ec.c11
-rw-r--r--src/ec/google/chromeec/ec.h12
2 files changed, 23 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index 2ef2ea90d5..38f7e87b81 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -1170,6 +1170,17 @@ int google_chromeec_get_num_pd_ports(unsigned int *num_ports)
return 0;
}
+int google_chromeec_get_pd_chip_infoi(int port, int renew,
+ struct ec_response_pd_chip_info *r)
+{
+ const struct ec_params_pd_chip_info p = {
+ .port = port,
+ .live = renew,
+ };
+
+ return ec_cmd_pd_chip_info(PLAT_EC, &p, r);
+}
+
int google_chromeec_get_pd_port_caps(int port,
struct usb_pd_port_caps *port_caps)
{
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 20b508c66a..5a65f2dee7 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -337,6 +337,18 @@ int google_chromeec_get_cmd_versions(int command, uint32_t *pmask);
*/
int google_chromeec_get_num_pd_ports(unsigned int *num_ports);
+/**
+ * Return a port's PD chip information.
+ *
+ * @param port The desired port number
+ * @param renew Refresh cached value
+ * @param r Result buffer for chip info
+ *
+ * @return 0 if ok, -1 on error
+ */
+int google_chromeec_get_pd_chip_infoi(int port, int renew,
+ struct ec_response_pd_chip_info *r);
+
/* Structure representing the capabilities of a USB-PD port */
struct usb_pd_port_caps {
enum ec_pd_power_role_caps power_role_cap;