1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/power/supply/rohm,bd99954.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ROHM BD99954 Battery charger
8
9maintainers:
10  - Matti Vaittinen <mazziesaccount@gmail.com>
11  - Markus Laine <markus.laine@fi.rohmeurope.com>
12  - Mikko Mutanen <mikko.mutanen@fi.rohmeurope.com>
13
14description: |
15  The ROHM BD99954 is a Battery Management LSI for 1-4 cell Lithium-Ion
16  secondary battery intended to be used in space-constraint equipment such
17  as Low profile Notebook PC, Tablets and other applications. BD99954
18  provides a Dual-source Battery Charger, two port BC1.2 detection and a
19  Battery Monitor.
20
21$ref: power-supply.yaml#
22
23properties:
24  compatible:
25    const: rohm,bd99954
26#
27#    The battery charging profile of BD99954.
28#
29#    Curve (1) represents charging current.
30#    Curve (2) represents battery voltage.
31#
32#    The BD99954 data sheet divides charging to three phases.
33#    a) Trickle-charge with constant current (8).
34#    b) pre-charge with constant current (6)
35#    c) fast-charge with:
36#       First a constant current (5) phase (CC)
37#       Then constant voltage (CV) phase (after the battery voltage has reached
38#       target level - until charging current has dropped to termination
39#       level (7)
40#
41#     V ^                                                        ^ I
42#       .                                                        .
43#       .                                                        .
44# (4)- -.- - - - - - - - - - - - - -  +++++++++++++++++++++++++++.
45#       .                            /                           .
46#       .                     ++++++/++ - - - - - - - - - - - - -.- - (5)
47#       .                     +    /  +                          .
48#       .                     +   -   --                         .
49#       .                     +  -     +                         .
50#       .                     +.-      -:                        .
51#       .                    .+         +`                       .
52#       .                  .- +       | `/                       .
53#       .               .."   +          .:                      .
54#       .             -"      +           --                     .
55#       .    (2)  ..."        +       |    :-                    .
56#       .    ...""            +             -:                   .
57# (3)- -.-.""- - - - -+++++++++ - - - - - - -.:- - - - - - - - - .- - (6)
58#       .             +                       `:.                .
59#       .             +               |         -:               .
60#       .             +                           -:             .
61#       .             +                             ..           .
62#       .   (1)       +               |               "+++- - - -.- - (7)
63#       -++++++++++++++- - - - - - - - - - - - - - - - - + - - - .- - (8)
64#       .                                                +       -
65#       -------------------------------------------------+++++++++-->
66#       |             |       |   CC   |      CV         |
67#       | --trickle-- | -pre- | ---------fast----------- |
68#
69#   The charger uses the following battery properties
70# - trickle-charge-current-microamp:
71#     Current used at trickle-charge phase (8 in above chart)
72#     minimum: 64000
73#     maximum: 1024000
74#     multipleOf: 64000
75# - precharge-current-microamp:
76#     Current used at pre-charge phase (6 in above chart)
77#     minimum: 64000
78#     maximum: 1024000
79#     multipleOf: 64000
80# - constant-charge-current-max-microamp
81#     Current used at fast charge constant current phase (5 in above chart)
82#     minimum: 64000
83#     maximum: 1024000
84#     multipleOf: 64000
85# - constant-charge-voltage-max-microvolt
86#     The constant voltage used in fast charging phase (4 in above chart)
87#     minimum: 2560000
88#     maximum: 19200000
89#     multipleOf: 16000
90# - precharge-upper-limit-microvolt
91#     charging mode is changed from trickle charging to pre-charging
92#     when battery voltage exceeds this limit voltage (3 in above chart)
93#     minimum: 2048000
94#     maximum: 19200000
95#     multipleOf: 64000
96# - re-charge-voltage-microvolt
97#     minimum: 2560000
98#     maximum: 19200000
99#     multipleOf: 16000
100#     re-charging is automatically started when battry has been discharging
101#     to the point where the battery voltage drops below this limit
102# - over-voltage-threshold-microvolt
103#     battery is expected to be faulty if battery voltage exceeds this limit.
104#     Charger will then enter to a "battery faulty" -state
105#     minimum: 2560000
106#     maximum: 19200000
107#     multipleOf: 16000
108# - charge-term-current-microamp
109#     minimum: 0
110#     maximum: 1024000
111#     multipleOf: 64000
112#     a charge cycle terminates when the battery voltage is above recharge
113#     threshold, and the current is below this setting (7 in above chart)
114#   See also Documentation/devicetree/bindings/power/supply/battery.yaml
115
116  reg:
117    maxItems: 1
118
119  interrupts:
120    maxItems: 1
121
122  monitored-battery:
123    description:
124      phandle of battery characteristics devicetree node
125
126  rohm,vsys-regulation-microvolt:
127    description: system specific lower limit for system voltage.
128    minimum: 2560000
129    maximum: 19200000
130    multipleOf: 64000
131
132  rohm,vbus-input-current-limit-microamp:
133    description: system specific VBUS input current limit (in microamps).
134    minimum: 32000
135    maximum: 16352000
136    multipleOf: 32000
137
138  rohm,vcc-input-current-limit-microamp:
139    description: system specific VCC/VACP input current limit (in microamps).
140    minimum: 32000
141    maximum: 16352000
142    multipleOf: 32000
143
144required:
145  - compatible
146
147additionalProperties: false
148
149examples:
150  - |
151    i2c {
152        #address-cells = <1>;
153        #size-cells = <0>;
154        charger@9 {
155            compatible = "rohm,bd99954";
156            monitored-battery = <&battery>;
157            reg = <0x9>;
158            interrupt-parent = <&gpio1>;
159            interrupts = <29 8>;
160            rohm,vsys-regulation-microvolt = <8960000>;
161            rohm,vbus-input-current-limit-microamp = <1472000>;
162            rohm,vcc-input-current-limit-microamp = <1472000>;
163        };
164    };
165