summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authormatt_wang <matt_wang@compal.corp-partner.google.com>2019-02-13 20:59:23 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-02-26 16:49:14 -0800
commitc2c2776e3a5ee68a1d2a2bab09635692418db998 (patch)
tree6c8b4676216febe6fa2185a3b5c5e38e3f2d599f /driver
parent219b09e87f61ffb410fe1a1dbaed4983460fefb4 (diff)
downloadchrome-ec-c2c2776e3a5ee68a1d2a2bab09635692418db998.tar.gz
Battery: add support battery-cutoff SMBus block write function
Implements battery-cutoff SMBus write block function BUG=b:122944526 BRANCH=None TEST=Verify battery cuff on fleex via SMBus block write. Change-Id: Ib52146cd3042c4a6d2dbafadd430591936230891 Signed-off-by: matt_wang <matt_wang@compal.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/1470462 Commit-Ready: Justin TerAvest <teravest@chromium.org> Tested-by: Justin TerAvest <teravest@chromium.org> Tested-by: Elmo Lan <elmo_lan@compal.corp-partner.google.com> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Justin TerAvest <teravest@chromium.org> Reviewed-by: Elmo Lan <elmo_lan@compal.corp-partner.google.com>
Diffstat (limited to 'driver')
-rw-r--r--driver/battery/smart.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/driver/battery/smart.c b/driver/battery/smart.c
index 758a60f546..f06da84e9f 100644
--- a/driver/battery/smart.c
+++ b/driver/battery/smart.c
@@ -108,6 +108,21 @@ int sb_read_mfgacc(int cmd, int block, uint8_t *data, int len)
return EC_SUCCESS;
}
+int sb_write_block(int reg, const uint8_t *val, int len)
+{
+#ifdef CONFIG_BATTERY_CUT_OFF
+ /*
+ * Some batteries would wake up after cut-off if we talk to it.
+ */
+ if (battery_is_cut_off())
+ return EC_RES_ACCESS_DENIED;
+#endif
+
+ /* TODO: implement smbus_write_block. */
+ return i2c_write_block(I2C_PORT_BATTERY, BATTERY_ADDR, reg, val, len);
+
+}
+
int battery_get_mode(int *mode)
{
return sb_read(SB_BATTERY_MODE, mode);