Skip to content

Commit 006aa8f

Browse files
shramamoorthylag-linaro
authored andcommitted
mfd: dt-bindings: Convert TPS65910 to DT schema
Convert the TI TPS65910 documentation to DT schema format. Fix incorrect I2C address in example: should be 0x2d. TPS65910 datasheet: https://www.ti.com/lit/gpn/tps65910 Signed-off-by: Shree Ramamoorthy <[email protected]> Reviewed-by: "Rob Herring (Arm)" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]>
1 parent 73e52f8 commit 006aa8f

File tree

2 files changed

+318
-205
lines changed

2 files changed

+318
-205
lines changed
Lines changed: 318 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,318 @@
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+
7+
title: TI TPS65910 Power Management Integrated Circuit
8+
9+
maintainers:
10+
- Shree Ramamoorthy <[email protected]>
11+
12+
description:
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+
17+
properties:
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+
137+
patternProperties:
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+
166+
required:
167+
- compatible
168+
- reg
169+
- interrupts
170+
- interrupt-controller
171+
- '#interrupt-cells'
172+
- gpio-controller
173+
- '#gpio-cells'
174+
- regulators
175+
176+
additionalProperties: false
177+
178+
allOf:
179+
- if:
180+
properties:
181+
compatible:
182+
contains:
183+
enum:
184+
- ti,tps65910
185+
then:
186+
properties:
187+
regulators:
188+
patternProperties:
189+
"^(ldo[1-8]|vddctrl)$": false
190+
- if:
191+
properties:
192+
compatible:
193+
contains:
194+
enum:
195+
- ti,tps65911
196+
then:
197+
properties:
198+
regulators:
199+
patternProperties:
200+
"^(vdd3|vaux([1-2]|33)|vdig[1-2])$": false
201+
"^(vpll|vdac|vmmc|vbb)$": false
202+
203+
examples:
204+
- |
205+
#include <dt-bindings/interrupt-controller/arm-gic.h>
206+
i2c {
207+
#address-cells = <1>;
208+
#size-cells = <0>;
209+
210+
pmic: tps65910@2d {
211+
compatible = "ti,tps65910";
212+
reg = <0x2d>;
213+
interrupt-parent = <&intc>;
214+
interrupts = < 0 118 0x04 >;
215+
216+
#gpio-cells = <2>;
217+
gpio-controller;
218+
219+
#interrupt-cells = <2>;
220+
interrupt-controller;
221+
222+
ti,system-power-controller;
223+
224+
ti,vmbch-threshold = <0>;
225+
ti,vmbch2-threshold = <0>;
226+
ti,en-ck32k-xtal;
227+
ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
228+
229+
vcc1-supply = <&reg_parent>;
230+
vcc2-supply = <&some_reg>;
231+
vcc3-supply = <&vbat>;
232+
vcc4-supply = <&vbat>;
233+
vcc5-supply = <&vbat>;
234+
vcc6-supply = <&vbat>;
235+
vcc7-supply = <&vbat>;
236+
vccio-supply = <&vbat>;
237+
238+
regulators {
239+
vio_reg: vio {
240+
regulator-name = "vio";
241+
regulator-min-microvolt = <1500000>;
242+
regulator-max-microvolt = <3300000>;
243+
regulator-always-on;
244+
regulator-boot-on;
245+
};
246+
vdd1_reg: vdd1 {
247+
regulator-name = "vdd1";
248+
regulator-min-microvolt = < 600000>;
249+
regulator-max-microvolt = <1500000>;
250+
regulator-always-on;
251+
regulator-boot-on;
252+
ti,regulator-ext-sleep-control = <0>;
253+
};
254+
vdd2_reg: vdd2 {
255+
regulator-name = "vdd2";
256+
regulator-min-microvolt = < 600000>;
257+
regulator-max-microvolt = <1500000>;
258+
regulator-always-on;
259+
regulator-boot-on;
260+
};
261+
vdd3_reg: vdd3 {
262+
regulator-name = "vdd3";
263+
regulator-min-microvolt = <5000000>;
264+
regulator-max-microvolt = <5000000>;
265+
regulator-always-on;
266+
};
267+
vdig1_reg: vdig1 {
268+
regulator-name = "vdig1";
269+
regulator-min-microvolt = <1200000>;
270+
regulator-max-microvolt = <2700000>;
271+
regulator-always-on;
272+
};
273+
vdig2_reg: vdig2 {
274+
regulator-name = "vdig2";
275+
regulator-min-microvolt = <1000000>;
276+
regulator-max-microvolt = <1800000>;
277+
regulator-always-on;
278+
};
279+
vpll_reg: vpll {
280+
regulator-name = "vpll";
281+
regulator-min-microvolt = <1000000>;
282+
regulator-max-microvolt = <2500000>;
283+
regulator-always-on;
284+
};
285+
vdac_reg: vdac {
286+
regulator-name = "vdac";
287+
regulator-min-microvolt = <1800000>;
288+
regulator-max-microvolt = <2850000>;
289+
regulator-always-on;
290+
};
291+
vaux1_reg: vaux1 {
292+
regulator-name = "vaux1";
293+
regulator-min-microvolt = <1800000>;
294+
regulator-max-microvolt = <2850000>;
295+
regulator-always-on;
296+
};
297+
vaux2_reg: vaux2 {
298+
regulator-name = "vaux2";
299+
regulator-min-microvolt = <1800000>;
300+
regulator-max-microvolt = <3300000>;
301+
regulator-always-on;
302+
};
303+
vaux33_reg: vaux33 {
304+
regulator-name = "vaux33";
305+
regulator-min-microvolt = <1800000>;
306+
regulator-max-microvolt = <3300000>;
307+
regulator-always-on;
308+
};
309+
vmmc_reg: vmmc {
310+
regulator-name = "vmmc";
311+
regulator-min-microvolt = <1800000>;
312+
regulator-max-microvolt = <3300000>;
313+
regulator-always-on;
314+
regulator-boot-on;
315+
};
316+
};
317+
};
318+
};

0 commit comments

Comments
 (0)