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