summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongBeum Ha <ybha@samsung.com>2019-11-18 20:48:51 +0900
committerCommit Bot <commit-bot@chromium.org>2019-11-22 05:45:48 +0000
commit89eee491e4f4744a0602d5362e39c5618cab06c1 (patch)
tree6259ef161cb72119fa1ea2bfe247fde222237f40
parentef655aef8cbb9f97636b5cd3e47af281e0c23226 (diff)
downloadchrome-ec-89eee491e4f4744a0602d5362e39c5618cab06c1.tar.gz
battery : Define CONFIG_BATTERY_DEAD_UNTIL_VALUE
It takes 850ms~950ms to get valid RSOC after battery wake-up. Sometimes battery FG returns garbage data(1%) as RSOC and 0 value of desired current / voltage. Add CONFIG_BATTERY_DEAD_UNTIL_VALUE to continue charging. BUG=b:138413964 BRANCH=None TEST=build & flash, check battery charging with dead battery Change-Id: I0cbe30aa973499b0c27faf9b6da03a0344ad1065 Signed-off-by: YongBeum Ha <ybha@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1918985 Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r--common/charge_state_v2.c4
-rw-r--r--driver/battery/smart.c4
-rw-r--r--include/config.h7
3 files changed, 15 insertions, 0 deletions
diff --git a/common/charge_state_v2.c b/common/charge_state_v2.c
index 6e6cc6c7d7..5a383373af 100644
--- a/common/charge_state_v2.c
+++ b/common/charge_state_v2.c
@@ -1773,7 +1773,11 @@ void charger_task(void *u)
*/
if (curr.requested_voltage == 0 &&
curr.requested_current == 0 &&
+#ifdef CONFIG_BATTERY_DEAD_UNTIL_VALUE
+ curr.batt.state_of_charge < CONFIG_BATTERY_DEAD_UNTIL_VALUE) {
+#else
curr.batt.state_of_charge == 0) {
+#endif
/* Battery is dead, give precharge current */
curr.requested_voltage =
batt_info->voltage_max;
diff --git a/driver/battery/smart.c b/driver/battery/smart.c
index 69a90e72f6..a2527db42f 100644
--- a/driver/battery/smart.c
+++ b/driver/battery/smart.c
@@ -390,7 +390,11 @@ void battery_get_params(struct batt_params *batt)
batt_new.state_of_charge < BATTERY_LEVEL_FULL) ||
(batt_new.desired_voltage == 0 &&
batt_new.desired_current == 0 &&
+#ifdef CONFIG_BATTERY_DEAD_UNTIL_VALUE
+ batt_new.state_of_charge < CONFIG_BATTERY_DEAD_UNTIL_VALUE)))
+#else
batt_new.state_of_charge == 0)))
+#endif
#else
batt_new.desired_voltage &&
batt_new.desired_current &&
diff --git a/include/config.h b/include/config.h
index dcfc3b175f..d95d938ce4 100644
--- a/include/config.h
+++ b/include/config.h
@@ -554,6 +554,13 @@
#undef CONFIG_BATTERY_V2
/*
+ * Some fuel gauges in battery take some time to return valid battery params
+ * when wake form dead battery.
+ * It need to do precharge to take valid battery params.
+ */
+#undef CONFIG_BATTERY_DEAD_UNTIL_VALUE
+
+/*
* Number of batteries, only matters when CONFIG_BATTERY_V2 is used.
*/
#undef CONFIG_BATTERY_COUNT