diff options
author | Ayushee Shah <ayushee.shah@intel.com> | 2019-12-17 12:00:54 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-01-31 01:49:45 +0000 |
commit | 6d26f78208fbaab8a41264b52bee36eee3668bcc (patch) | |
tree | 58f65d76a37ee756b5fa5bda0932672b944b964a /driver/usb_mux/usb_mux.c | |
parent | d682d368eeeaae56063859b2503c75fc4299022b (diff) | |
download | chrome-ec-6d26f78208fbaab8a41264b52bee36eee3668bcc.tar.gz |
TCPMv1: Add support for USB4.0
USB4 is based on the Thunderbolt 3 protocol specification. It
supports 40 Gbit/s throughput, is compatible with Thunderbolt 3,
and backwards compatible with USB 3.2, USB 2.0.
USB4.0 PD Flow:
Ref: USB Type-C Cable and Connector Specification 2.0
Figure 5-1 USB4 Discovery and Entry Flow Model
USB PD Explicit Contract
Discover ID SOP -------- USB4 compatible?
|
-------------yes------------|------No----- Exit USB4 Discovery
|
Discover ID SOP' --------- Product type
|
Passive cable----------|----Active Cable---USB4?
| |
| (Not implemented in this CL)
USB Signaling -----------------------
| | |
| USB4 with USB4 active cable Exit USB4
| Discovery
---------------------------------------------
| | | |
USB4 Gen3 USB3.2 Gen2 USB3.2 Gen1 USB2.0
| | | |
Enter USB4 with | Enter USB4 with Exit USB4 Discovery
USB4 Gen3 | USB4 Gen1
Passive cable | Passive cable
|
DFP Gen3 capable?
|
------yes---- |---------No--------
| |
Discover SVID SOP Enter USB4 with USB3.2 Gen2 Passive Cable
|
Discover SVID SOP'
|
Discover Mode SOP
|
Discover Mode SOP' --------Is TBT3?
|
-----yes----|-----No----
| |
Enter USB4 with TBT3 Enter USB4 with TBT
Gen3 passive cable Gen2 passive cable
BUG=b:140819518
BRANCH=None
TEST=With Gatkex creek 3 device, TGLRVP can enter to USB4.0 mode
Change-Id: Id861661c66c53a0a32679388bb7e2e81aae3ceb5
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Signed-off-by: Ayushee <ayushee.shah@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1926382
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'driver/usb_mux/usb_mux.c')
-rw-r--r-- | driver/usb_mux/usb_mux.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/driver/usb_mux/usb_mux.c b/driver/usb_mux/usb_mux.c index f38f153000..5bf057ed91 100644 --- a/driver/usb_mux/usb_mux.c +++ b/driver/usb_mux/usb_mux.c @@ -264,7 +264,7 @@ static int command_typec(int argc, char **argv) mux_state = usb_mux_get(port); ccprintf("Port %d: USB=%d DP=%d POLARITY=%s HPD_IRQ=%d " - "HPD_LVL=%d SAFE=%d TBT=%d\n", port, + "HPD_LVL=%d SAFE=%d TBT=%d USB4=%d\n", port, !!(mux_state & USB_PD_MUX_USB_ENABLED), !!(mux_state & USB_PD_MUX_DP_ENABLED), mux_state & USB_PD_MUX_POLARITY_INVERTED ? @@ -272,7 +272,8 @@ static int command_typec(int argc, char **argv) !!(mux_state & USB_PD_MUX_HPD_IRQ), !!(mux_state & USB_PD_MUX_HPD_LVL), !!(mux_state & USB_PD_MUX_SAFE_MODE), - !!(mux_state & USB_PD_MUX_TBT_COMPAT_ENABLED)); + !!(mux_state & USB_PD_MUX_TBT_COMPAT_ENABLED), + !!(mux_state & USB_PD_MUX_USB4_ENABLED)); return EC_SUCCESS; } |