Re: [PATCH v4 04/16] dt-bindings: power: supply: BD72720 managed battery

From: Matti Vaittinen
Date: Mon Nov 17 2025 - 10:49:09 EST


On 17/11/2025 17:23, Rob Herring wrote:
On Mon, Nov 17, 2025 at 10:12:01AM +0200, Matti Vaittinen wrote:
On 14/11/2025 18:39, Rob Herring wrote:
On Fri, Nov 14, 2025 at 11:04:27AM +0200, Matti Vaittinen wrote:
On 13/11/2025 12:53, Rob Herring (Arm) wrote:

On Thu, 13 Nov 2025 10:52:19 +0200, Matti Vaittinen wrote:
From: Matti Vaittinen <mazziesaccount@xxxxxxxxx>

//snip



For VDR there are only:

rohm,voltage-vdr-thresh-microvolt,

So "voltage voltage drop rate"? And '-microvolt' says this is voltage
too. :)

Hm. Yes. This is a threshold voltage for applying the "zero-correction" algorithm, which uses these "VDR" (a.k.a voltage drop rate) tables. Eg, the algorithm should only used for the correction when battery voltage drops below this threshold. AFAICS, this is usually designed to be slightly higher than the voltage where the system stays still operable. I suppose this could also be "zero-correction-threshold", but this would introduce another "buzzword".

rohm,volt-drop-soc-bp,
rohm,volt-drop-temperatures-millicelsius

and

patternProperties:
'^rohm,volt-drop-[0-9]-microvolt':

So, from the binding point of view (.yaml), it's not _that_ lot. In the .dts
there will be quite some noise as the tables have several values.


If that
happens, either we are doing a poor job of generically describing
battery parameters or chargers and batteries are tightly coupled and
can't be described independently.

I am under impression that chargers tend to be pretty flexible, and they can
be configured to work with many different batteries by altering the charging
profiles. Most of the battery properties (like and charging phases [like
pre, CC, CV], their limits, currents and voltages etc) are very generally
usable. So, large subset of charging functionality can be handled with
standard properties. I believe it is only the fuel-gauging where things get
more hairy.

I did prepare a series which does the split and adds new compatible for the
'rohm,vdr-battery'. (The power-supply class is not yet modified in the
series, but we would probably want to modify the battery-info getters to
also accept the 'rohm,vdr-battery' -compatible.)

I don't think that's the right direction. It's not a Rohm battery.

I wonder if I should actually prepare also a series where these properties
are just placed in the existing static battery node without adding new
compatible. That way it would be easier to see which way is better.

That seems like the right thing to do here.

The main question for me is whether these should even be Rohm specific?
That would probably require a 2nd user to answer for sure.


This is a question Linus W asked as well :)
I believe this technique could be applied to other batteries. I, however, am not aware of any other than ROHM charger drivers which implement the algorithm. Furthermore, I was told that the mechanism to measure these "VDR-tables" for batteries is one of those things which should be "kept under your hat". I think ROHM has also patented some stuff related to that. Hence I prefixed these tables by "rohm,".

I have no strong objections to dropping the "rohm," though - but I doubt these tables will be heavily used by any other but ROHM chargers.

If I do that, should I only spin these bindings as RFC to avoid the
unnecessary noise?

Only if you think something is not complete and/or the patches should
not be applied.

Oh, Ok. Then I will send only one of the approaches - probably the one where properties are added to the simple-battery.

Thanks for all the support!

Yours,
-- Matti

---
Matti Vaittinen
Linux kernel developer at ROHM Semiconductors
Oulu Finland

~~ When things go utterly wrong vim users can always type :help! ~~