summaryrefslogtreecommitdiff
path: root/test/usb_ppc.c
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@chromium.org>2019-09-27 13:25:14 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-06 22:55:08 +0000
commitcfb6d3ded36e6b7935f8693532f6f9031643865d (patch)
tree8a59dccf74d4f3a8ad1f54cc6000f3b1a98f203f /test/usb_ppc.c
parent437e7346ab38a1eca1bb8526ae03b120635f03e9 (diff)
downloadchrome-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.c193
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();
+}