diff options
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 9 | ||||
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 2 | ||||
-rw-r--r-- | include/usb_tc_sm.h | 8 | ||||
-rw-r--r-- | test/fake_usbc.c | 3 | ||||
-rw-r--r-- | test/usb_pe_drp.c | 4 |
5 files changed, 20 insertions, 6 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 590a72640d..8f68a5db3e 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -931,6 +931,11 @@ static void pe_update_pdo_flags(int port, uint32_t pdo) #endif } +void pd_request_power_swap(int port) +{ + pe_dpm_request(port, DPM_REQUEST_PR_SWAP); +} + int pd_is_port_partner_dualrole(int port) { return PE_CHK_FLAG(port, PE_FLAGS_PORT_PARTNER_IS_DUALROLE); @@ -2894,7 +2899,7 @@ static void pe_prs_src_snk_evaluate_swap_entry(int port) /* PE_PRS_SRC_SNK_Reject_PR_Swap state embedded here */ prl_send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_REJECT); } else { - pd_request_power_swap(port); + tc_request_power_swap(port); /* PE_PRS_SRC_SNK_Accept_Swap state embedded here */ PE_SET_FLAG(port, PE_FLAGS_ACCEPT); prl_send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_ACCEPT); @@ -3080,7 +3085,7 @@ static void pe_prs_snk_src_evaluate_swap_entry(int port) /* PE_PRS_SNK_SRC_Reject_Swap state embedded here */ prl_send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_REJECT); } else { - pd_request_power_swap(port); + tc_request_power_swap(port); /* PE_PRS_SNK_SRC_Accept_Swap state embedded here */ PE_SET_FLAG(port, PE_FLAGS_ACCEPT); prl_send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_ACCEPT); diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index a3e6f5f67f..c0169d704a 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -366,7 +366,7 @@ void pd_set_new_power_request(int port) } } -void pd_request_power_swap(int port) +void tc_request_power_swap(int port) { if (IS_ENABLED(CONFIG_USB_PE_SM)) { /* diff --git a/include/usb_tc_sm.h b/include/usb_tc_sm.h index f94360ad3f..b4b559152f 100644 --- a/include/usb_tc_sm.h +++ b/include/usb_tc_sm.h @@ -177,6 +177,14 @@ void tc_prs_src_snk_assert_rd(int port); void tc_prs_snk_src_assert_rp(int port); /** + * Informs the Type-C State Machine that a Power Role Swap is starting. + * This function is called from the Policy Engine. + * + * @parm port USB_C port number + */ +void tc_request_power_swap(int port); + +/** * Informs the Type-C State Machine that a Power Role Swap is complete. * This function is called from the Policy Engine. * diff --git a/test/fake_usbc.c b/test/fake_usbc.c index b0137cb893..a563f3d4d8 100644 --- a/test/fake_usbc.c +++ b/test/fake_usbc.c @@ -16,9 +16,6 @@ int pd_is_vbus_present(int port) void pd_request_data_swap(int port) {} -void pd_request_power_swap(int port) -{} - void pd_request_vconn_swap_off(int port) {} diff --git a/test/usb_pe_drp.c b/test/usb_pe_drp.c index c6a1dc0af7..e8167cc1ac 100644 --- a/test/usb_pe_drp.c +++ b/test/usb_pe_drp.c @@ -29,6 +29,10 @@ int board_vbus_source_enabled(int port) { return 0; } +void tc_request_power_swap(int port) +{ + /* Do nothing */ +} /** * Test section |