power: supply: Use an rbtree rather than flat register cache
authorMark Brown <broonie@kernel.org>
Tue, 22 Feb 2022 21:43:31 +0000 (21:43 +0000)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Thu, 24 Feb 2022 10:47:55 +0000 (11:47 +0100)
commit4c678b7a6442c1d2d137639b2b6730f0587a956d
treefca7f07ff9b5ee6fb5a495802265262d82995abd
parent5ac121b81b4051e7fc83d5b3456a5e499d5bd147
power: supply: Use an rbtree rather than flat register cache

The smb347 has a very sparse register map (the maximum register is 0x3f but
less than 10% of the possible registers appear to be defined) and doesn't
have any hardware defaults specified so the sparser data structure of an
rbtree is a better fit for it's needs than a flat cache. Since it uses I2C
for the control interface there is no performance concern with the slightly
more involved code so let's convert it.

This will mean we avoid any issues created by assuming that any previously
unaccessed registers hold a value that doesn't match what's in the hardware
(eg, an _update_bits() suppressing a write).

Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/smb347-charger.c