diff options
author | Keith Short <keithshort@chromium.org> | 2020-05-02 09:36:37 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-03 01:26:19 +0000 |
commit | 9655e231ebcb7c10152684c3e3b7021e0c52670c (patch) | |
tree | 3db38c5ae9511cc687c7bbcf8250a80d77f711bc /baseboard/volteer/baseboard.c | |
parent | 220feed8668d94077900a6293e385c0e6a636205 (diff) | |
download | chrome-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.c | 18 |
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); |