summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorPoornima Tom <poornima.tom@intel.com>2021-02-25 14:54:49 -0800
committerCommit Bot <commit-bot@chromium.org>2021-03-02 22:43:03 +0000
commit389952243915fd4a47ea6916395314ef32412078 (patch)
tree3d0d4e514123ef47f95c761315b864a25b6ec484 /baseboard
parent8af602eeee067e045301a4ce82253c6bc703b07f (diff)
downloadchrome-ec-389952243915fd4a47ea6916395314ef32412078.tar.gz
adlrvp: Select retimer USB MUX config at runtime
Different SKU of ADL RVP have different retimer USB MUX hence select the retimer USB MUX based on the board SKU at runtime. BUG=none BRANCH=none TEST=Able to detect USB3.0 drive on Port-2 without retimer Change-Id: I34d70749db98ff45ca3c3ed09720ba9ad9df62a4 Signed-off-by: Poornima Tom <poornima.tom@intel.com> Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2718534 Reviewed-by: Sooraj Govindan <sooraj.govindan@intel.com> Reviewed-by: caveh jalali <caveh@chromium.org>
Diffstat (limited to 'baseboard')
-rw-r--r--baseboard/intelrvp/adlrvp.c25
-rw-r--r--baseboard/intelrvp/adlrvp.h6
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