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