summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2020-02-14 13:23:40 -0800
committerCommit Bot <commit-bot@chromium.org>2020-02-21 10:30:08 +0000
commit4ffec9dbb3035154b952044d58cbeb9d1874e1ec (patch)
treeb1626522d68fe72dfdd670374b56a556d64559fa
parent937af456b82fad241049f02d276ad8f66b25a2de (diff)
downloadchrome-ec-4ffec9dbb3035154b952044d58cbeb9d1874e1ec.tar.gz
TCPMv2: Notify system when entering attached state
We have Type-C disconnect and connect hooks, but the Type-C state machine was only notifying on entry to the disconnect states. This commit adds the notifications for connect upon entry to the attached states. BUG=b:149337338 BRANCH=None TEST=Add a hook off of HOOK_USB_PD_CONNECT, verify that it gets called when a Type-C port partner is connected. Change-Id: Ifbdedf77cf519fc58b014c376d7733824791fe2f Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2057846 Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Diana Z <dzigterman@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 2ad9bfa881..4e2627a325 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -1850,6 +1850,8 @@ static void tc_attached_snk_entry(const int port)
*/
tc_set_data_role(port, PD_ROLE_UFP);
+ hook_notify(HOOK_USB_PD_CONNECT);
+
if (IS_ENABLED(CONFIG_CHARGE_MANAGER)) {
tc[port].typec_curr =
usb_get_typec_current_limit(tc[port].polarity,
@@ -2491,7 +2493,7 @@ static void tc_attached_src_entry(const int port)
tc[port].power_role, tc[port].data_role);
/*
* Both CC1 and CC2 pins shall be independently terminated to
- * ground through Rp.
+ * pulled up through Rp.
*/
tcpm_select_rp_value(port, CONFIG_USB_PD_PULLUP);
@@ -2573,6 +2575,13 @@ static void tc_attached_src_entry(const int port)
/* VBus should be powered, turn on auto discharge disconnect */
tcpm_enable_auto_discharge_disconnect(port, 1);
+
+ /*
+ * Only notify if we're not performing a power role swap. During a
+ * power role swap, the port partner is not disconnecting/connecting.
+ */
+ if (!TC_CHK_FLAG(port, TC_FLAGS_PR_SWAP_IN_PROGRESS))
+ hook_notify(HOOK_USB_PD_CONNECT);
}
static void tc_attached_src_run(const int port)