xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/ti,tps65910.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/ti,tps65910.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: TI TPS65910 Power Management Integrated Circuit
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Shree Ramamoorthy <s-ramamoorthy@ti.com>
11*833e5d42SEmmanuel Vadot
12*833e5d42SEmmanuel Vadotdescription:
13*833e5d42SEmmanuel Vadot  TPS65910 device is a Power Management IC that provides 3 step-down converters,
14*833e5d42SEmmanuel Vadot  1 stepup converter, and 8 LDOs. The device contains an embedded power controller (EPC),
15*833e5d42SEmmanuel Vadot  1 GPIO, and an RTC.
16*833e5d42SEmmanuel Vadot
17*833e5d42SEmmanuel Vadotproperties:
18*833e5d42SEmmanuel Vadot  compatible:
19*833e5d42SEmmanuel Vadot    enum:
20*833e5d42SEmmanuel Vadot      - ti,tps65910
21*833e5d42SEmmanuel Vadot      - ti,tps65911
22*833e5d42SEmmanuel Vadot
23*833e5d42SEmmanuel Vadot  reg:
24*833e5d42SEmmanuel Vadot    description: I2C slave address
25*833e5d42SEmmanuel Vadot    maxItems: 1
26*833e5d42SEmmanuel Vadot
27*833e5d42SEmmanuel Vadot  gpio-controller: true
28*833e5d42SEmmanuel Vadot
29*833e5d42SEmmanuel Vadot  '#gpio-cells':
30*833e5d42SEmmanuel Vadot    const: 2
31*833e5d42SEmmanuel Vadot    description: |
32*833e5d42SEmmanuel Vadot      The first cell is the GPIO number.
33*833e5d42SEmmanuel Vadot      The second cell is used to specify additional options <unused>.
34*833e5d42SEmmanuel Vadot
35*833e5d42SEmmanuel Vadot  interrupts:
36*833e5d42SEmmanuel Vadot    maxItems: 1
37*833e5d42SEmmanuel Vadot
38*833e5d42SEmmanuel Vadot  interrupt-controller: true
39*833e5d42SEmmanuel Vadot
40*833e5d42SEmmanuel Vadot  '#interrupt-cells':
41*833e5d42SEmmanuel Vadot    description: Specifies the IRQ number and flags
42*833e5d42SEmmanuel Vadot    const: 2
43*833e5d42SEmmanuel Vadot
44*833e5d42SEmmanuel Vadot  ti,vmbch-threshold:
45*833e5d42SEmmanuel Vadot    description: |
46*833e5d42SEmmanuel Vadot      (TPS65911) Main battery charged threshold comparator.
47*833e5d42SEmmanuel Vadot      See VMBCH_VSEL in TPS65910 datasheet.
48*833e5d42SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
49*833e5d42SEmmanuel Vadot    enum: [0, 1, 2, 3]
50*833e5d42SEmmanuel Vadot
51*833e5d42SEmmanuel Vadot  ti,vmbch2-threshold:
52*833e5d42SEmmanuel Vadot    description: |
53*833e5d42SEmmanuel Vadot      (TPS65911) Main battery discharged threshold comparator.
54*833e5d42SEmmanuel Vadot      See VMBCH_VSEL in TPS65910 datasheet.
55*833e5d42SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
56*833e5d42SEmmanuel Vadot    enum: [0, 1, 2, 3]
57*833e5d42SEmmanuel Vadot
58*833e5d42SEmmanuel Vadot  ti,en-ck32k-xtal:
59*833e5d42SEmmanuel Vadot    type: boolean
60*833e5d42SEmmanuel Vadot    description: Enable external 32-kHz crystal oscillator.
61*833e5d42SEmmanuel Vadot
62*833e5d42SEmmanuel Vadot  ti,en-gpio-sleep:
63*833e5d42SEmmanuel Vadot    description: |
64*833e5d42SEmmanuel Vadot      Enable sleep control for gpios.
65*833e5d42SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
66*833e5d42SEmmanuel Vadot    minItems: 9
67*833e5d42SEmmanuel Vadot    maxItems: 9
68*833e5d42SEmmanuel Vadot    items:
69*833e5d42SEmmanuel Vadot      minimum: 0
70*833e5d42SEmmanuel Vadot      maximum: 1
71*833e5d42SEmmanuel Vadot
72*833e5d42SEmmanuel Vadot  ti,system-power-controller:
73*833e5d42SEmmanuel Vadot    type: boolean
74*833e5d42SEmmanuel Vadot    description: Identify whether or not this pmic controls the system power
75*833e5d42SEmmanuel Vadot
76*833e5d42SEmmanuel Vadot  ti,sleep-enable:
77*833e5d42SEmmanuel Vadot    type: boolean
78*833e5d42SEmmanuel Vadot    description: Enable SLEEP state.
79*833e5d42SEmmanuel Vadot
80*833e5d42SEmmanuel Vadot  ti,sleep-keep-therm:
81*833e5d42SEmmanuel Vadot    type: boolean
82*833e5d42SEmmanuel Vadot    description: Keep thermal monitoring on in sleep state.
83*833e5d42SEmmanuel Vadot
84*833e5d42SEmmanuel Vadot  ti,sleep-keep-ck32k:
85*833e5d42SEmmanuel Vadot    type: boolean
86*833e5d42SEmmanuel Vadot    description: Keep the 32KHz clock output on in sleep state.
87*833e5d42SEmmanuel Vadot
88*833e5d42SEmmanuel Vadot  ti,sleep-keep-hsclk:
89*833e5d42SEmmanuel Vadot    type: boolean
90*833e5d42SEmmanuel Vadot    description: Keep high speed internal clock on in sleep state.
91*833e5d42SEmmanuel Vadot
92*833e5d42SEmmanuel Vadot  regulators:
93*833e5d42SEmmanuel Vadot    type: object
94*833e5d42SEmmanuel Vadot    additionalProperties: false
95*833e5d42SEmmanuel Vadot    description: List of regulators provided by this controller.
96*833e5d42SEmmanuel Vadot
97*833e5d42SEmmanuel Vadot    patternProperties:
98*833e5d42SEmmanuel Vadot      "^(vrtc|vio|vpll|vdac|vmmc|vbb|vddctrl)$":
99*833e5d42SEmmanuel Vadot        type: object
100*833e5d42SEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
101*833e5d42SEmmanuel Vadot        properties:
102*833e5d42SEmmanuel Vadot          ti,regulator-ext-sleep-control:
103*833e5d42SEmmanuel Vadot            description: |
104*833e5d42SEmmanuel Vadot              Enable external sleep control through external inputs:
105*833e5d42SEmmanuel Vadot              [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)].
106*833e5d42SEmmanuel Vadot              If this property is not defined, it defaults to 0 (not enabled).
107*833e5d42SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
108*833e5d42SEmmanuel Vadot            enum: [0, 1, 2, 4, 8]
109*833e5d42SEmmanuel Vadot        unevaluatedProperties: false
110*833e5d42SEmmanuel Vadot
111*833e5d42SEmmanuel Vadot      "^(vdd[1-3]|vaux([1-2]|33)|vdig[1-2])$":
112*833e5d42SEmmanuel Vadot        type: object
113*833e5d42SEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
114*833e5d42SEmmanuel Vadot        properties:
115*833e5d42SEmmanuel Vadot          ti,regulator-ext-sleep-control:
116*833e5d42SEmmanuel Vadot            description: |
117*833e5d42SEmmanuel Vadot              Enable external sleep control through external inputs:
118*833e5d42SEmmanuel Vadot              [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)].
119*833e5d42SEmmanuel Vadot              If this property is not defined, it defaults to 0 (not enabled).
120*833e5d42SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
121*833e5d42SEmmanuel Vadot            enum: [0, 1, 2, 4, 8]
122*833e5d42SEmmanuel Vadot        unevaluatedProperties: false
123*833e5d42SEmmanuel Vadot
124*833e5d42SEmmanuel Vadot      "^ldo[1-8]$":
125*833e5d42SEmmanuel Vadot        type: object
126*833e5d42SEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
127*833e5d42SEmmanuel Vadot        properties:
128*833e5d42SEmmanuel Vadot          ti,regulator-ext-sleep-control:
129*833e5d42SEmmanuel Vadot            description: |
130*833e5d42SEmmanuel Vadot              Enable external sleep control through external inputs:
131*833e5d42SEmmanuel Vadot              [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)].
132*833e5d42SEmmanuel Vadot              If this property is not defined, it defaults to 0 (not enabled).
133*833e5d42SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/uint32
134*833e5d42SEmmanuel Vadot            enum: [0, 1, 2, 4, 8]
135*833e5d42SEmmanuel Vadot        unevaluatedProperties: false
136*833e5d42SEmmanuel Vadot
137*833e5d42SEmmanuel VadotpatternProperties:
138*833e5d42SEmmanuel Vadot  "^(vcc(io|[1-7])-supply)$":
139*833e5d42SEmmanuel Vadot    description: |
140*833e5d42SEmmanuel Vadot      Input voltage supply phandle for regulators.
141*833e5d42SEmmanuel Vadot      These entries are required if PMIC regulators are enabled, or else it
142*833e5d42SEmmanuel Vadot      can cause the regulator registration to fail.
143*833e5d42SEmmanuel Vadot
144*833e5d42SEmmanuel Vadot      If some input supply is powered through battery or always-on supply, then
145*833e5d42SEmmanuel Vadot      it is also required to have these parameters with the proper node handle for always-on
146*833e5d42SEmmanuel Vadot      power supply.
147*833e5d42SEmmanuel Vadot      tps65910:
148*833e5d42SEmmanuel Vadot        vcc1-supply: VDD1 input.
149*833e5d42SEmmanuel Vadot        vcc2-supply: VDD2 input.
150*833e5d42SEmmanuel Vadot        vcc3-supply: VAUX33 and VMMC input.
151*833e5d42SEmmanuel Vadot        vcc4-supply: VAUX1 and VAUX2 input.
152*833e5d42SEmmanuel Vadot        vcc5-supply: VPLL and VDAC input.
153*833e5d42SEmmanuel Vadot        vcc6-supply: VDIG1 and VDIG2 input.
154*833e5d42SEmmanuel Vadot        vcc7-supply: VRTC and VBB input.
155*833e5d42SEmmanuel Vadot        vccio-supply: VIO input.
156*833e5d42SEmmanuel Vadot      tps65911:
157*833e5d42SEmmanuel Vadot        vcc1-supply: VDD1 input.
158*833e5d42SEmmanuel Vadot        vcc2-supply: VDD2 input.
159*833e5d42SEmmanuel Vadot        vcc3-supply: LDO6, LDO7 and LDO8 input.
160*833e5d42SEmmanuel Vadot        vcc4-supply: LDO5 input.
161*833e5d42SEmmanuel Vadot        vcc5-supply: LDO3 and LDO4 input.
162*833e5d42SEmmanuel Vadot        vcc6-supply: LDO1 and LDO2 input.
163*833e5d42SEmmanuel Vadot        vcc7-supply: VRTC input.
164*833e5d42SEmmanuel Vadot        vccio-supply: VIO input.
165*833e5d42SEmmanuel Vadot
166*833e5d42SEmmanuel Vadotrequired:
167*833e5d42SEmmanuel Vadot  - compatible
168*833e5d42SEmmanuel Vadot  - reg
169*833e5d42SEmmanuel Vadot  - interrupts
170*833e5d42SEmmanuel Vadot  - interrupt-controller
171*833e5d42SEmmanuel Vadot  - '#interrupt-cells'
172*833e5d42SEmmanuel Vadot  - gpio-controller
173*833e5d42SEmmanuel Vadot  - '#gpio-cells'
174*833e5d42SEmmanuel Vadot  - regulators
175*833e5d42SEmmanuel Vadot
176*833e5d42SEmmanuel VadotadditionalProperties: false
177*833e5d42SEmmanuel Vadot
178*833e5d42SEmmanuel VadotallOf:
179*833e5d42SEmmanuel Vadot  - if:
180*833e5d42SEmmanuel Vadot      properties:
181*833e5d42SEmmanuel Vadot        compatible:
182*833e5d42SEmmanuel Vadot          contains:
183*833e5d42SEmmanuel Vadot            enum:
184*833e5d42SEmmanuel Vadot              - ti,tps65910
185*833e5d42SEmmanuel Vadot    then:
186*833e5d42SEmmanuel Vadot      properties:
187*833e5d42SEmmanuel Vadot        regulators:
188*833e5d42SEmmanuel Vadot          patternProperties:
189*833e5d42SEmmanuel Vadot            "^(ldo[1-8]|vddctrl)$": false
190*833e5d42SEmmanuel Vadot  - if:
191*833e5d42SEmmanuel Vadot      properties:
192*833e5d42SEmmanuel Vadot        compatible:
193*833e5d42SEmmanuel Vadot          contains:
194*833e5d42SEmmanuel Vadot            enum:
195*833e5d42SEmmanuel Vadot              - ti,tps65911
196*833e5d42SEmmanuel Vadot    then:
197*833e5d42SEmmanuel Vadot      properties:
198*833e5d42SEmmanuel Vadot        regulators:
199*833e5d42SEmmanuel Vadot          patternProperties:
200*833e5d42SEmmanuel Vadot            "^(vdd3|vaux([1-2]|33)|vdig[1-2])$": false
201*833e5d42SEmmanuel Vadot            "^(vpll|vdac|vmmc|vbb)$": false
202*833e5d42SEmmanuel Vadot
203*833e5d42SEmmanuel Vadotexamples:
204*833e5d42SEmmanuel Vadot  - |
205*833e5d42SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
206*833e5d42SEmmanuel Vadot    i2c {
207*833e5d42SEmmanuel Vadot        #address-cells = <1>;
208*833e5d42SEmmanuel Vadot        #size-cells = <0>;
209*833e5d42SEmmanuel Vadot
210*833e5d42SEmmanuel Vadot        pmic: tps65910@2d {
211*833e5d42SEmmanuel Vadot            compatible = "ti,tps65910";
212*833e5d42SEmmanuel Vadot            reg = <0x2d>;
213*833e5d42SEmmanuel Vadot            interrupt-parent = <&intc>;
214*833e5d42SEmmanuel Vadot            interrupts = < 0 118 0x04 >;
215*833e5d42SEmmanuel Vadot
216*833e5d42SEmmanuel Vadot            #gpio-cells = <2>;
217*833e5d42SEmmanuel Vadot            gpio-controller;
218*833e5d42SEmmanuel Vadot
219*833e5d42SEmmanuel Vadot            #interrupt-cells = <2>;
220*833e5d42SEmmanuel Vadot            interrupt-controller;
221*833e5d42SEmmanuel Vadot
222*833e5d42SEmmanuel Vadot            ti,system-power-controller;
223*833e5d42SEmmanuel Vadot
224*833e5d42SEmmanuel Vadot            ti,vmbch-threshold = <0>;
225*833e5d42SEmmanuel Vadot            ti,vmbch2-threshold = <0>;
226*833e5d42SEmmanuel Vadot            ti,en-ck32k-xtal;
227*833e5d42SEmmanuel Vadot            ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
228*833e5d42SEmmanuel Vadot
229*833e5d42SEmmanuel Vadot            vcc1-supply = <&reg_parent>;
230*833e5d42SEmmanuel Vadot            vcc2-supply = <&some_reg>;
231*833e5d42SEmmanuel Vadot            vcc3-supply = <&vbat>;
232*833e5d42SEmmanuel Vadot            vcc4-supply = <&vbat>;
233*833e5d42SEmmanuel Vadot            vcc5-supply = <&vbat>;
234*833e5d42SEmmanuel Vadot            vcc6-supply = <&vbat>;
235*833e5d42SEmmanuel Vadot            vcc7-supply = <&vbat>;
236*833e5d42SEmmanuel Vadot            vccio-supply = <&vbat>;
237*833e5d42SEmmanuel Vadot
238*833e5d42SEmmanuel Vadot            regulators {
239*833e5d42SEmmanuel Vadot                vio_reg: vio {
240*833e5d42SEmmanuel Vadot                    regulator-name = "vio";
241*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1500000>;
242*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
243*833e5d42SEmmanuel Vadot                    regulator-always-on;
244*833e5d42SEmmanuel Vadot                    regulator-boot-on;
245*833e5d42SEmmanuel Vadot                };
246*833e5d42SEmmanuel Vadot                vdd1_reg: vdd1 {
247*833e5d42SEmmanuel Vadot                    regulator-name = "vdd1";
248*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = < 600000>;
249*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <1500000>;
250*833e5d42SEmmanuel Vadot                    regulator-always-on;
251*833e5d42SEmmanuel Vadot                    regulator-boot-on;
252*833e5d42SEmmanuel Vadot                    ti,regulator-ext-sleep-control = <0>;
253*833e5d42SEmmanuel Vadot                };
254*833e5d42SEmmanuel Vadot                vdd2_reg: vdd2 {
255*833e5d42SEmmanuel Vadot                    regulator-name = "vdd2";
256*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = < 600000>;
257*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <1500000>;
258*833e5d42SEmmanuel Vadot                    regulator-always-on;
259*833e5d42SEmmanuel Vadot                    regulator-boot-on;
260*833e5d42SEmmanuel Vadot                };
261*833e5d42SEmmanuel Vadot                vdd3_reg: vdd3 {
262*833e5d42SEmmanuel Vadot                    regulator-name = "vdd3";
263*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <5000000>;
264*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <5000000>;
265*833e5d42SEmmanuel Vadot                    regulator-always-on;
266*833e5d42SEmmanuel Vadot                };
267*833e5d42SEmmanuel Vadot                vdig1_reg: vdig1 {
268*833e5d42SEmmanuel Vadot                    regulator-name = "vdig1";
269*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
270*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <2700000>;
271*833e5d42SEmmanuel Vadot                    regulator-always-on;
272*833e5d42SEmmanuel Vadot                };
273*833e5d42SEmmanuel Vadot                vdig2_reg: vdig2 {
274*833e5d42SEmmanuel Vadot                    regulator-name = "vdig2";
275*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1000000>;
276*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
277*833e5d42SEmmanuel Vadot                    regulator-always-on;
278*833e5d42SEmmanuel Vadot                };
279*833e5d42SEmmanuel Vadot                vpll_reg: vpll {
280*833e5d42SEmmanuel Vadot                    regulator-name = "vpll";
281*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1000000>;
282*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <2500000>;
283*833e5d42SEmmanuel Vadot                    regulator-always-on;
284*833e5d42SEmmanuel Vadot                };
285*833e5d42SEmmanuel Vadot                vdac_reg: vdac {
286*833e5d42SEmmanuel Vadot                    regulator-name = "vdac";
287*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
288*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <2850000>;
289*833e5d42SEmmanuel Vadot                    regulator-always-on;
290*833e5d42SEmmanuel Vadot                };
291*833e5d42SEmmanuel Vadot                vaux1_reg: vaux1 {
292*833e5d42SEmmanuel Vadot                    regulator-name = "vaux1";
293*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
294*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <2850000>;
295*833e5d42SEmmanuel Vadot                    regulator-always-on;
296*833e5d42SEmmanuel Vadot                };
297*833e5d42SEmmanuel Vadot                vaux2_reg: vaux2 {
298*833e5d42SEmmanuel Vadot                    regulator-name = "vaux2";
299*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
300*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
301*833e5d42SEmmanuel Vadot                    regulator-always-on;
302*833e5d42SEmmanuel Vadot                };
303*833e5d42SEmmanuel Vadot                vaux33_reg: vaux33 {
304*833e5d42SEmmanuel Vadot                    regulator-name = "vaux33";
305*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
306*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
307*833e5d42SEmmanuel Vadot                    regulator-always-on;
308*833e5d42SEmmanuel Vadot                };
309*833e5d42SEmmanuel Vadot                vmmc_reg: vmmc {
310*833e5d42SEmmanuel Vadot                    regulator-name = "vmmc";
311*833e5d42SEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
312*833e5d42SEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
313*833e5d42SEmmanuel Vadot                    regulator-always-on;
314*833e5d42SEmmanuel Vadot                    regulator-boot-on;
315*833e5d42SEmmanuel Vadot                };
316*833e5d42SEmmanuel Vadot            };
317*833e5d42SEmmanuel Vadot        };
318*833e5d42SEmmanuel Vadot    };
319