Re: [RFC PATCH v3 6/9] power: supply: Add batinfo functions for OCV to SOC with 0.1% accuracy

From: Matti Vaittinen
Date: Fri Nov 19 2021 - 03:11:31 EST


On 11/19/21 03:49, Linus Walleij wrote:
On Tue, Nov 16, 2021 at 1:27 PM Matti Vaittinen
<matti.vaittinen@xxxxxxxxxxxxxxxxx> wrote:

The battery info functions computing the state-of-charge (SOC) based
on open-circuit-voltage (OCV) are returning SOC using units of 1%.

Some capacity estimation computations require higher accuracy. Add
functions that return SOC using units of 0.1% to reduce rounding error.

Signed-off-by: Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>

That sounds useful.

+int power_supply_ocv2dcap_simple(struct power_supply_battery_ocv_table *table,
+ int table_len, int ocv)
+{
+ int i, cap, tmp;

Why a whole new function? Just rename the original power_supply_ocv2cap_simple()
to power_supply_ocv2dcap_simple and patch it to return the finegrained value,
then add a wrapper that use that function but drops it down by one order
of magnitude.

/me feels slightly stupid.
I wonder ehy you had to explain this to me :) Well, thanks and agreed!


+int power_supply_batinfo_ocv2dcap(struct power_supply_battery_info *info,
+ int ocv, int temp)

Same with this, saves a lot of code!

(Also will use my new interpolation routines since you refactor
on top of that.)

yup. I think this will be _much_ cleaner. I need to revise also the IC driver patches because I think I implemented something like your interpolation routines there too. So - thanks.

Best Regards
Matti