diff options
Diffstat (limited to 'zephyr/test/drivers/default/src/integration/usbc/usb_pd_bist_shared.c')
-rw-r--r-- | zephyr/test/drivers/default/src/integration/usbc/usb_pd_bist_shared.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/zephyr/test/drivers/default/src/integration/usbc/usb_pd_bist_shared.c b/zephyr/test/drivers/default/src/integration/usbc/usb_pd_bist_shared.c index 9c76f862f8..bf51c9814d 100644 --- a/zephyr/test/drivers/default/src/integration/usbc/usb_pd_bist_shared.c +++ b/zephyr/test/drivers/default/src/integration/usbc/usb_pd_bist_shared.c @@ -73,6 +73,7 @@ static void usb_pd_bist_shared_after(void *data) disconnect_sink_from_port(test_fixture->tcpci_emul); disconnect_source_from_port(test_fixture->tcpci_ps8xxx_emul, test_fixture->charger_emul); + host_cmd_typec_control_bist_share_mode(USBC_PORT_C0, 0); } ZTEST_SUITE(usb_pd_bist_shared, drivers_predicate_post_main, @@ -191,3 +192,28 @@ ZTEST_F(usb_pd_bist_shared, verify_bist_shared_exit_no_action) f5v_cap = fixture->snk_ext_500ma.last_5v_source_cap; zassert_equal(f5v_cap, 0, "Received unexpected source cap"); } + +ZTEST_F(usb_pd_bist_shared, verify_control_bist_shared_mode) +{ + uint32_t f5v_cap; + + host_cmd_typec_control_bist_share_mode(USBC_PORT_C0, 1); + zassume_ok(tcpci_partner_send_control_msg(&fixture->sink_5v_500ma, + PD_CTRL_GET_SOURCE_CAP, 0), + "Failed to send get src cap"); + /* wait tSenderResponse (26 ms) */ + k_sleep(K_MSEC(26)); + /* + * Verify we were offered the 3A source cap because of + * bist share mode be enabled. + */ + f5v_cap = fixture->snk_ext_500ma.last_5v_source_cap; + /* Capability should be 5V fixed, 3 A */ + zassert_equal((f5v_cap & PDO_TYPE_MASK), PDO_TYPE_FIXED, + "PDO type wrong"); + zassert_equal(PDO_FIXED_VOLTAGE(f5v_cap), 5000, "PDO voltage wrong"); + zassert_equal(PDO_FIXED_CURRENT(f5v_cap), 3000, + "PDO initial current wrong"); + + host_cmd_typec_control_bist_share_mode(USBC_PORT_C0, 0); +} |