diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/build.mk | 2 | ||||
-rw-r--r-- | test/test_config.h | 9 | ||||
-rw-r--r-- | test/usb_ppc.c | 193 | ||||
-rw-r--r-- | test/usb_ppc.tasklist | 9 |
4 files changed, 213 insertions, 0 deletions
diff --git a/test/build.mk b/test/build.mk index ea0fef7fc1..65a28fc3f6 100644 --- a/test/build.mk +++ b/test/build.mk @@ -70,6 +70,7 @@ test-list-host += uptime test-list-host += usb_pd test-list-host += usb_pd_giveback test-list-host += usb_pd_rev30 +test-list-host += usb_ppc test-list-host += usb_sm_framework_h3 test-list-host += usb_sm_framework_h2 test-list-host += usb_sm_framework_h1 @@ -145,6 +146,7 @@ uptime-y=uptime.o usb_pd-y=usb_pd.o usb_pd_giveback-y=usb_pd.o usb_pd_rev30-y=usb_pd.o +usb_ppc-y=usb_ppc.o usb_sm_framework_h3-y=usb_sm_framework_h3.o usb_sm_framework_h2-y=usb_sm_framework_h3.o usb_sm_framework_h1-y=usb_sm_framework_h3.o diff --git a/test/test_config.h b/test/test_config.h index b83d834056..c422143112 100644 --- a/test/test_config.h +++ b/test/test_config.h @@ -335,6 +335,15 @@ int ncp15wb_calculate_temp(uint16_t adc); #endif #endif /* TEST_USB_PD || TEST_USB_PD_GIVEBACK || TEST_USB_PD_REV30 */ +#ifdef TEST_USB_PPC +#define CONFIG_USB_PD_PORT_COUNT 1 +#define CONFIG_USB_PD_VBUS_DETECT_PPC +#define CONFIG_USBC_PPC +#define CONFIG_USBC_PPC_POLARITY +#define CONFIG_USBC_PPC_SBU +#define CONFIG_USBC_PPC_VCONN +#endif + #if defined(TEST_CHARGE_MANAGER) || defined(TEST_CHARGE_MANAGER_DRP_CHARGING) #define CONFIG_CHARGE_MANAGER #define CONFIG_USB_PD_DUAL_ROLE 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(); +} diff --git a/test/usb_ppc.tasklist b/test/usb_ppc.tasklist new file mode 100644 index 0000000000..9fc1a80f4d --- /dev/null +++ b/test/usb_ppc.tasklist @@ -0,0 +1,9 @@ +/* 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. + */ + +/** + * See CONFIG_TASK_LIST in config.h for details. + */ +#define CONFIG_TEST_TASK_LIST |