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