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