diff options
-rw-r--r-- | baseboard/intelrvp/adlrvp.c | 25 | ||||
-rw-r--r-- | baseboard/intelrvp/adlrvp.h | 6 |
2 files changed, 30 insertions, 1 deletions
diff --git a/baseboard/intelrvp/adlrvp.c b/baseboard/intelrvp/adlrvp.c index a9aac4eb0a..8ded342f09 100644 --- a/baseboard/intelrvp/adlrvp.c +++ b/baseboard/intelrvp/adlrvp.c @@ -107,7 +107,7 @@ struct usb_mux usbc3_tcss_usb_mux = { #endif /* USB muxes Configuration */ -const struct usb_mux usb_muxes[] = { +struct usb_mux usb_muxes[] = { [TYPE_C_PORT_0] = { .usb_port = TYPE_C_PORT_0, .next_mux = &usbc0_tcss_usb_mux, @@ -258,10 +258,33 @@ static void enable_h1_irq(void) } DECLARE_HOOK(HOOK_INIT, enable_h1_irq, HOOK_PRIO_LAST); +static void configure_retimer_usbmux(void) +{ + switch (board_get_version() & 0x3F) { + case ADLP_LP5_T4_RVP_SKU_BOARD_ID: + /* No retimer on Port-2 */ +#if defined(HAS_TASK_PD_C2) + usb_muxes[TYPE_C_PORT_2].driver = NULL; +#endif + break; + + /* Add additional board SKUs */ + + default: + break; + } +} + static void tcpc_aic_init(void) { int i; + /* + * Change the default retimer usb mux config at runtime based on the + * board SKU. + */ + configure_retimer_usbmux(); + /* Initialize the IOEXPANDER on TCPC-AIC */ for (i = 0; i < CONFIG_USB_PD_PORT_MAX_COUNT; i++) pca9675_init(i); diff --git a/baseboard/intelrvp/adlrvp.h b/baseboard/intelrvp/adlrvp.h index f87a235a4b..b973b69a43 100644 --- a/baseboard/intelrvp/adlrvp.h +++ b/baseboard/intelrvp/adlrvp.h @@ -13,6 +13,9 @@ #include "baseboard.h" +/* RVP Board ids */ +#define ADLP_LP5_T4_RVP_SKU_BOARD_ID 0x13 + /* MECC config */ #define CONFIG_INTEL_RVP_MECC_VERSION_1_0 @@ -64,6 +67,9 @@ #define I2C_PORT3_BB_RETIMER_ADDR 0x59 #endif +/* Configure mux at runtime */ +#define CONFIG_USB_MUX_RUNTIME_CONFIG + /* Enable VCONN */ #define CONFIG_USBC_VCONN #define CONFIG_USBC_VCONN_SWAP |