diff options
author | Wai-Hong Tam <waihong@google.com> | 2021-06-15 15:57:02 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-16 04:30:16 +0000 |
commit | f1ecf804038855c0ee27714901553711aecccfc9 (patch) | |
tree | 314f20ff7f5f2c438827ad4bb226cbd9e81663aa /board/lazor | |
parent | 504216c9b3df0af440ce86571136bb7dc005fc02 (diff) | |
download | chrome-ec-f1ecf804038855c0ee27714901553711aecccfc9.tar.gz |
lazor: Interpret the BOARD ID in the binary-first base3 system
Convert the raw BOARD ID to a binary-first base3 number. So it won't
affect the original binary BOARD ID assignment.
If all the GPIOs are not tri-state, it ends up to be a number in
binary interpretation.
Also cache the BOARD ID value.
BRANCH=Trogdor
BUG=b:190250108
TEST=Build the image and check the BOARD IDs.
Change-Id: Ibd938fbc05977df1eb7d8d27460beab4cd0f7bf7
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2964390
Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'board/lazor')
-rw-r--r-- | board/lazor/board.h | 4 | ||||
-rw-r--r-- | board/lazor/sku.c | 15 | ||||
-rw-r--r-- | board/lazor/sku.h | 1 |
3 files changed, 20 insertions, 0 deletions
diff --git a/board/lazor/board.h b/board/lazor/board.h index d4f4426d05..077e6ded70 100644 --- a/board/lazor/board.h +++ b/board/lazor/board.h @@ -13,6 +13,9 @@ /* Internal SPI flash on NPCX7 */ #define CONFIG_FLASH_SIZE_BYTES (512 * 1024) /* 512KB internal spi flash */ +/* Custom the board version using tristate */ +#define CONFIG_BOARD_VERSION_CUSTOM + /* Switchcap */ #define CONFIG_LN9310 @@ -83,6 +86,7 @@ #include "gpio_signal.h" #include "registers.h" +#include "sku.h" enum adc_channel { ADC_VBUS, diff --git a/board/lazor/sku.c b/board/lazor/sku.c index a4ef6c6b22..687888c78d 100644 --- a/board/lazor/sku.c +++ b/board/lazor/sku.c @@ -12,10 +12,12 @@ #include "hooks.h" #include "sku.h" #include "system.h" +#include "util.h" #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 { @@ -30,6 +32,19 @@ 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) diff --git a/board/lazor/sku.h b/board/lazor/sku.h index 22b3c6d723..96eaf2bb92 100644 --- a/board/lazor/sku.h +++ b/board/lazor/sku.h @@ -8,6 +8,7 @@ #ifndef __CROS_EC_SKU_H #define __CROS_EC_SKU_H +int board_get_version(void); int board_is_clamshell(void); int board_has_da9313(void); int board_has_ln9310(void); |