summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/intel/pmc_mux/conn/chip.h8
-rw-r--r--src/drivers/intel/pmc_mux/conn/conn.c15
2 files changed, 23 insertions, 0 deletions
diff --git a/src/drivers/intel/pmc_mux/conn/chip.h b/src/drivers/intel/pmc_mux/conn/chip.h
index 8497350337..461916ed98 100644
--- a/src/drivers/intel/pmc_mux/conn/chip.h
+++ b/src/drivers/intel/pmc_mux/conn/chip.h
@@ -23,4 +23,12 @@ struct drivers_intel_pmc_mux_conn_config {
enum typec_orientation hsl_orientation;
};
+/*
+ * Method verifies input "conn" device.
+ * Returns 'true' if device passed is Intel PMC MUX Conn device else returns 'false'.
+ * Method also outputs the usb2 and usb3 port numbers associated with the 'conn' device
+ */
+bool intel_pmc_mux_conn_get_ports(const struct device *conn, unsigned int *usb2_port,
+ unsigned int *usb3_port);
+
#endif /* __DRIVERS_INTEL_PMC_MUX_CONN_H__ */
diff --git a/src/drivers/intel/pmc_mux/conn/conn.c b/src/drivers/intel/pmc_mux/conn/conn.c
index 9fd85431f3..b6bf371471 100644
--- a/src/drivers/intel/pmc_mux/conn/conn.c
+++ b/src/drivers/intel/pmc_mux/conn/conn.c
@@ -85,3 +85,18 @@ struct chip_operations drivers_intel_pmc_mux_conn_ops = {
CHIP_NAME("Intel PMC MUX CONN Driver")
.enable_dev = conn_enable,
};
+
+bool intel_pmc_mux_conn_get_ports(const struct device *conn, unsigned int *usb2_port,
+ unsigned int *usb3_port)
+{
+ const struct drivers_intel_pmc_mux_conn_config *mux_config;
+
+ if (!conn->chip_info || conn->chip_ops != &drivers_intel_pmc_mux_conn_ops)
+ return false;
+
+ mux_config = conn->chip_info;
+ *usb2_port = mux_config->usb2_port_number;
+ *usb3_port = mux_config->usb3_port_number;
+
+ return true;
+};