summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2019-02-07 11:16:20 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-02-18 08:51:19 -0800
commit80020d90d17ac1507abcefe9004ed6ae8cb9728d (patch)
tree0ccab90fff51e0f28ec1f1198f86735d4a6775d1
parent0fa2513fc1c5c3c328e617c1593435a97d109d6f (diff)
downloadchrome-ec-80020d90d17ac1507abcefe9004ed6ae8cb9728d.tar.gz
Flapjack: Enable CBI
This patch enables cros board info. EC console looks as follows: [0.000747 CBI Reading board info] [0.001232 CBI Bad magic] [0.001313 CBI Reading board info] [0.001797 CBI Bad magic] [0.001879 Board Version: 0x0000] [0.001984 OEM: 0] [0.002062 SKU: 0x00000000] Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=b/123676982 BRANCH=none TEST=See the description above. Change-Id: Ia2d9867e9d4836545723cb61973483e25f38b305 Reviewed-on: https://chromium-review.googlesource.com/1459559 Commit-Ready: Kaka Ni <nigang@huaqin.corp-partner.google.com> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r--board/flapjack/board.c24
-rw-r--r--board/flapjack/board.h12
2 files changed, 36 insertions, 0 deletions
diff --git a/board/flapjack/board.c b/board/flapjack/board.c
index a4519074d1..13372d92f3 100644
--- a/board/flapjack/board.c
+++ b/board/flapjack/board.c
@@ -13,6 +13,7 @@
#include "chipset.h"
#include "common.h"
#include "console.h"
+#include "cros_board_info.h"
#include "driver/accelgyro_bmi160.h"
#include "driver/als_opt3001.h"
#include "driver/battery/max17055.h"
@@ -48,6 +49,28 @@
#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
+uint16_t board_version;
+uint8_t oem;
+uint32_t sku;
+
+static void cbi_init(void)
+{
+ uint32_t val;
+
+ if (cbi_get_board_version(&val) == EC_SUCCESS && val <= UINT16_MAX)
+ board_version = val;
+ CPRINTS("Board Version: 0x%04x", board_version);
+
+ if (cbi_get_oem_id(&val) == EC_SUCCESS && val <= PROJECT_COUNT)
+ oem = val;
+ CPRINTS("OEM: %d", oem);
+
+ if (cbi_get_sku_id(&val) == EC_SUCCESS)
+ sku = val;
+ CPRINTS("SKU: 0x%08x", sku);
+}
+DECLARE_HOOK(HOOK_INIT, cbi_init, HOOK_PRIO_INIT_I2C + 1);
+
static void tcpc_alert_event(enum gpio_signal signal)
{
schedule_deferred_pd_interrupt(0 /* port */);
@@ -82,6 +105,7 @@ const struct i2c_port_t i2c_ports[] = {
{"tcpc0", I2C_PORT_TCPC0, 400, GPIO_I2C1_SCL, GPIO_I2C1_SDA},
{"battery", I2C_PORT_BATTERY, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
{"accelgyro", I2C_PORT_ACCEL, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
+ {"eeprom", I2C_PORT_EEPROM, 400, GPIO_I2C2_SCL, GPIO_I2C2_SDA},
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
diff --git a/board/flapjack/board.h b/board/flapjack/board.h
index 992f070cb6..65d410fff9 100644
--- a/board/flapjack/board.h
+++ b/board/flapjack/board.h
@@ -11,8 +11,11 @@
/* Optional modules */
#define CONFIG_ADC
#undef CONFIG_ADC_WATCHDOG
+#define CONFIG_BOARD_VERSION_CBI
#define CONFIG_CHIPSET_MT8183
#define CONFIG_CMD_ACCELS
+#define CONFIG_CRC8
+#define CONFIG_CROS_BOARD_INFO
#define CONFIG_EMULATED_SYSRQ
#undef CONFIG_HIBERNATE
#define CONFIG_I2C
@@ -179,6 +182,10 @@
#define I2C_PORT_VIRTUAL_BATTERY I2C_PORT_BATTERY
#define I2C_PORT_ACCEL 1
#define I2C_PORT_ALS 1
+#define I2C_PORT_EEPROM 1
+
+/* I2C addresses */
+#define I2C_ADDR_EEPROM 0xA0
/* Route sbs host requests to virtual battery driver */
#define VIRTUAL_BATTERY_ADDR 0x16
@@ -195,6 +202,11 @@
#ifndef __ASSEMBLER__
+enum oem_id {
+ PROJECT_FLAPJACK = 0,
+ PROJECT_COUNT,
+};
+
enum adc_channel {
/* Real ADC channels begin here */
ADC_BOARD_ID = 0,