diff options
Diffstat (limited to 'test/usb_tcpmv2_td_pd_ll_e3.c')
-rw-r--r-- | test/usb_tcpmv2_td_pd_ll_e3.c | 97 |
1 files changed, 4 insertions, 93 deletions
diff --git a/test/usb_tcpmv2_td_pd_ll_e3.c b/test/usb_tcpmv2_td_pd_ll_e3.c index 155312bf0f..c2f1474acf 100644 --- a/test/usb_tcpmv2_td_pd_ll_e3.c +++ b/test/usb_tcpmv2_td_pd_ll_e3.c @@ -9,6 +9,7 @@ #include "test_util.h" #include "timer.h" #include "usb_tcpmv2_compliance.h" +#include "usb_tc_sm.h" /***************************************************************************** * TD.PD.LL.E3. Soft Reset Usage @@ -28,69 +29,12 @@ static int td_pd_ll_e3(enum pd_data_role data_role) /* * a) Run PROC.PD.E1 Bring-up according to the UUT role. */ - TEST_EQ(proc_pd_e1(data_role), EC_SUCCESS, "%d"); + TEST_EQ(proc_pd_e1(data_role, INITIAL_ATTACH), EC_SUCCESS, "%d"); /* * Make sure we are idle. Reject everything that is pending */ - if (data_role == PD_ROLE_DFP) { - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP_PRIME, 0, - PD_DATA_VENDOR_DEF), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP_PRIME, PD_CTRL_NOT_SUPPORTED, 0, 0, - NULL); - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, 0, - PD_DATA_VENDOR_DEF), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_CTRL_NOT_SUPPORTED, 0, 0, NULL); - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, - PD_CTRL_GET_SOURCE_CAP, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_DATA_SOURCE_CAP, 1, 0, &pdo); - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, - PD_CTRL_GET_SINK_CAP, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_DATA_SINK_CAP, 1, 0, &pdo); - } else if (data_role == PD_ROLE_UFP) { - int vcs; - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, PD_CTRL_DR_SWAP, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_CTRL_REJECT, 0, 0, NULL); - - for (vcs = 0; vcs < 4; vcs++) { - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, - PD_CTRL_VCONN_SWAP, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_CTRL_REJECT, 0, 0, - NULL); - } - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, - PD_CTRL_GET_SINK_CAP, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_DATA_SINK_CAP, 1, 0, &pdo); - } - - /* Should be idle now. */ - task_wait_event(10 * SECOND); + TEST_EQ(handle_attach_expected_msgs(data_role), EC_SUCCESS, "%d"); /* * b) Send a Get_Sink_Cap message to the UUT, wait for a reply @@ -124,41 +68,8 @@ static int td_pd_ll_e3(enum pd_data_role data_role) * e) Continue the bring-up procedure and check that the link is * successfully established. */ - if (partner_get_power_role() == PD_ROLE_SINK) { - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, - 0, - PD_DATA_SOURCE_CAP), - EC_SUCCESS, "%d"); - - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(10 * MSEC); - - partner_send_msg(PD_MSG_SOP, PD_DATA_REQUEST, 1, 0, &rdo); - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, PD_CTRL_ACCEPT, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, PD_CTRL_PS_RDY, 0), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); - task_wait_event(5 * MSEC); - - partner_send_msg(PD_MSG_SOP, PD_CTRL_ACCEPT, 0, 0, NULL); - task_wait_event(1 * MSEC); - } else { - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_DATA_SOURCE_CAP, 1, 0, &pdo); - - TEST_EQ(verify_tcpci_transmit(TCPC_TX_SOP, 0, PD_DATA_REQUEST), - EC_SUCCESS, "%d"); - mock_set_alert(TCPC_REG_ALERT_TX_SUCCESS); + TEST_EQ(proc_pd_e1(data_role, ALREADY_ATTACHED), EC_SUCCESS, "%d"); - partner_send_msg(PD_MSG_SOP, PD_CTRL_ACCEPT, 0, 0, NULL); - task_wait_event(10 * MSEC); - partner_send_msg(PD_MSG_SOP, PD_CTRL_PS_RDY, 0, 0, NULL); - task_wait_event(1 * MSEC); - } return EC_SUCCESS; } int test_td_pd_ll_e3_dfp(void) |