diff options
author | YongBeum Ha <ybha@samsung.com> | 2019-11-18 20:48:51 +0900 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-11-22 05:45:48 +0000 |
commit | 89eee491e4f4744a0602d5362e39c5618cab06c1 (patch) | |
tree | 6259ef161cb72119fa1ea2bfe247fde222237f40 | |
parent | ef655aef8cbb9f97636b5cd3e47af281e0c23226 (diff) | |
download | chrome-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.c | 4 | ||||
-rw-r--r-- | driver/battery/smart.c | 4 | ||||
-rw-r--r-- | include/config.h | 7 |
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 |