summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2020-05-27 14:58:20 +0800
committerCommit Bot <commit-bot@chromium.org>2020-05-28 09:00:08 +0000
commit8d668ef4faf1da7b231ff28183a472fabe1acae0 (patch)
tree06778174b440310ec66b79b39e691131f02ed9d7
parent69fb73897baf9148da757ed96e29e86abfbd2b67 (diff)
downloadchrome-ec-8d668ef4faf1da7b231ff28183a472fabe1acae0.tar.gz
kappa: implement battery_get_vendor_param to return oemdata
Kappa has a script (CL:*661617) that needs access of a non-standard SBS command for supplier and manufacture information. Implement a customized vendor param to expose this data to host. Since battery_get_vendor_param can only return 4 bytes at once, the command 0x70 is split into 16 separate calls (0x70~0x7F) to mimic the read string operation. Commands outside this range are rejected. BUG=b:155936029 TEST=1) `ectool batteryparam get <reg>`, where reg=0x70~0x7F 2) in ec console: `battparam <reg>`, where reg=0x70~0x7F BRANCH=kukui Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: I1ee505f7473711b15b2c1029261956c4bf1bea5d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2215091 Reviewed-by: Eric Yilun Lin <yllin@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org>
-rw-r--r--board/kappa/board.c21
-rw-r--r--board/kappa/board.h1
2 files changed, 22 insertions, 0 deletions
diff --git a/board/kappa/board.c b/board/kappa/board.c
index ea1821ee07..dc759146c4 100644
--- a/board/kappa/board.c
+++ b/board/kappa/board.c
@@ -289,3 +289,24 @@ static void board_chipset_shutdown(void)
}
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, board_chipset_shutdown, HOOK_PRIO_DEFAULT);
+int battery_get_vendor_param(uint32_t param, uint32_t *value)
+{
+ int rv;
+ uint8_t data[16] = {};
+
+ /* only allow reading 0x70~0x7F, 16 byte data */
+ if (param < 0x70 || param >= 0x80)
+ return EC_ERROR_ACCESS_DENIED;
+
+ rv = sb_read_string(0x70, data, sizeof(data));
+ if (rv)
+ return rv;
+
+ *value = data[param - 0x70];
+ return EC_SUCCESS;
+}
+
+int battery_set_vendor_param(uint32_t param, uint32_t value)
+{
+ return EC_ERROR_UNIMPLEMENTED;
+}
diff --git a/board/kappa/board.h b/board/kappa/board.h
index cab495c42c..cdd3b30cdc 100644
--- a/board/kappa/board.h
+++ b/board/kappa/board.h
@@ -22,6 +22,7 @@
#define CONFIG_CHIPSET_POWER_SEQ_VERSION 1
#define CONFIG_BATTERY_HW_PRESENT_CUSTOM
+#define CONFIG_BATTERY_VENDOR_PARAM
#define CONFIG_CHARGER_PSYS