diff options
author | Denis Brockus <dbrockus@google.com> | 2020-06-30 12:42:04 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-01 23:35:52 +0000 |
commit | dc3e8d69dbffc330a0725eacf00da14f54ac86fc (patch) | |
tree | 30d440d51929310a4936a36c9b0cd50463f561cd /common/usbc/usb_tc_drp_acc_trysrc_sm.c | |
parent | e8bd3c057ceb1c881ccd5112b577d94cd730b7d6 (diff) | |
download | chrome-ec-dc3e8d69dbffc330a0725eacf00da14f54ac86fc.tar.gz |
TCPMv2: make sure Vbus is not sourced in AttachWait.SRC
The TCPC on zork appears to enable Vbus sourcing some
of the time when we come out of auto-toggle. It looks
like about a 60ms delay before it is enabled. We then
go to AttachWait.SRC and since the exit condition to
get to Attached.SRC is a debounced/valid Attached.SRC
CC and Safe0V, it has to be disabled manually in order
to move to Attached.SRC
BUG=b:160227699,b:160253746
BRANCH=none
TEST=dut-control servo_v4_role:snk should attach
Signed-off-by: Denis Brockus <dbrockus@google.com>
Change-Id: I1dfc5d2536aaa4d7a5ffc7bbb52c647b15764196
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2276463
Tested-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Auto-Submit: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'common/usbc/usb_tc_drp_acc_trysrc_sm.c')
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 8 |
1 files changed, 8 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 b5f2e5ebbb..54c1cd1fa3 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -2435,6 +2435,14 @@ static void tc_attach_wait_src_run(const int port) set_state_tc(port, TC_ATTACHED_SRC); return; } + } else if (IS_ENABLED(CONFIG_USBC_PPC)) { + /* + * The exit condition from AttachWait.SRC to Attached.SRC + * requires Vbus to go to Safe0V. Some TCPCs enable Vbus + * sourcing out of auto-toggle, so make sure it is off in + * order to satisfy the requirement. + */ + tcpm_disable_bad_vbus_sourcing(port); } } |