diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-11-01 09:53:31 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-11-08 00:48:02 -0800 |
commit | 0275d7360271f2fad2740f0c56cf0c83bf3a24d8 (patch) | |
tree | 4232506b512da11d3207dd626d7fe29297ad9fd1 /test | |
parent | 55a33c46ffac1f1ed781fa8be6150a4303d26542 (diff) | |
download | chrome-ec-0275d7360271f2fad2740f0c56cf0c83bf3a24d8.tar.gz |
Battery: Compensate remaining charge to match full capacity
If remaining charge is more than x% of the full capacity, the
remaining charge is raised to the full capacity before it's
reported to the rest of the system.
Some batteries don't update full capacity timely or don't update it
at all. On such systems, compensation is required to guarantee
the remaining charge will be equal to the full capacity eventually.
On some systems, Rohm charger generates audio noise when the battery
is fully charged and AC is plugged. A workaround is to do charge-
discharge cycles between 93 and 100%. On such systems, compensation
was also applied to mask this cycle from users.
This used to be done in ACPI, thus, all software components except EC
was able to see the compensated charge. This patch is moving the logic
to EC. With this and the following changes, EC can see what the rest
of the system sees, thus, can control LEDs synchronously (to the
display percentage).
Another rationale of this move is EC can perform more granular and
precise compensation than ACPI since it has more knowledge about the
battery and the charger.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
CQ-DEPEND=CL:1320195
BUG=b:109954565,b:80270446
BRANCH=none
TEST=Verify charge LED changes to white (full) on Sona synchronously
to the display percentage.
TEST=Verify charge LED changes to blinking white (low) on Sona
within 30 seconds synchronously to the display percentage.
Change-Id: I4e3f70efa39e62c91cb8894b603c551cd23511aa
Reviewed-on: https://chromium-review.googlesource.com/1312204
Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/battery_get_params_smart.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/test/battery_get_params_smart.c b/test/battery_get_params_smart.c index 7c86252b23..f4c006702b 100644 --- a/test/battery_get_params_smart.c +++ b/test/battery_get_params_smart.c @@ -19,6 +19,11 @@ static int fail_on_first, fail_on_last; static int read_count, write_count; struct batt_params batt; + +void battery_compensate_params(struct batt_params *batt) +{ +} + static void reset_and_fail_on(int first, int last) { /* We're not initializing the fake battery, so everything reads zero */ |