xref: /linux/Documentation/devicetree/bindings/mfd/rohm,bd72720-pmic.yaml (revision d70178215211a7c73ecabeb55eeb0f8ef002bcab)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/rohm,bd72720-pmic.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ROHM BD72720 Power Management Integrated Circuit
8
9maintainers:
10  - Matti Vaittinen <mazziesaccount@gmail.com>
11
12description:
13  BD72720 is a single-chip power management IC for battery-powered portable
14  devices. The BD72720 integrates 10 bucks and 11 LDOs, and a 3000 mA
15  switching charger. The IC also includes a Coulomb counter, a real-time
16  clock (RTC), GPIOs and a 32.768 kHz clock gate.
17
18# In addition to the properties found from the charger node, the ROHM BD72720
19# uses properties from a static battery node. Please see the:
20# Documentation/devicetree/bindings/power/supply/battery.yaml
21#
22# Following properties are used
23# when present:
24#
25# charge-full-design-microamp-hours: Battry capacity in mAh
26# voltage-max-design-microvolt:      Maximum voltage
27# voltage-min-design-microvolt:      Minimum voltage system is still operating.
28# degrade-cycle-microamp-hours:      Capacity lost due to aging at each full
29#                                    charge cycle.
30# ocv-capacity-celsius:              Array of OCV table temperatures. 1/table.
31# ocv-capacity-table-<N>:            Table of OCV voltage/SOC pairs. Corresponds
32#                                    N.th temperature in ocv-capacity-celsius
33#
34# volt-drop-thresh-microvolt: Threshold for starting the VDR correction
35# volt-drop-soc:                Table of capacity values matching the
36#                                    values in VDR tables.
37#
38# volt-drop-temperatures-millicelsius: Temperatures corresponding to the volage
39# drop values given in volt-drop-[0-9]-microvolt
40#
41# volt-drop-[0-9]-microvolt: VDR table for a temperature specified in
42# volt-drop-temperatures-millicelsius
43#
44# VDR tables are (usually) determined for a specific battery by ROHM.
45# The battery node would then be referred from the charger node:
46#
47# monitored-battery = <&battery>;
48
49properties:
50  compatible:
51    const: rohm,bd72720
52
53  reg:
54    description:
55      I2C slave address.
56    maxItems: 1
57
58  interrupts:
59    maxItems: 1
60
61  gpio-controller: true
62
63  "#gpio-cells":
64    const: 2
65    description:
66      The first cell is the pin number and the second cell is used to specify
67      flags. See the gpio binding document for more information.
68
69  clocks:
70    maxItems: 1
71
72  "#clock-cells":
73    const: 0
74
75  clock-output-names:
76    const: bd71828-32k-out
77
78  rohm,clkout-open-drain:
79    description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
80    $ref: /schemas/types.yaml#/definitions/uint32
81    maximum: 1
82
83  rohm,charger-sense-resistor-micro-ohms:
84    minimum: 10000
85    maximum: 50000
86    description:
87      BD72720 has a SAR ADC for measuring charging currents. External sense
88      resistor (RSENSE in data sheet) should be used. If some other but
89      30 mOhm resistor is used the resistance value should be given here in
90      micro Ohms.
91
92  regulators:
93    $ref: /schemas/regulator/rohm,bd72720-regulator.yaml
94    description:
95      List of child nodes that specify the regulators.
96
97  leds:
98    $ref: /schemas/leds/rohm,bd71828-leds.yaml
99
100  rohm,pin-fault_b:
101    $ref: /schemas/types.yaml#/definitions/string
102    description:
103      BD72720 has an OTP option to use fault_b-pin for different
104      purposes. Set this property accordingly. OTP options are
105      OTP0 - bi-directional FAULT_B or READY indicator depending on a
106      'sub option'
107      OTP1 - GPO
108      OTP2 - Power sequencer output.
109    enum:
110      - faultb
111      - readyind
112      - gpo
113      - pwrseq
114
115patternProperties:
116  "^rohm,pin-dvs[0-1]$":
117    $ref: /schemas/types.yaml#/definitions/string
118    description:
119      BD72720 has 4 different OTP options to determine the use of dvs<X>-pins.
120      OTP0 - regulator RUN state control.
121      OTP1 - GPI.
122      OTP2 - GPO.
123      OTP3 - Power sequencer output.
124      This property specifies the use of the pin.
125    enum:
126      - dvs-input
127      - gpi
128      - gpo
129      - pwrseq
130
131  "^rohm,pin-exten[0-1]$":
132    $ref: /schemas/types.yaml#/definitions/string
133    description: BD72720 has an OTP option to use exten0-pin for different
134      purposes. Set this property accordingly.
135      OTP0 - GPO
136      OTP1 - Power sequencer output.
137    enum:
138      - gpo
139      - pwrseq
140
141required:
142  - compatible
143  - reg
144  - interrupts
145  - clocks
146  - "#clock-cells"
147  - regulators
148  - gpio-controller
149  - "#gpio-cells"
150
151additionalProperties: false
152
153examples:
154  - |
155    #include <dt-bindings/interrupt-controller/irq.h>
156    #include <dt-bindings/leds/common.h>
157    i2c {
158        #address-cells = <1>;
159        #size-cells = <0>;
160        pmic: pmic@4b {
161            compatible = "rohm,bd72720";
162            reg = <0x4b>;
163
164            interrupt-parent = <&gpio1>;
165            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
166
167            clocks = <&osc 0>;
168            #clock-cells = <0>;
169            clock-output-names = "bd71828-32k-out";
170
171            gpio-controller;
172            #gpio-cells = <2>;
173
174            rohm,pin-dvs0 = "gpi";
175            rohm,pin-dvs1 = "gpi";
176            rohm,pin-exten0 = "gpo";
177            rohm,pin-exten1 = "gpo";
178            rohm,pin-fault_b = "faultb";
179
180            rohm,charger-sense-resistor-micro-ohms = <10000>;
181
182            regulators {
183                buck1 {
184                    regulator-name = "buck1";
185                    regulator-min-microvolt = <500000>;
186                    regulator-max-microvolt = <2000000>;
187                    regulator-ramp-delay = <2500>;
188                };
189                buck2 {
190                    regulator-name = "buck2";
191                    regulator-min-microvolt = <500000>;
192                    regulator-max-microvolt = <2000000>;
193                    regulator-ramp-delay = <2500>;
194                };
195                buck3 {
196                    regulator-name = "buck3";
197                    regulator-min-microvolt = <1200000>;
198                    regulator-max-microvolt = <2000000>;
199                };
200                buck4 {
201                    regulator-name = "buck4";
202                    regulator-min-microvolt = <1000000>;
203                    regulator-max-microvolt = <1800000>;
204                };
205                buck5 {
206                    regulator-name = "buck5";
207                    regulator-min-microvolt = <2500000>;
208                    regulator-max-microvolt = <3300000>;
209                };
210                buck6 {
211                    regulator-name = "buck6";
212                    regulator-min-microvolt = <500000>;
213                    regulator-max-microvolt = <2000000>;
214                    regulator-ramp-delay = <2500>;
215                };
216                buck7 {
217                    regulator-name = "buck7";
218                    regulator-min-microvolt = <500000>;
219                    regulator-max-microvolt = <2000000>;
220                    regulator-ramp-delay = <2500>;
221                };
222                buck8 {
223                    regulator-name = "buck8";
224                    regulator-min-microvolt = <500000>;
225                    regulator-max-microvolt = <1700000>;
226                    regulator-ramp-delay = <2500>;
227                    rohm,dvs-run-voltage = <1700000>;
228                    rohm,dvs-idle-voltage = <1>;
229                    rohm,dvs-suspend-voltage = <1>;
230                    rohm,dvs-lpsr-voltage = <0>;
231                    regulator-boot-on;
232                };
233                buck9 {
234                    regulator-name = "buck9";
235                    regulator-min-microvolt = <500000>;
236                    regulator-max-microvolt = <1700000>;
237                    regulator-ramp-delay = <2500>;
238                    rohm,dvs-run-voltage = <1700000>;
239                    rohm,dvs-idle-voltage = <1>;
240                    rohm,dvs-suspend-voltage = <1>;
241                    rohm,dvs-lpsr-voltage = <0>;
242                    regulator-boot-on;
243                };
244                buck10 {
245                    regulator-name = "buck10";
246                    regulator-min-microvolt = <500000>;
247                    regulator-max-microvolt = <1700000>;
248                    regulator-ramp-delay = <2500>;
249                    rohm,dvs-run-voltage = <1700000>;
250                    rohm,dvs-idle-voltage = <1>;
251                    rohm,dvs-suspend-voltage = <1>;
252                    rohm,dvs-lpsr-voltage = <0>;
253                    regulator-boot-on;
254                };
255                ldo1 {
256                    regulator-name = "ldo1";
257                    regulator-min-microvolt = <800000>;
258                    regulator-max-microvolt = <3300000>;
259                };
260                ldo2 {
261                    regulator-name = "ldo2";
262                    regulator-min-microvolt = <800000>;
263                    regulator-max-microvolt = <3300000>;
264                };
265                ldo3 {
266                    regulator-name = "ldo3";
267                    regulator-min-microvolt = <800000>;
268                    regulator-max-microvolt = <3300000>;
269                };
270                ldo4 {
271                    regulator-name = "ldo4";
272                    regulator-min-microvolt = <800000>;
273                    regulator-max-microvolt = <3300000>;
274                };
275                ldo5 {
276                    regulator-name = "ldo5";
277                    regulator-min-microvolt = <800000>;
278                    regulator-max-microvolt = <3300000>;
279                };
280                ldo6 {
281                    regulator-name = "ldo6";
282                    regulator-min-microvolt = <1800000>;
283                    regulator-max-microvolt = <1800000>;
284                };
285                ldo7 {
286                    regulator-name = "ldo7";
287                    regulator-min-microvolt = <800000>;
288                    regulator-max-microvolt = <3300000>;
289                };
290                ldo8 {
291                    regulator-name = "ldo8";
292                    regulator-min-microvolt = <750000>;
293                    regulator-max-microvolt = <3300000>;
294                    rohm,dvs-suspend-voltage = <0>;
295                    rohm,dvs-lpsr-voltage = <1>;
296                    rohm,dvs-run-voltage = <750000>;
297                };
298                ldo9 {
299                    regulator-name = "ldo9";
300                    regulator-min-microvolt = <750000>;
301                    regulator-max-microvolt = <3300000>;
302                    rohm,dvs-suspend-voltage = <0>;
303                    rohm,dvs-lpsr-voltage = <1>;
304                    rohm,dvs-run-voltage = <750000>;
305                };
306                ldo10 {
307                    regulator-name = "ldo10";
308                    regulator-min-microvolt = <750000>;
309                    regulator-max-microvolt = <3300000>;
310                    rohm,dvs-suspend-voltage = <0>;
311                    rohm,dvs-lpsr-voltage = <1>;
312                    rohm,dvs-run-voltage = <750000>;
313                };
314                ldo11 {
315                    regulator-name = "ldo11";
316                    regulator-min-microvolt = <750000>;
317                    regulator-max-microvolt = <3300000>;
318                    rohm,dvs-suspend-voltage = <0>;
319                    rohm,dvs-lpsr-voltage = <1>;
320                    rohm,dvs-run-voltage = <750000>;
321                };
322            };
323
324            leds {
325                compatible = "rohm,bd71828-leds";
326
327                led-1 {
328                    rohm,led-compatible = "bd71828-grnled";
329                    function = LED_FUNCTION_INDICATOR;
330                    color = <LED_COLOR_ID_GREEN>;
331                };
332                led-2 {
333                    rohm,led-compatible = "bd71828-ambled";
334                    function = LED_FUNCTION_CHARGING;
335                    color = <LED_COLOR_ID_AMBER>;
336                };
337            };
338        };
339    };
340