diff options
Diffstat (limited to 'common/usbc/usb_tc_drp_acc_trysrc_sm.c')
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 9 |
1 files changed, 9 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 9c3e732634..250700209b 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -1160,6 +1160,15 @@ static void restart_tc_sm(int port, enum usb_tc_state start_state) void tc_state_init(int port) { + /* If port is not available, there is nothing to initialize */ + if (port >= board_get_usb_pd_port_count()) { + tc_enable_pd(port, 0); + tc_pause_event_loop(port); + TC_SET_FLAG(port, TC_FLAGS_SUSPEND); + set_state_tc(port, TC_DISABLED); + return; + } + /* Default to not jumping warm to ATTACHED_SNK */ TC_CLR_FLAG(port, TC_FLAGS_TC_WARM_ATTACHED_SNK); |