aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/google/fizz/mainboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google/fizz/mainboard.c')
-rw-r--r--src/mainboard/google/fizz/mainboard.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mainboard/google/fizz/mainboard.c b/src/mainboard/google/fizz/mainboard.c
index ae3767579e..54d7c4c103 100644
--- a/src/mainboard/google/fizz/mainboard.c
+++ b/src/mainboard/google/fizz/mainboard.c
@@ -21,9 +21,11 @@
#include <ec/google/chromeec/ec.h>
#include <gpio.h>
#include <mainboard/google/fizz/gpio.h>
+#include <smbios.h>
#include <soc/gpio.h>
#include <soc/pci_devs.h>
#include <soc/nhlt.h>
+#include <string.h>
#include <vendorcode/google/chromeos/chromeos.h>
#define FIZZ_SKU_ID_I7_U42 0x4
@@ -74,6 +76,29 @@ static u32 mainboard_get_pl2(void)
return watts;
}
+static uint8_t board_oem_id(void)
+{
+ static int board_oem_id = -1;
+ const gpio_t oem_id_gpios[] = {
+ GPIO_OEM_ID1,
+ GPIO_OEM_ID2,
+ GPIO_OEM_ID3,
+ };
+ if (board_oem_id < 0)
+ board_oem_id = gpio_base2_value(oem_id_gpios,
+ ARRAY_SIZE(oem_id_gpios));
+ return board_oem_id;
+}
+
+const char *smbios_mainboard_sku(void)
+{
+ static char sku_str[5]; /* sku{0..7} */
+
+ snprintf(sku_str, sizeof(sku_str), "sku%d", board_oem_id());
+
+ return sku_str;
+}
+
static void mainboard_init(device_t dev)
{
mainboard_ec_init();