Re: [PATCH v2 02/15] dt-bindings: Add trickle-charge upper limit

From: Matti Vaittinen

Date: Wed Oct 29 2025 - 02:22:50 EST


On 29/10/2025 08:03, Krzysztof Kozlowski wrote:
On Mon, Oct 27, 2025 at 01:45:05PM +0200, Matti Vaittinen wrote:
Some of the chargers for lithium-ion batteries use a trickle-charging as
a first charging phase for very empty batteries, to "wake-up" the battery.

In the few cases I was dealing with charging circuits, trickle charging
was used in context of top-off charging, so when battery is 100%. It's
also documented at Wiki like that:
https://en.wikipedia.org/wiki/Trickle_charging

Trickle-charging is a low current, constant current phase. After the
voltage of the very empty battery has reached an upper limit for
trickle charging, the pre-charge phase is started with a higher current.

Allow defining the upper limit for trickle charging voltage, after which
the charging should be changed to the pre-charging.


pre-charging is the trickle charging, no? Or you want to say that
trickle-charging is pre-pre-charging? But then what is pre-charging in
this binding?

There are the (usual?) pre-charging and fast-charging phases in the Rohm devices. Furthermore, the fast-charging is divided to constant current and constant voltage phases.

In addition to this, there is a 'trickle-charging' -phase for a very empty battery. This is already reflected by existing bindings:
trickle-charge-current-microamp, Please, see:
bbcecd1b9335 ("dt-bindings: Add trickle-charge upper limit")

I also did do some ASCII art for my very first charger driver binding:
https://elixir.bootlin.com/linux/v6.18-rc1/source/Documentation/devicetree/bindings/power/supply/rohm,bd99954.yaml

Do you think a comment linking to this drawing would help?



Signed-off-by: Matti Vaittinen <mazziesaccount@xxxxxxxxx>
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>

---
Revision history:
RFCv1 =>:
- No changes
---
Documentation/devicetree/bindings/power/supply/battery.yaml | 3 +++
1 file changed, 3 insertions(+)

diff --git a/Documentation/devicetree/bindings/power/supply/battery.yaml b/Documentation/devicetree/bindings/power/supply/battery.yaml
index 491488e7b970..66bed24b3dee 100644
--- a/Documentation/devicetree/bindings/power/supply/battery.yaml
+++ b/Documentation/devicetree/bindings/power/supply/battery.yaml
@@ -66,6 +66,9 @@ properties:
trickle-charge-current-microamp:
description: current for trickle-charge phase
+ tricklecharge-upper-limit-microvolt:

Please keep existing format, look three lines above. trickle-charge-....

But I believe this is wrong. Trickle charging does not switch to
anything more, there is no fast charging after trickle. You have some
sort of pre-pre-charging, which is just pre-charging.

There is trickle, pre and fast-charge phases. Furthermore, the fast-charge is further divided to CC and CV. Finally, if my memory serves me well, Linus W did explain me that some chargers use 'trickle-charging' as a _last_ charging phase for a full battery. Thus the term 'trickle-charging' is slightly confusing - but it is already used by the existing bindings...

https://lore.kernel.org/all/20211116001755.2132036-1-linus.walleij@xxxxxxxxxx/


Yours,
-- Matti