summaryrefslogtreecommitdiff
path: root/board/lazor
diff options
context:
space:
mode:
authorWai-Hong Tam <waihong@google.com>2021-06-15 15:57:02 -0700
committerCommit Bot <commit-bot@chromium.org>2021-06-16 04:30:16 +0000
commitf1ecf804038855c0ee27714901553711aecccfc9 (patch)
tree314f20ff7f5f2c438827ad4bb226cbd9e81663aa /board/lazor
parent504216c9b3df0af440ce86571136bb7dc005fc02 (diff)
downloadchrome-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.h4
-rw-r--r--board/lazor/sku.c15
-rw-r--r--board/lazor/sku.h1
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);