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,bd71815-pmic.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ROHM BD71815 Power Management Integrated Circuit
8
9maintainers:
10  - Matti Vaittinen <mazziesaccount@gmail.com>
11
12description: |
13  BD71815AGW is a single-chip power management ICs for battery-powered
14  portable devices. It integrates 5 buck converters, 8 LDOs, a boost driver
15  for LED and a 500 mA single-cell linear charger. Also included is a Coulomb
16  counter, a real-time clock (RTC), and a 32.768 kHz clock gate and two GPOs.
17
18properties:
19  compatible:
20    const: rohm,bd71815
21
22  reg:
23    description:
24      I2C slave address.
25    maxItems: 1
26
27  interrupts:
28    maxItems: 1
29
30  gpio-controller: true
31
32  "#gpio-cells":
33    const: 2
34    description: |
35      The first cell is the pin number and the second cell is used to specify
36      flags. See ../gpio/gpio.txt for more information.
37
38  clocks:
39    maxItems: 1
40
41  "#clock-cells":
42    const: 0
43
44  clock-output-names:
45    const: bd71815-32k-out
46
47  rohm,clkout-open-drain:
48    description: clk32kout mode. Set to 1 for "open-drain" or 0 for "cmos".
49    $ref: "/schemas/types.yaml#/definitions/uint32"
50    minimum: 0
51    maximum: 1
52
53  rohm,charger-sense-resistor-ohms:
54    minimum: 10000000
55    maximum: 50000000
56    description: |
57      BD71827 and BD71828 have SAR ADC for measuring charging currents.
58      External sense resistor (RSENSE in data sheet) should be used. If
59      something other but 30MOhm resistor is used the resistance value
60      should be given here in Ohms.
61    default: 30000000
62
63  regulators:
64    $ref: ../regulator/rohm,bd71815-regulator.yaml
65    description:
66      List of child nodes that specify the regulators.
67
68  gpio-reserved-ranges:
69    description: |
70      Usage of BD71828 GPIO pins can be changed via OTP. This property can be
71      used to mark the pins which should not be configured for GPIO. Please see
72      the ../gpio/gpio.txt for more information.
73
74  rohm,enable-hidden-gpo:
75    description: |
76      The BD71815 has undocumented GPO at pin E5. Pin is marked as GND at the
77      data-sheet as its location in the middle of GND pins makes it hard to
78      use on PCB. If your board has managed to use this pin you can enable the
79      second GPO by defining this property. Dont enable this if you are unsure
80      about how the E5 pin is connected on your board.
81    type: boolean
82
83required:
84  - compatible
85  - reg
86  - interrupts
87  - clocks
88  - "#clock-cells"
89  - regulators
90  - gpio-controller
91  - "#gpio-cells"
92
93additionalProperties: false
94
95examples:
96  - |
97    #include <dt-bindings/interrupt-controller/irq.h>
98    #include <dt-bindings/leds/common.h>
99    i2c {
100        #address-cells = <1>;
101        #size-cells = <0>;
102        pmic: pmic@4b {
103            compatible = "rohm,bd71815";
104            reg = <0x4b>;
105
106            interrupt-parent = <&gpio1>;
107            interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
108
109            clocks = <&osc 0>;
110            #clock-cells = <0>;
111            clock-output-names = "bd71815-32k-out";
112
113            gpio-controller;
114            #gpio-cells = <2>;
115
116            rohm,charger-sense-resistor-ohms = <10000000>;
117
118            regulators {
119                buck1: buck1 {
120                    regulator-name = "buck1";
121                    regulator-min-microvolt = <800000>;
122                    regulator-max-microvolt = <2000000>;
123                    regulator-always-on;
124                    regulator-ramp-delay = <1250>;
125                    rohm,dvs-run-voltage = <1150000>;
126                    rohm,dvs-suspend-voltage = <950000>;
127                };
128                buck2: buck2 {
129                    regulator-name = "buck2";
130                    regulator-min-microvolt = <800000>;
131                    regulator-max-microvolt = <2000000>;
132                    regulator-always-on;
133                    regulator-ramp-delay = <1250>;
134                    rohm,dvs-run-voltage = <1150000>;
135                    rohm,dvs-suspend-voltage = <950000>;
136                };
137                buck3: buck3 {
138                    regulator-name = "buck3";
139                    regulator-min-microvolt = <1200000>;
140                    regulator-max-microvolt = <2700000>;
141                    regulator-always-on;
142                };
143                buck4: buck4 {
144                    regulator-name = "buck4";
145                    regulator-min-microvolt = <1100000>;
146                    regulator-max-microvolt = <1850000>;
147                    regulator-always-on;
148                };
149                buck5: buck5 {
150                    regulator-name = "buck5";
151                    regulator-min-microvolt = <1800000>;
152                    regulator-max-microvolt = <3300000>;
153                    regulator-always-on;
154                };
155                ldo1: ldo1 {
156                    regulator-name = "ldo1";
157                    regulator-min-microvolt = <800000>;
158                    regulator-max-microvolt = <3300000>;
159                    regulator-always-on;
160                };
161                ldo2: ldo2 {
162                    regulator-name = "ldo2";
163                    regulator-min-microvolt = <800000>;
164                    regulator-max-microvolt = <3300000>;
165                    regulator-always-on;
166                };
167                ldo3: ldo3 {
168                    regulator-name = "ldo3";
169                    regulator-min-microvolt = <800000>;
170                    regulator-max-microvolt = <3300000>;
171                    regulator-always-on;
172                };
173                ldo4: ldo4 {
174                    regulator-name = "ldo4";
175                    regulator-min-microvolt = <800000>;
176                    regulator-max-microvolt = <3300000>;
177                    regulator-always-on;
178                };
179                ldo5: ldo5 {
180                    regulator-name = "ldo5";
181                    regulator-min-microvolt = <800000>;
182                    regulator-max-microvolt = <3300000>;
183                    regulator-always-on;
184                };
185                ldo6: ldodvref {
186                    regulator-name = "ldodvref";
187                    regulator-always-on;
188                };
189                ldo7: ldolpsr {
190                    regulator-name = "ldolpsr";
191                    regulator-always-on;
192                };
193
194                boost: wled {
195                    regulator-name = "wled";
196                    regulator-min-microamp = <10>;
197                    regulator-max-microamp = <25000>;
198                };
199            };
200        };
201    };
202