diff options
author | Peter Marheine <pmarheine@chromium.org> | 2023-03-31 10:35:01 +1100 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-04-06 01:19:48 +0000 |
commit | 6963113b6ae438a6a84ba3b19e548b401df3aae1 (patch) | |
tree | 16126e187cf795974f6157ce8b40560d997c4d77 /zephyr/program | |
parent | 76c0324c1b504f269fee877b0e5eb662092d2085 (diff) | |
download | chrome-ec-6963113b6ae438a6a84ba3b19e548b401df3aae1.tar.gz |
nissa: test project-level sub_board.c
This defines a Nissa-like board for unit testing and adds tests to exercise
the project's sub_board.c, in particular that GPIO configuration is
correct.
A small change is made to make it possible for the tests to reset some
global values that are set by board code on initialization; there is no
functional change to board code.
BUG=b:271118112
TEST=./twister -ciC -T zephyr/test/nissa
BRANCH=nissa
Change-Id: I8edfddbf663761f5c72c4d680cc056ee7d46d2f8
Signed-off-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4402751
Reviewed-by: Tristan Honscheid <honscheid@google.com>
Diffstat (limited to 'zephyr/program')
-rw-r--r-- | zephyr/program/nissa/src/sub_board.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/zephyr/program/nissa/src/sub_board.c b/zephyr/program/nissa/src/sub_board.c index 9c86c9422c..db6788de96 100644 --- a/zephyr/program/nissa/src/sub_board.c +++ b/zephyr/program/nissa/src/sub_board.c @@ -19,7 +19,6 @@ #include "usbc/usb_muxes.h" #include <zephyr/drivers/gpio.h> -#include <zephyr/drivers/pinctrl.h> #include <zephyr/init.h> #include <zephyr/kernel.h> #include <zephyr/sys/printk.h> @@ -39,55 +38,56 @@ __override uint8_t board_get_usb_pd_port_count(void) return cached_usb_pd_port_count; } +test_export_static enum nissa_sub_board_type nissa_cached_sub_board = + NISSA_SB_UNKNOWN; /* * Retrieve sub-board type from FW_CONFIG. */ enum nissa_sub_board_type nissa_get_sb_type(void) { - static enum nissa_sub_board_type sb = NISSA_SB_UNKNOWN; int ret; uint32_t val; /* * Return cached value. */ - if (sb != NISSA_SB_UNKNOWN) - return sb; + if (nissa_cached_sub_board != NISSA_SB_UNKNOWN) + return nissa_cached_sub_board; - sb = NISSA_SB_NONE; /* Defaults to none */ + nissa_cached_sub_board = NISSA_SB_NONE; /* Defaults to none */ ret = cros_cbi_get_fw_config(FW_SUB_BOARD, &val); if (ret != 0) { LOG_WRN("Error retrieving CBI FW_CONFIG field %d", FW_SUB_BOARD); - return sb; + return nissa_cached_sub_board; } switch (val) { default: LOG_WRN("No sub-board defined"); break; case FW_SUB_BOARD_1: - sb = NISSA_SB_C_A; + nissa_cached_sub_board = NISSA_SB_C_A; LOG_INF("SB: USB type C, USB type A"); break; case FW_SUB_BOARD_2: - sb = NISSA_SB_C_LTE; + nissa_cached_sub_board = NISSA_SB_C_LTE; LOG_INF("SB: USB type C, WWAN LTE"); break; case FW_SUB_BOARD_3: - sb = NISSA_SB_HDMI_A; + nissa_cached_sub_board = NISSA_SB_HDMI_A; LOG_INF("SB: HDMI, USB type A"); break; } - return sb; + return nissa_cached_sub_board; } /* * Initialise the USB PD port count, which * depends on which sub-board is attached. */ -static void board_usb_pd_count_init(void) +test_export_static void board_usb_pd_count_init(void) { switch (nissa_get_sb_type()) { default: @@ -181,6 +181,7 @@ __overridable void nissa_configure_hdmi_power_gpios(void) */ #define I2C4_NODE DT_NODELABEL(i2c4) #if DT_NODE_EXISTS(I2C4_NODE) +#include <zephyr/drivers/pinctrl.h> PINCTRL_DT_DEFINE(I2C4_NODE); /* disable i2c4 alternate function */ |