From cb4e857ccc8f17b3f02e1df845f86408395df112 Mon Sep 17 00:00:00 2001 From: Aaron Massey Date: Thu, 16 Dec 2021 14:20:18 -0700 Subject: zephyr: test: sn5s330 driver can set vconn fet Verify the sn5s330 driver can set the ppc VCONN FET. BRANCH=none BUG=b:203364783 TEST=zmake configure --test test-drivers Signed-off-by: Aaron Massey Change-Id: Id7064fb8b26b5b5c36b02fbed86bf9a68cfa957f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3345557 Reviewed-by: Wai-Hong Tam --- zephyr/test/drivers/src/ppc_sn5s330.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/zephyr/test/drivers/src/ppc_sn5s330.c b/zephyr/test/drivers/src/ppc_sn5s330.c index af551f7189..429b9b8c26 100644 --- a/zephyr/test/drivers/src/ppc_sn5s330.c +++ b/zephyr/test/drivers/src/ppc_sn5s330.c @@ -249,8 +249,8 @@ static void test_set_vbus_source_current_limit(void) NULL); } -#ifdef CONFIG_USBC_PPC_SBU static void test_sn5s330_set_sbu(void) +#ifdef CONFIG_USBC_PPC_SBU { const struct emul *emul = EMUL; uint8_t func_set2_reg; @@ -268,7 +268,6 @@ static void test_sn5s330_set_sbu(void) zassert_equal(func_set2_reg & SN5S330_SBU_EN, 0, NULL); } #else -static void test_sn5s330_set_sbu(void) { ztest_test_skip(); } @@ -299,6 +298,7 @@ static void test_sn5s330_vbus_overcurrent(void) } static void test_sn5s330_disable_vbus_low_interrupt(void) +#ifdef CONFIG_USBC_PPC_VCONN { const struct emul *emul = EMUL; @@ -308,6 +308,27 @@ static void test_sn5s330_disable_vbus_low_interrupt(void) sn5s330_emul_lower_vbus_below_minv(emul); zassert_equal(sn5s330_emul_interrupt_set_stub_fake.call_count, 0, NULL); } +#else +{ + ztest_test_skip(); +} +#endif /* CONFIG_USBC_PPC_VCONN */ + +static void test_sn5s330_set_vconn_fet(void) +{ + const struct emul *emul = EMUL; + uint8_t func_set4_reg; + + zassert_ok(sn5s330_drv.init(SN5S330_PORT), NULL); + + sn5s330_drv.set_vconn(SN5S330_PORT, false); + sn5s330_emul_peek_reg(emul, SN5S330_FUNC_SET4, &func_set4_reg); + zassert_equal(func_set4_reg & SN5S330_VCONN_EN, 0, NULL); + + sn5s330_drv.set_vconn(SN5S330_PORT, true); + sn5s330_emul_peek_reg(emul, SN5S330_FUNC_SET4, &func_set4_reg); + zassert_not_equal(func_set4_reg & SN5S330_VCONN_EN, 0, NULL); +} static void reset_sn5s330_state(void) { @@ -323,6 +344,9 @@ void test_suite_ppc_sn5s330(void) { ztest_test_suite( ppc_sn5s330, + ztest_unit_test_setup_teardown(test_sn5s330_set_vconn_fet, + reset_sn5s330_state, + reset_sn5s330_state), ztest_unit_test_setup_teardown( test_sn5s330_disable_vbus_low_interrupt, reset_sn5s330_state, reset_sn5s330_state), -- cgit v1.2.1