summaryrefslogtreecommitdiff
path: root/board/careena
diff options
context:
space:
mode:
authorJonathan Brandmeyer <jbrandmeyer@chromium.org>2018-08-03 13:24:06 -0600
committerchrome-bot <chrome-bot@chromium.org>2018-08-08 04:29:20 -0700
commitb80693e94e6e9aa0a382c39c20efba6f2c7403a9 (patch)
treeb44a8b48858906c6f8a3875b6a69d7c2b6908ddc /board/careena
parent5d2cdcab232748095d1efeb4e5c0fc23b13adb67 (diff)
downloadchrome-ec-b80693e94e6e9aa0a382c39c20efba6f2c7403a9.tar.gz
battery: Optionally prevent boot at low SOC with cell imbalance.
Measure the cell imbalance with method dispatch to a per-battery method, such that families with a plurality of configurable batteries can support them all. By default, cell imbalance is taken to be 'zero' in case we don't support that battery's management IC. Provide a driver for reading cell voltages for the TI BQ4050 family. This IC is quite popular, but by no means universal. BUG=b:111214767 BRANCH=none TEST=Boot on Careena with a custom debug print statement, showing that we can measure the typical battery voltages during and after the boot at the battery status polling interval. Change-Id: I235389b252ac9c373aa9706dbd1066f7c0bbce71 Signed-off-by: Jonathan Brandmeyer <jbrandmeyer@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1162663 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'board/careena')
-rw-r--r--board/careena/battery.c12
-rw-r--r--board/careena/board.h3
2 files changed, 11 insertions, 4 deletions
diff --git a/board/careena/battery.c b/board/careena/battery.c
index fecd14b582..aefbcdfe97 100644
--- a/board/careena/battery.c
+++ b/board/careena/battery.c
@@ -45,7 +45,8 @@ const struct board_batt_params board_battery_info[] = {
.reg_addr = 0x0,
.reg_mask = 0x6000,
.disconnect_val = 0x6000,
- }
+ },
+ .imbalance_mv = &battery_bq4050_imbalance_mv,
},
.batt_info = {
.voltage_max = 8800, /* mV */
@@ -74,7 +75,8 @@ const struct board_batt_params board_battery_info[] = {
.reg_addr = 0x0,
.reg_mask = 0x6000,
.disconnect_val = 0x6000,
- }
+ },
+ .imbalance_mv = &battery_bq4050_imbalance_mv,
},
.batt_info = {
.voltage_max = 8800, /* mV */
@@ -103,7 +105,8 @@ const struct board_batt_params board_battery_info[] = {
.reg_addr = 0x0,
.reg_mask = 0x6000,
.disconnect_val = 0x6000,
- }
+ },
+ .imbalance_mv = &battery_bq4050_imbalance_mv,
},
.batt_info = {
.voltage_max = 8800, /* mV */
@@ -132,7 +135,8 @@ const struct board_batt_params board_battery_info[] = {
.reg_addr = 0x0,
.reg_mask = 0x6000,
.disconnect_val = 0x6000,
- }
+ },
+ .imbalance_mv = &battery_default_imbalance_mv,
},
.batt_info = {
.voltage_max = 8800, /* mV */
diff --git a/board/careena/board.h b/board/careena/board.h
index e86f97c07e..e7710102d9 100644
--- a/board/careena/board.h
+++ b/board/careena/board.h
@@ -24,6 +24,9 @@
#define CONFIG_CMD_LEDTEST
#define CONFIG_KEYBOARD_FACTORY_TEST
+#define CONFIG_BATTERY_MEASURE_IMBALANCE
+#define CONFIG_BATTERY_BQ4050
+
#ifndef __ASSEMBLER__
enum pwm_channel {