[PATCH v4 0/7] power: supply: max17040 support compatible devices

From: Iskren Chernev
Date: Sun Sep 06 2020 - 17:31:18 EST


From: Iskren Chernev <me@xxxxxxxxxxx>

The max17040 fuel gauge is part of a family of 8 chips that have very similar
mode of operations and registers.

This patch set adds:
- compatible strings for all supported devices and handles the minor
differences between them;
- handling for devices reporting double capacity via maxim,double-soc;
- handling for setting rcomp, a compensation value for more accurate reading,
affected by battery chemistry and operating temps;
- suppot for SOC alerts (capacity changes by +/- 1%), to prevent polling every
second;
- improved max17040 driver with regmap and devm_

The datasheets of the supported devices are linked [0] [1] [2] [3].

[0] https://datasheets.maximintegrated.com/en/ds/MAX17040-MAX17041.pdf
[1] https://datasheets.maximintegrated.com/en/ds/MAX17043-MAX17044.pdf
[2] https://datasheets.maximintegrated.com/en/ds/MAX17048-MAX17049.pdf
[3] https://datasheets.maximintegrated.com/en/ds/MAX17058-MAX17059.pdf

v3: https://lkml.org/lkml/2020/6/24/874
v2: https://lkml.org/lkml/2020/6/18/260
v1: https://lkml.org/lkml/2020/6/8/682

Changes in v4:
- split refactor patch into devm_ and regmap patches (as suggested by
Sebastian Reichel)
- correct handling of soc alert for double-soc devices
- rebased on 5.9-rc, incorporating upstream work

Iskren Chernev (7):
power: supply: max17040: Use devm_ to automate remove
power: supply: max17040: Use regmap i2c
dt-bindings: power: supply: Extend max17040 compatibility
power: supply: max17040: Support compatible devices
dt-bindings: power: supply: max17040: Add maxim,rcomp
power: supply: max17040: Support setting rcomp
power: supply: max17040: Support soc alert

.../power/supply/max17040_battery.txt | 21 +-
drivers/power/supply/Kconfig | 11 +-
drivers/power/supply/max17040_battery.c | 488 ++++++++++++------
3 files changed, 366 insertions(+), 154 deletions(-)


base-commit: b36c969764ab12faebb74711c942fa3e6eaf1e96
--
2.28.0