summaryrefslogtreecommitdiff
path: root/driver/usb_mux/usb_mux.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/usb_mux/usb_mux.c')
-rw-r--r--driver/usb_mux/usb_mux.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/driver/usb_mux/usb_mux.c b/driver/usb_mux/usb_mux.c
index 01f8f0ab6f..6f2739de4a 100644
--- a/driver/usb_mux/usb_mux.c
+++ b/driver/usb_mux/usb_mux.c
@@ -348,6 +348,25 @@ void usb_mux_hpd_update(int port, int hpd_lvl, int hpd_irq)
}
}
+int usb_mux_retimer_fw_update_port_info(void)
+{
+ int i;
+ int port_info = 0;
+ const struct usb_mux *mux_ptr;
+
+ for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) {
+ mux_ptr = &usb_muxes[i];
+ while (mux_ptr) {
+ if (mux_ptr->driver &&
+ mux_ptr->driver->is_retimer_fw_update_capable &&
+ mux_ptr->driver->is_retimer_fw_update_capable())
+ port_info |= BIT(i);
+ mux_ptr = mux_ptr->next_mux;
+ }
+ }
+ return port_info;
+}
+
static void mux_chipset_reset(void)
{
int port;