summaryrefslogtreecommitdiff
path: root/common/usbc/usb_tc_drp_acc_trysrc_sm.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usbc/usb_tc_drp_acc_trysrc_sm.c')
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 1049326e42..f3b914dcf5 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -2305,7 +2305,12 @@ static void tc_unattached_snk_run(const int port)
set_state_tc(port, TC_UNATTACHED_SRC);
} else if (IS_ENABLED(CONFIG_USB_PD_TCPC_LOW_POWER) &&
(drp_state[port] == PD_DRP_FORCE_SINK ||
- drp_state[port] == PD_DRP_TOGGLE_OFF)) {
+ drp_state[port] == PD_DRP_TOGGLE_OFF ||
+ cc_is_open(cc1, cc2))) {
+ /*
+ * Enter low power mode for TCPCs that do not
+ * support DRP Autotoggle.
+ */
set_state_tc(port, TC_LOW_POWER_MODE);
}
}
@@ -2839,9 +2844,13 @@ static void tc_unattached_src_run(const int port)
drp_state[port] == PD_DRP_TOGGLE_ON &&
tcpm_auto_toggle_supported(port) && cc_is_open(cc1, cc2))
set_state_tc(port, TC_DRP_AUTO_TOGGLE);
+ /*
+ * Enter low power mode for TCPCs that do not support DRP Autotoggle.
+ */
else if (IS_ENABLED(CONFIG_USB_PD_TCPC_LOW_POWER) &&
(drp_state[port] == PD_DRP_FORCE_SOURCE ||
- drp_state[port] == PD_DRP_TOGGLE_OFF))
+ drp_state[port] == PD_DRP_TOGGLE_OFF ||
+ cc_is_open(cc1, cc2)))
set_state_tc(port, TC_LOW_POWER_MODE);
}