summaryrefslogtreecommitdiff
path: root/zephyr/program/nissa/src
diff options
context:
space:
mode:
authorPeter Marheine <pmarheine@chromium.org>2023-03-31 10:35:01 +1100
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-04-06 01:19:48 +0000
commit6963113b6ae438a6a84ba3b19e548b401df3aae1 (patch)
tree16126e187cf795974f6157ce8b40560d997c4d77 /zephyr/program/nissa/src
parent76c0324c1b504f269fee877b0e5eb662092d2085 (diff)
downloadchrome-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/nissa/src')
-rw-r--r--zephyr/program/nissa/src/sub_board.c23
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 */