summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlschyi <lschyi@google.com>2022-10-17 14:26:19 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-10-20 03:44:32 +0000
commit5f70fb162248aaa8fd57ee98b1221bf5394bd1c1 (patch)
treeeed5d70210e98f18244d94b24a1d3344a8c72ce1
parentd66a74dd8227e7f14b37134af1c4c5dfdd7d84f2 (diff)
downloadchrome-ec-5f70fb162248aaa8fd57ee98b1221bf5394bd1c1.tar.gz
zephyr/test: add krabby usb mux board init test
Add testing for checking the krabby project usb mux init. Enable USBC and other related functionality in krabby test config, and update the it8xxx2 emul configuration. BUG=b:229340646 TEST=./twister -p native_posix -p unit_testing BRANCH=none Signed-off-by: lschyi <lschyi@google.com> Change-Id: I981e89eeecd58b78e6a256fe154611f2a2a50ead Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3965889 Tested-by: Sung-Chi Li <lschyi@chromium.org> Commit-Queue: Sung-Chi Li <lschyi@chromium.org> Code-Coverage: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r--zephyr/dts/it8xxx2_emul.dts8
-rw-r--r--zephyr/projects/corsola/src/krabby/usbc_config.c4
-rw-r--r--zephyr/test/krabby/CMakeLists.txt4
-rw-r--r--zephyr/test/krabby/common.dts20
-rw-r--r--zephyr/test/krabby/prj.conf8
-rw-r--r--zephyr/test/krabby/src/stubs.c41
-rw-r--r--zephyr/test/krabby/src/usb_mux_init.c28
7 files changed, 110 insertions, 3 deletions
diff --git a/zephyr/dts/it8xxx2_emul.dts b/zephyr/dts/it8xxx2_emul.dts
index dcb44aebd2..b22251b67b 100644
--- a/zephyr/dts/it8xxx2_emul.dts
+++ b/zephyr/dts/it8xxx2_emul.dts
@@ -174,4 +174,12 @@
#size-cells = <0>;
reg = <0xf01c40 0x1000>;
};
+
+ i2c_ctrl4: i2c@f03500 {
+ compatible = "zephyr,i2c-emul-controller";
+ clock-frequency = <I2C_BITRATE_STANDARD>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x00f03500 0x0080>;
+ };
};
diff --git a/zephyr/projects/corsola/src/krabby/usbc_config.c b/zephyr/projects/corsola/src/krabby/usbc_config.c
index 4870b1c98b..7a7f710804 100644
--- a/zephyr/projects/corsola/src/krabby/usbc_config.c
+++ b/zephyr/projects/corsola/src/krabby/usbc_config.c
@@ -36,6 +36,7 @@ int tusb1064_mux_1_board_init(const struct usb_mux *me)
MASK_SET);
}
+#ifdef CONFIG_USB_PD_TCPM_ITE_ON_CHIP
const struct cc_para_t *board_get_cc_tuning_parameter(enum usbpd_port port)
{
const static struct cc_para_t
@@ -56,6 +57,7 @@ const struct cc_para_t *board_get_cc_tuning_parameter(enum usbpd_port port)
return &cc_parameter[port];
}
+#endif
void board_reset_pd_mcu(void)
{
@@ -65,6 +67,7 @@ void board_reset_pd_mcu(void)
*/
}
+#ifndef CONFIG_TEST
int board_set_active_charge_port(int port)
{
int i;
@@ -121,6 +124,7 @@ int board_set_active_charge_port(int port)
return EC_SUCCESS;
}
+#endif
#ifdef CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT
enum adc_channel board_get_vbus_adc(int port)
diff --git a/zephyr/test/krabby/CMakeLists.txt b/zephyr/test/krabby/CMakeLists.txt
index f50aa63d97..639eb858b7 100644
--- a/zephyr/test/krabby/CMakeLists.txt
+++ b/zephyr/test/krabby/CMakeLists.txt
@@ -13,4 +13,6 @@ zephyr_include_directories("${PLATFORM_EC}/zephyr/projects/corsola/include")
target_sources(app PRIVATE
src/charger_workaround.c
src/stubs.c
- ${PLATFORM_EC}/zephyr/projects/corsola/src/krabby/charger_workaround.c)
+ src/usb_mux_init.c
+ ${PLATFORM_EC}/zephyr/projects/corsola/src/krabby/charger_workaround.c
+ ${PLATFORM_EC}/zephyr/projects/corsola/src/krabby/usbc_config.c)
diff --git a/zephyr/test/krabby/common.dts b/zephyr/test/krabby/common.dts
index d9f1a4f463..b8f1eb0733 100644
--- a/zephyr/test/krabby/common.dts
+++ b/zephyr/test/krabby/common.dts
@@ -32,6 +32,16 @@
chg = <&charger>;
tcpc = <&tcpci_emul>;
};
+
+ port1@1 {
+ compatible = "named-usbc-port";
+ status = "okay";
+ reg = <1>;
+ usb-mux-chain-1 {
+ compatible = "cros-ec,usb-mux-chain";
+ usb-muxes = <&tusb1064_mux_1>;
+ };
+ };
};
batteries {
@@ -68,3 +78,13 @@
reg = <0x82>;
};
};
+
+&i2c_ctrl4 {
+ status="okay";
+
+ tusb1064_mux_1: tusb1064-mux-1@44 {
+ compatible = "zephyr,tusb1064-emul";
+ reg = <0x44>;
+ board-init = "tusb1064_mux_1_board_init";
+ };
+};
diff --git a/zephyr/test/krabby/prj.conf b/zephyr/test/krabby/prj.conf
index 21a2603db2..ddf5a29c21 100644
--- a/zephyr/test/krabby/prj.conf
+++ b/zephyr/test/krabby/prj.conf
@@ -6,12 +6,14 @@ CONFIG_ZTEST=y
CONFIG_ZTEST_ASSERT_VERBOSE=1
CONFIG_ZTEST_NEW_API=y
+CONFIG_ADC=y
CONFIG_ASSERT=y
CONFIG_CROS_EC=y
CONFIG_EMUL=y
CONFIG_EMUL_RT9490=y
CONFIG_EMUL_SMART_BATTERY=y
CONFIG_EMUL_TCPCI=y
+CONFIG_EMUL_TUSB1064=y
CONFIG_I2C=y
CONFIG_I2C_EMUL=y
@@ -29,7 +31,9 @@ CONFIG_PLATFORM_EC_HOOKS=y
CONFIG_PLATFORM_EC_HOSTCMD=y
CONFIG_PLATFORM_EC_LID_SWITCH=n
CONFIG_PLATFORM_EC_SWITCH=n
-CONFIG_PLATFORM_EC_USBC=n
+CONFIG_PLATFORM_EC_USBC=y
CONFIG_PLATFORM_EC_USB_CHARGER=n
-CONFIG_PLATFORM_EC_USB_POWER_DELIVERY=n
+CONFIG_PLATFORM_EC_USB_MUX_TUSB546=y
+CONFIG_PLATFORM_EC_USB_PD_DISCHARGE_PPC=y
+CONFIG_PLATFORM_EC_USB_POWER_DELIVERY=y
CONFIG_PLATFORM_EC_VBOOT_HASH=n
diff --git a/zephyr/test/krabby/src/stubs.c b/zephyr/test/krabby/src/stubs.c
index b6cc0c5368..e2dfa720b4 100644
--- a/zephyr/test/krabby/src/stubs.c
+++ b/zephyr/test/krabby/src/stubs.c
@@ -3,6 +3,8 @@
* found in the LICENSE file.
*/
+#include "adc.h"
+#include "usbc_ppc.h"
#include "charge_ramp.h"
#include "charge_state.h"
@@ -27,3 +29,42 @@ const struct batt_params *charger_current_battery_params(void)
return &params;
}
+
+int board_get_battery_soc(void)
+{
+ return 0;
+}
+
+void pd_power_supply_reset(void)
+{
+}
+
+int pd_check_vconn_swap(int port)
+{
+ return 0;
+}
+
+void pd_set_input_current_limit(int port, uint32_t max_ma,
+ uint32_t supply_voltage)
+{
+}
+
+int pd_set_power_supply_ready(int port)
+{
+ return 0;
+}
+
+void usb_charger_vbus_change(int port, int vbus_level)
+{
+}
+
+int charge_manager_get_active_charge_port(void)
+{
+ return 0;
+}
+
+struct ppc_config_t ppc_chips[] = {};
+
+unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
+
+const struct adc_t adc_channels[] = {};
diff --git a/zephyr/test/krabby/src/usb_mux_init.c b/zephyr/test/krabby/src/usb_mux_init.c
new file mode 100644
index 0000000000..665f1c7b7e
--- /dev/null
+++ b/zephyr/test/krabby/src/usb_mux_init.c
@@ -0,0 +1,28 @@
+/* Copyright 2022 The ChromiumOS Authors
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include <zephyr/devicetree.h>
+#include <zephyr/drivers/emul.h>
+#include <zephyr/ztest.h>
+
+#include "driver/usb_mux/tusb1064.h"
+#include "emul/emul_tusb1064.h"
+#include "usb_mux.h"
+#include "usbc/usb_muxes.h"
+
+const static struct emul *emul = EMUL_DT_GET(DT_NODELABEL(tusb1064_mux_1));
+
+const static int tusb1064_port = USB_MUX_PORT(DT_NODELABEL(tusb1064_mux_1));
+
+ZTEST(usb_mux_init, test_mux_init_value)
+{
+ usb_mux_set(tusb1064_port, USB_PD_MUX_DP_ENABLED, USB_SWITCH_CONNECT,
+ 0);
+ zassert_equal(tusb1064_emul_peek_reg(emul, TUSB1064_REG_DP1DP3EQ_SEL),
+ TUSB1064_DP1EQ(TUSB1064_DP_EQ_RX_8_9_DB) |
+ TUSB1064_DP3EQ(TUSB1064_DP_EQ_RX_5_4_DB));
+}
+
+ZTEST_SUITE(usb_mux_init, NULL, NULL, NULL, NULL, NULL);