summaryrefslogtreecommitdiff
path: root/src/ec
diff options
context:
space:
mode:
Diffstat (limited to 'src/ec')
-rw-r--r--src/ec/google/chromeec/ec.c9
-rw-r--r--src/ec/google/chromeec/ec.h11
-rw-r--r--src/ec/google/chromeec/ec_boardid.c8
3 files changed, 20 insertions, 8 deletions
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index 09550d57b3..90fcc3d96c 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -637,7 +637,7 @@ int google_chromeec_cbi_get_dram_part_num(char *buf, size_t bufsize)
}
#ifndef __SMM__
-u16 google_chromeec_get_board_version(void)
+int google_chromeec_get_board_version(uint32_t *version)
{
struct chromeec_command cmd;
struct ec_response_board_version board_v;
@@ -649,10 +649,11 @@ u16 google_chromeec_get_board_version(void)
cmd.cmd_data_out = &board_v;
cmd.cmd_dev_index = 0;
- if (google_chromeec_command(&cmd) != 0)
- return 0;
+ if (google_chromeec_command(&cmd))
+ return -1;
- return board_v.board_version;
+ *version = board_v.board_version;
+ return 0;
}
u32 google_chromeec_get_sku_id(void)
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 2c6f1d6b8c..419870c35c 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -46,7 +46,16 @@ uint64_t google_chromeec_get_device_current_events(void);
int google_chromeec_check_feature(int feature);
uint8_t google_chromeec_calc_checksum(const uint8_t *data, int size);
-u16 google_chromeec_get_board_version(void);
+
+/**
+ * google_chromeec_get_board_version() - Get the board version
+ * @version: Out parameter to retrieve the board Version
+ *
+ * Return: 0 on success or -1 on failure/error.
+ *
+ * This function is used to get the board version information from EC.
+ */
+int google_chromeec_get_board_version(uint32_t *version);
u32 google_chromeec_get_sku_id(void);
int google_chromeec_set_sku_id(u32 skuid);
uint64_t google_chromeec_get_events_b(void);
diff --git a/src/ec/google/chromeec/ec_boardid.c b/src/ec/google/chromeec/ec_boardid.c
index 9ec058d1ae..01e3c90e3a 100644
--- a/src/ec/google/chromeec/ec_boardid.c
+++ b/src/ec/google/chromeec/ec_boardid.c
@@ -18,10 +18,12 @@
uint32_t board_id(void)
{
- MAYBE_STATIC int id = -1;
+ MAYBE_STATIC uint32_t id = BOARD_ID_INIT;
- if (id < 0)
- id = google_chromeec_get_board_version();
+ if (id == BOARD_ID_INIT) {
+ if (google_chromeec_get_board_version(&id))
+ id = BOARD_ID_UNKNOWN;
+ }
return id;
}