diff options
author | Keith Short <keithshort@chromium.org> | 2020-05-29 16:10:45 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-02 18:52:19 +0000 |
commit | f1c730f6eee9856e6bf42c37d01579dd1f06d8e2 (patch) | |
tree | d806adc10cfe7891df813b7a58a1a42c22ec1af0 /board/volteer | |
parent | 7229fab3bb2d4c1983dab388210eb894855aec7d (diff) | |
download | chrome-ec-f1c730f6eee9856e6bf42c37d01579dd1f06d8e2.tar.gz |
volteer: add support for USB4 Gen3
Latest Volteer motherboards and USB4 daughterboards support USB4 Gen3
speeds. Create new USB daughterboard type in CBI FW_CONFIG to support
this configuration.
BUG=b:157483704
BRANCH=none
TEST=make buildall
TEST=Set USB DB type to 3 (USB4_GEN3), verify TBT cable speed is
reported as Gen3 to the kernel extcon-tcss-cros-ec driver.
Signed-off-by: Keith Short <keithshort@chromium.org>
Change-Id: I7873db70436cb9500387620a0e800c3ee79a384d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2223912
Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
Diffstat (limited to 'board/volteer')
-rw-r--r-- | board/volteer/board.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/board/volteer/board.c b/board/volteer/board.c index 76b1aefff1..68515fd95e 100644 --- a/board/volteer/board.c +++ b/board/volteer/board.c @@ -63,9 +63,20 @@ DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT); __override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port) { - /* Routing length exceeds 205mm prior to connection to re-timer */ - if (port == USBC_PORT_C1) - return TBT_SS_U32_GEN1_GEN2; + enum usb_db_id usb_db_type = get_usb_db_type(); + + if (port == USBC_PORT_C1) { + if (usb_db_type == USB_DB_USB4_GEN2) { + /* + * Older boards violate 205mm trace length prior + * to connection to the re-timer and only support up + * to GEN2 speeds. + */ + return TBT_SS_U32_GEN1_GEN2; + } else if (usb_db_type == USB_DB_USB4_GEN3) { + return TBT_SS_TBT_GEN3; + } + } /* * Thunderbolt-compatible mode not supported @@ -78,13 +89,18 @@ __override enum tbt_compat_cable_speed board_get_max_tbt_speed(int port) __override bool board_is_tbt_usb4_port(int port) { + enum usb_db_id usb_db_type = get_usb_db_type(); + /* - * On Proto-1 only Port 1 supports TBT & USB4 + * Volteer reference design only supports TBT & USB4 on port 1 + * if the USB4 DB is present. * * TODO (b/147732807): All the USB-C ports need to support same * features. Need to fix once USB-C feature set is known for Volteer. */ - return port == USBC_PORT_C1; + return ((port == USBC_PORT_C1) + && ((usb_db_type == USB_DB_USB4_GEN2) + || (usb_db_type == USB_DB_USB4_GEN3))); } /******************************************************************************/ |