diff options
Diffstat (limited to 'zephyr/test/drivers/usbc_vconn_swap/src/usbc_vconn_swap.c')
-rw-r--r-- | zephyr/test/drivers/usbc_vconn_swap/src/usbc_vconn_swap.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/zephyr/test/drivers/usbc_vconn_swap/src/usbc_vconn_swap.c b/zephyr/test/drivers/usbc_vconn_swap/src/usbc_vconn_swap.c index c7f20e5387..324df08826 100644 --- a/zephyr/test/drivers/usbc_vconn_swap/src/usbc_vconn_swap.c +++ b/zephyr/test/drivers/usbc_vconn_swap/src/usbc_vconn_swap.c @@ -37,6 +37,10 @@ struct usbc_vconn_swap_fixture { struct common_fixture common; }; +struct usbc_vconn_swap_not_supported_fixture { + struct common_fixture common; +}; + static void connect_partner_to_port(const struct emul *tcpc_emul, const struct emul *charger_emul, struct tcpci_partner_data *partner_emul, @@ -92,6 +96,15 @@ static void *usbc_vconn_swap_setup(void) return common_setup(); } +static void *usbc_vconn_swap_not_supported_setup(void) +{ + struct usbc_vconn_swap_fixture *fixture = common_setup(); + + /* The partner will respond to VCONN_Swap with Not_Supported. */ + tcpci_partner_set_vconn_support(&fixture->common.partner, false); + return fixture; +} + static void common_before(struct common_fixture *fixture) { /* Set chipset to ON, this will set TCPM to DRP */ @@ -112,6 +125,13 @@ static void usbc_vconn_swap_before(void *data) common_before(&outer->common); } +static void usbc_vconn_swap_not_supported_before(void *data) +{ + struct usbc_vconn_swap_not_supported_fixture *outer = data; + + common_before(&outer->common); +} + static void common_after(struct common_fixture *fixture) { disconnect_partner_from_port(fixture->tcpci_emul, @@ -125,6 +145,13 @@ static void usbc_vconn_swap_after(void *data) common_after(&outer->common); } +static void usbc_vconn_swap_not_supported_after(void *data) +{ + struct usbc_vconn_swap_not_supported_fixture *outer = data; + + common_after(&outer->common); +} + ZTEST_F(usbc_vconn_swap, vconn_swap_before_discovery) { struct ec_response_typec_status status = @@ -152,3 +179,17 @@ ZTEST_F(usbc_vconn_swap, vconn_swap_via_host_command) ZTEST_SUITE(usbc_vconn_swap, drivers_predicate_post_main, usbc_vconn_swap_setup, usbc_vconn_swap_before, usbc_vconn_swap_after, NULL); + +ZTEST_F(usbc_vconn_swap_not_supported, vconn_swap_force_vconn) +{ + struct ec_response_typec_status status = + host_cmd_typec_status(TEST_PORT); + + zassert_equal(status.vconn_role, PD_ROLE_VCONN_SRC, + "TCPM did not initiate VCONN Swap after attach"); +} + +ZTEST_SUITE(usbc_vconn_swap_not_supported, drivers_predicate_post_main, + usbc_vconn_swap_not_supported_setup, + usbc_vconn_swap_not_supported_before, + usbc_vconn_swap_not_supported_after, NULL); |