summaryrefslogtreecommitdiff
path: root/baseboard/volteer/baseboard.c
diff options
context:
space:
mode:
authorKeith Short <keithshort@chromium.org>2020-05-02 09:36:37 -0600
committerCommit Bot <commit-bot@chromium.org>2020-05-03 01:26:19 +0000
commit9655e231ebcb7c10152684c3e3b7021e0c52670c (patch)
tree3db38c5ae9511cc687c7bbcf8250a80d77f711bc /baseboard/volteer/baseboard.c
parent220feed8668d94077900a6293e385c0e6a636205 (diff)
downloadchrome-ec-9655e231ebcb7c10152684c3e3b7021e0c52670c.tar.gz
volteer: configure USB virtual mux with USB3 DB
The USB virtual mux must always be used with TGL so that the TCSS is configured correctly on USB mux (including HPD) changes. BUG=b:155145518 BRANCH=none TEST=make buildall TEST=verify DP operation on USB3 DB. Both cable orientations working. Signed-off-by: Keith Short <keithshort@chromium.org> Change-Id: I337d520bd468082cd8c158c7a596bf775709307a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2177097 Tested-by: Eric Herrmann <eherrmann@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Diffstat (limited to 'baseboard/volteer/baseboard.c')
-rw-r--r--baseboard/volteer/baseboard.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/baseboard/volteer/baseboard.c b/baseboard/volteer/baseboard.c
index 2f8c147bf5..ee8cf8fc72 100644
--- a/baseboard/volteer/baseboard.c
+++ b/baseboard/volteer/baseboard.c
@@ -280,13 +280,25 @@ static const struct tcpc_config_t tcpc_config_p1_usb3 = {
.usb23 = USBC_PORT_1_USB2_NUM | (USBC_PORT_1_USB3_NUM << 4),
};
-static const struct usb_mux mux_config_p1_usb3 = {
+/*
+ * USB3 DB mux configuration - the top level mux still needs to be set to the
+ * virutal_usb_mux_driver so the AP gets notified of mux changes and updates
+ * the TCSS configuration on state changes.
+ */
+static const struct usb_mux usbc1_usb3_db_retimer = {
.usb_port = USBC_PORT_C1,
.driver = &tcpci_tcpm_usb_mux_driver,
.hpd_update = &ps8xxx_tcpc_update_hpd_status,
.next_mux = NULL,
};
+static const struct usb_mux mux_config_p1_usb3 = {
+ .usb_port = USBC_PORT_C1,
+ .driver = &virtual_usb_mux_driver,
+ .hpd_update = &virtual_hpd_update,
+ .next_mux = &usbc1_usb3_db_retimer,
+};
+
static enum usb_db_id usb_db_type = USB_DB_NONE;
/******************************************************************************/
@@ -308,7 +320,7 @@ unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
/******************************************************************************/
/* USBC mux configuration - Tiger Lake includes internal mux */
-struct usb_mux usbc1_usb_retimer = {
+struct usb_mux usbc1_usb4_db_retimer = {
.usb_port = USBC_PORT_C1,
.driver = &bb_usb_retimer,
.i2c_port = I2C_PORT_USB_1_MIX,
@@ -324,7 +336,7 @@ struct usb_mux usb_muxes[] = {
.usb_port = USBC_PORT_C1,
.driver = &virtual_usb_mux_driver,
.hpd_update = &virtual_hpd_update,
- .next_mux = &usbc1_usb_retimer,
+ .next_mux = &usbc1_usb4_db_retimer,
},
};
BUILD_ASSERT(ARRAY_SIZE(usb_muxes) == USBC_PORT_COUNT);