diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2019-02-07 11:16:20 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-02-18 08:51:19 -0800 |
commit | 80020d90d17ac1507abcefe9004ed6ae8cb9728d (patch) | |
tree | 0ccab90fff51e0f28ec1f1198f86735d4a6775d1 | |
parent | 0fa2513fc1c5c3c328e617c1593435a97d109d6f (diff) | |
download | chrome-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.c | 24 | ||||
-rw-r--r-- | board/flapjack/board.h | 12 |
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, |