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