From 9338d58b3ea480ad11fcce3abaa87c91541697a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Barna=C5=9B?= Date: Fri, 6 Aug 2021 14:20:54 +0200 Subject: zephyr: add lazor definitions of sku id and board version in dt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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ś Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3077541 Reviewed-by: Wai-Hong Tam Reviewed-by: Keith Short Commit-Queue: Wai-Hong Tam Tested-by: Wai-Hong Tam --- board/lazor/board.c | 16 +++++++++++++++ board/lazor/sku.c | 25 +---------------------- zephyr/projects/trogdor/lazor/gpio.dts | 36 ++++++++++++++++++++++++++++------ 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 = -- cgit v1.2.1