diff options
author | Denis Brockus <dbrockus@chromium.org> | 2019-09-27 13:25:14 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-10-06 22:55:08 +0000 |
commit | cfb6d3ded36e6b7935f8693532f6f9031643865d (patch) | |
tree | 8a59dccf74d4f3a8ad1f54cc6000f3b1a98f203f /test/usb_ppc.c | |
parent | 437e7346ab38a1eca1bb8526ae03b120635f03e9 (diff) | |
download | chrome-ec-cfb6d3ded36e6b7935f8693532f6f9031643865d.tar.gz |
ppc: cleanup ppc
Allow limited PPC chips to default to EC_ERROR_UNIMPLEMENTED
for functions in the driver that are not needed.
BUG=b:138599218
BRANCH=none
TEST=make buildall -j
Change-Id: I5242ef285eb277c06d516ab09f7a74f76d7d34b2
Signed-off-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1829405
Reviewed-by: Edward Hill <ecgh@chromium.org>
Diffstat (limited to 'test/usb_ppc.c')
-rw-r--r-- | test/usb_ppc.c | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/test/usb_ppc.c b/test/usb_ppc.c new file mode 100644 index 0000000000..cf2a971a87 --- /dev/null +++ b/test/usb_ppc.c @@ -0,0 +1,193 @@ +/* Copyright 2019 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Test USB PD module. + */ +#include "common.h" +#include "console.h" +#include "crc.h" +#include "task.h" +#include "test_util.h" +#include "timer.h" +#include "usbc_ppc.h" +#include "util.h" + +const struct ppc_drv null_drv = { + .init = NULL, + .is_sourcing_vbus = NULL, + .vbus_sink_enable = NULL, + .vbus_source_enable = NULL, + .set_polarity = NULL, + .set_vbus_source_current_limit = NULL, + .discharge_vbus = NULL, + .set_sbu = NULL, + .set_vconn = NULL, + .is_vbus_present = NULL, + .enter_low_power_mode = NULL, +}; + +struct ppc_config_t ppc_chips[] = { + [0] = { + .drv = &null_drv + }, +}; +unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips); + +const struct tcpc_config_t tcpc_config[] = { + [0] = { + }, +}; + +static int test_ppc_init(void) +{ + int rv; + + rv = ppc_init(1); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_init(0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_is_sourcing_vbus(void) +{ + int rv; + + rv = ppc_is_sourcing_vbus(1); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_is_sourcing_vbus(0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_set_polarity(void) +{ + int rv; + + rv = ppc_set_polarity(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_set_polarity(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_set_vbus_source_current_limit(void) +{ + int rv; + + rv = ppc_set_vbus_source_current_limit(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_set_vbus_source_current_limit(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_set_sbu(void) +{ + int rv; + + rv = ppc_set_sbu(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_set_sbu(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_set_vconn(void) +{ + int rv; + + rv = ppc_set_vconn(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_set_vconn(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_discharge_vbus(void) +{ + int rv; + + rv = ppc_discharge_vbus(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_discharge_vbus(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_vbus_sink_enable(void) +{ + int rv; + + rv = ppc_vbus_sink_enable(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_vbus_sink_enable(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_enter_low_power_mode(void) +{ + int rv; + + rv = ppc_enter_low_power_mode(1); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_enter_low_power_mode(0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_vbus_source_enable(void) +{ + int rv; + + rv = ppc_vbus_source_enable(1, 0); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_vbus_source_enable(0, 0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + +static int test_ppc_is_vbus_present(void) +{ + int rv; + + rv = ppc_is_vbus_present(1); + TEST_ASSERT(rv == EC_ERROR_INVAL); + rv = ppc_is_vbus_present(0); + TEST_ASSERT(rv == EC_ERROR_UNIMPLEMENTED); + + return EC_SUCCESS; +} + + + +void run_test(void) +{ + test_reset(); + + RUN_TEST(test_ppc_init); + RUN_TEST(test_ppc_is_sourcing_vbus); + RUN_TEST(test_ppc_set_polarity); + RUN_TEST(test_ppc_set_vbus_source_current_limit); + RUN_TEST(test_ppc_set_sbu); + RUN_TEST(test_ppc_set_vconn); + RUN_TEST(test_ppc_discharge_vbus); + RUN_TEST(test_ppc_vbus_sink_enable); + RUN_TEST(test_ppc_enter_low_power_mode); + RUN_TEST(test_ppc_vbus_source_enable); + RUN_TEST(test_ppc_is_vbus_present); + + test_print_result(); +} |