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