summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2022-11-21 13:36:24 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-11-23 19:22:56 +0000
commit20b581f68a8003c492e38c68ac76b2d2ed4cc33e (patch)
treecd38f8da231ef35eab8512fb039569d0e9bbf303
parent1063e0ff8356c09a465a9e2f4b402342e04bf83b (diff)
downloadchrome-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.c7
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)