diff options
author | Abe Levkoy <alevkoy@chromium.org> | 2022-11-21 13:36:24 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-11-23 19:22:56 +0000 |
commit | 20b581f68a8003c492e38c68ac76b2d2ed4cc33e (patch) | |
tree | cd38f8da231ef35eab8512fb039569d0e9bbf303 | |
parent | 1063e0ff8356c09a465a9e2f4b402342e04bf83b (diff) | |
download | chrome-ec-20b581f68a8003c492e38c68ac76b2d2ed4cc33e.tar.gz |
TCPMv2: Present as Sink/UFP in CTAttached.SNK
In the Type-C state machine, set the data role to UFP after attaching to
the charge-through port of a CT-VPD. This keeps the data role consistent
with the Sink power role and conforms to USB Type-C specification
release 2.2 ss 4.10.2.
BUG=b:257341564
TEST=twister -s zephyr/test/drivers/drivers.usbc_ctvpd
BRANCH=none
Signed-off-by: Abe Levkoy <alevkoy@chromium.org>
Change-Id: Ic94145ef08c3e1ce7094891d8686ce2858a13476
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4043737
Reviewed-by: Sam Hurst <shurst@google.com>
Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 47369a75d1..168490d67e 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -3749,6 +3749,13 @@ __maybe_unused static void tc_ct_attached_snk_entry(int port) /* The port shall reject a VCONN swap request. */ TC_SET_FLAG(port, TC_FLAGS_REJECT_VCONN_SWAP); + + /* + * Type-C r 2.2: The Host shall not advertise dual-role data or + * dual-role power in its SourceCapability or SinkCapability messages - + * Host changes its advertised capabilities to UFP role/sink only role. + */ + tc_set_data_role(port, PD_ROLE_UFP); } __maybe_unused static void tc_ct_attached_snk_run(int port) |