summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Barnaś <mb@semihalf.com>2021-08-06 14:20:54 +0200
committerCommit Bot <commit-bot@chromium.org>2021-08-18 01:33:11 +0000
commit9338d58b3ea480ad11fcce3abaa87c91541697a1 (patch)
treee5880290a7594bf26e9a8b5ad3838b26faebdef5
parentdac94834ba1fe8a60ec6e6b0f3884782dd95a270 (diff)
downloadchrome-ec-9338d58b3ea480ad11fcce3abaa87c91541697a1.tar.gz
zephyr: add lazor definitions of sku id and board version in dt
Add pins definitions in device tree file used to build zephyr BRANCH=main BUG=b:194136536 TEST=Build zephyr for lazor and verify if sku id and board version in EC console are correct. Change-Id: Ibdc1dcb456b5cecd48ddafeafff0f765ffa45081 Signed-off-by: Michał Barnaś <mb@semihalf.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3077541 Reviewed-by: Wai-Hong Tam <waihong@google.com> Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Wai-Hong Tam <waihong@google.com> Tested-by: Wai-Hong Tam <waihong@google.com>
-rw-r--r--board/lazor/board.c16
-rw-r--r--board/lazor/sku.c25
-rw-r--r--zephyr/projects/trogdor/lazor/gpio.dts36
3 files changed, 47 insertions, 30 deletions
diff --git a/board/lazor/board.c b/board/lazor/board.c
index 1e14dc420d..1118f3a845 100644
--- a/board/lazor/board.c
+++ b/board/lazor/board.c
@@ -413,3 +413,19 @@ static void board_chipset_resume(void)
pwm_enable(PWM_CH_DISPLIGHT, 1);
}
DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
+
+__override uint32_t board_get_sku_id(void)
+{
+ static int sku_id = -1;
+
+ if (sku_id == -1) {
+ int bits[3];
+
+ bits[0] = gpio_get_ternary(GPIO_SKU_ID0);
+ bits[1] = gpio_get_ternary(GPIO_SKU_ID1);
+ bits[2] = gpio_get_ternary(GPIO_SKU_ID2);
+ sku_id = binary_first_base3_from_bits(bits, ARRAY_SIZE(bits));
+ }
+
+ return (uint32_t)sku_id;
+}
diff --git a/board/lazor/sku.c b/board/lazor/sku.c
index e3ed685e35..815295d9f5 100644
--- a/board/lazor/sku.c
+++ b/board/lazor/sku.c
@@ -17,7 +17,6 @@
#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
-static int brd_id = -1;
static uint8_t sku_id;
enum board_model {
@@ -32,19 +31,6 @@ static const char *const model_name[] = {
"UNKNOWN",
};
-int board_get_version(void)
-{
- if (brd_id == -1) {
- int bits[3];
-
- bits[0] = gpio_get_ternary(GPIO_BOARD_VERSION1);
- bits[1] = gpio_get_ternary(GPIO_BOARD_VERSION2);
- bits[2] = gpio_get_ternary(GPIO_BOARD_VERSION3);
- brd_id = binary_first_base3_from_bits(bits, ARRAY_SIZE(bits));
- }
- return brd_id;
-}
-
static enum board_model get_model(void)
{
if (sku_id == 0 || sku_id == 1 || sku_id == 2 || sku_id == 3)
@@ -57,16 +43,7 @@ static enum board_model get_model(void)
/* Read SKU ID from GPIO and initialize variables for board variants */
static void sku_init(void)
{
- uint8_t val = 0;
-
- if (gpio_get_level(GPIO_SKU_ID0))
- val |= 0x01;
- if (gpio_get_level(GPIO_SKU_ID1))
- val |= 0x02;
- if (gpio_get_level(GPIO_SKU_ID2))
- val |= 0x04;
-
- sku_id = val;
+ sku_id = system_get_sku_id();
CPRINTS("SKU: %u (%s)", sku_id, model_name[get_model()]);
}
DECLARE_HOOK(HOOK_INIT, sku_init, HOOK_PRIO_INIT_I2C + 1);
diff --git a/zephyr/projects/trogdor/lazor/gpio.dts b/zephyr/projects/trogdor/lazor/gpio.dts
index 767ed11969..282ea97bb4 100644
--- a/zephyr/projects/trogdor/lazor/gpio.dts
+++ b/zephyr/projects/trogdor/lazor/gpio.dts
@@ -329,32 +329,32 @@
enum-name = "GPIO_EC_I2C_SENSOR_SDA";
label = "EC_I2C_SENSOR_SDA";
};
- brd_id0 {
+ gpio_brd_id0: brd_id0 {
gpios = <&gpioc 7 GPIO_INPUT>;
enum-name = "GPIO_BOARD_VERSION1";
label = "BRD_ID0";
};
- brd_id1 {
+ gpio_brd_id1: brd_id1 {
gpios = <&gpio9 3 GPIO_INPUT>;
enum-name = "GPIO_BOARD_VERSION2";
label = "BRD_ID1";
};
- brd_id2 {
+ gpio_brd_id2: brd_id2 {
gpios = <&gpio6 3 GPIO_INPUT>;
enum-name = "GPIO_BOARD_VERSION3";
label = "BRD_ID2";
};
- sku_id0 {
+ gpio_sku_id0: sku_id0 {
gpios = <&gpiof 0 GPIO_INPUT>;
enum-name = "GPIO_SKU_ID0";
label = "SKU_ID0";
};
- sku_id1 {
+ gpio_sku_id1: sku_id1 {
gpios = <&gpio4 1 GPIO_INPUT>;
enum-name = "GPIO_SKU_ID1";
label = "SKU_ID1";
};
- sku_id2 {
+ gpio_sku_id2: sku_id2 {
gpios = <&gpiod 4 GPIO_INPUT>;
enum-name = "GPIO_SKU_ID2";
label = "SKU_ID2";
@@ -391,6 +391,30 @@
>;
};
+ sku {
+ compatible = "cros-ec,gpio-id";
+
+ bits = <
+ &gpio_sku_id0
+ &gpio_sku_id1
+ &gpio_sku_id2
+ >;
+
+ system = "binary";
+ };
+
+ board {
+ compatible = "cros-ec,gpio-id";
+
+ bits = <
+ &gpio_brd_id0
+ &gpio_brd_id1
+ &gpio_brd_id2
+ >;
+
+ system = "binary_first_base3";
+ };
+
unused-pins {
compatible = "unused-gpios";
unused-gpios =