Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Technologies, Inc. RPMh Regulators
8
9maintainers:
10 - Bjorn Andersson <bjorn.andersson@linaro.org>
11 - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
12
13description: |
14 rpmh-regulator devices support PMIC regulator management via the Voltage
15 Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.
16 The APPS processor communicates with these hardware blocks via a
17 Resource State Coordinator (RSC) using command packets. The VRM allows
18 changing three parameters for a given regulator, enable state, output
19 voltage, and operating mode. The XOB allows changing only a single
20 parameter for a given regulator, its enable state. Despite its name,
21 the XOB is capable of controlling the enable state of any PMIC peripheral.
22 It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators
23 which have a fixed voltage and mode.
24
25 =======================
26 Required Node Structure
27 =======================
28
29 RPMh regulators must be described in two levels of device nodes. The first
30 level describes the PMIC containing the regulators and must reside within an
31 RPMh device node. The second level describes each regulator within the PMIC
32 which is to be used on the board. Each of these regulators maps to a single
33 RPMh resource.
34
35 The names used for regulator nodes must match those supported by a given
36 PMIC. Supported regulator node names are
37 For PM6150, smps1 - smps5, ldo1 - ldo19
38 For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
39 For PM6350, smps1 - smps5, ldo1 - ldo22
40 For PM660, smps1 - smps6, ldo1 - ldo3, ldo5 - ldo19
41 For PM660L, smps1 - smps3, smps5, ldo1 - ldo8, bob
42 For PM7325, smps1 - smps8, ldo1 - ldo19
43 For PM8005, smps1 - smps4
44 For PM8009, smps1 - smps2, ldo1 - ldo7
45 For PM8150, smps1 - smps10, ldo1 - ldo18
46 For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
47 For PM8350, smps1 - smps12, ldo1 - ldo10
48 For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
49 For PM8450, smps1 - smps6, ldo1 - ldo4
50 For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2
51 For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
52 For PMI8998, bob
53 For PMR735A, smps1 - smps3, ldo1 - ldo7
54 For PMX55, smps1 - smps7, ldo1 - ldo16
55 For PMX65, smps1 - smps8, ldo1 - ldo21
56
57properties:
58 compatible:
59 enum:
60 - qcom,pm6150-rpmh-regulators
61 - qcom,pm6150l-rpmh-regulators
62 - qcom,pm6350-rpmh-regulators
63 - qcom,pm660-rpmh-regulators
64 - qcom,pm660l-rpmh-regulators
65 - qcom,pm7325-rpmh-regulators
66 - qcom,pm8005-rpmh-regulators
67 - qcom,pm8009-rpmh-regulators
68 - qcom,pm8009-1-rpmh-regulators
69 - qcom,pm8150-rpmh-regulators
70 - qcom,pm8150l-rpmh-regulators
71 - qcom,pm8350-rpmh-regulators
72 - qcom,pm8350c-rpmh-regulators
73 - qcom,pm8450-rpmh-regulators
74 - qcom,pm8550-rpmh-regulators
75 - qcom,pm8550ve-rpmh-regulators
76 - qcom,pm8550vs-rpmh-regulators
77 - qcom,pm8998-rpmh-regulators
78 - qcom,pmc8180-rpmh-regulators
79 - qcom,pmc8180c-rpmh-regulators
80 - qcom,pmg1110-rpmh-regulators
81 - qcom,pmi8998-rpmh-regulators
82 - qcom,pmm8155au-rpmh-regulators
83 - qcom,pmm8654au-rpmh-regulators
84 - qcom,pmr735a-rpmh-regulators
85 - qcom,pmx55-rpmh-regulators
86 - qcom,pmx65-rpmh-regulators
87
88 qcom,pmic-id:
89 description: |
90 RPMh resource name suffix used for the regulators found
91 on this PMIC.
92 $ref: /schemas/types.yaml#/definitions/string
93 enum: [a, b, c, d, e, f, g, h, k]
94
95 qcom,always-wait-for-ack:
96 description: |
97 Boolean flag which indicates that the application processor
98 must wait for an ACK or a NACK from RPMh for every request
99 sent for this regulator including those which are for a
100 strictly lower power state.
101 $ref: /schemas/types.yaml#/definitions/flag
102
103 vdd-flash-supply:
104 description: Input supply phandle of flash.
105
106 vdd-rgb-supply:
107 description: Input supply phandle of rgb.
108
109 bob:
110 type: object
111 $ref: regulator.yaml#
112 description: BOB regulator node.
113 dependencies:
114 regulator-allow-set-load: [ regulator-allowed-modes ]
115
116patternProperties:
117 "^(smps|ldo|lvs|bob)[0-9]+$":
118 type: object
119 $ref: regulator.yaml#
120 description: smps/ldo regulator nodes(s).
121 dependencies:
122 regulator-allow-set-load: [ regulator-allowed-modes ]
123
124required:
125 - compatible
126 - qcom,pmic-id
127
128allOf:
129 - if:
130 properties:
131 compatible:
132 enum:
133 - qcom,pm6150-rpmh-regulators
134 then:
135 properties:
136 vdd-l2-l3-supply: true
137 vdd-l4-l7-l8-supply: true
138 vdd-l5-l16-l17-l18-l19-supply: true
139 vdd-l10-l14-l15-supply: true
140 vdd-l11-l12-l13-supply: true
141 patternProperties:
142 "^vdd-l[169]-supply$": true
143 "^vdd-s[1-5]-supply$": true
144
145 - if:
146 properties:
147 compatible:
148 enum:
149 - qcom,pm6150l-rpmh-regulators
150 - qcom,pm8150l-rpmh-regulators
151 - qcom,pmc8180c-rpmh-regulators
152 then:
153 properties:
154 vdd-bob-supply:
155 description: BOB regulator parent supply phandle.
156 vdd-l1-l8-supply: true
157 vdd-l2-l3-supply: true
158 vdd-l4-l5-l6-supply: true
159 vdd-l7-l11-supply: true
160 vdd-l9-l10-supply: true
161 patternProperties:
162 "^vdd-s[1-8]-supply$": true
163
164 - if:
165 properties:
166 compatible:
167 enum:
168 - qcom,pm660-rpmh-regulators
169 then:
170 properties:
171 vdd-l1-l6-l7-supply: true
172 vdd-l2-l3-supply: true
173 vdd-l5-supply: true
174 vdd-l8-l9-l10-l11-l12-l13-l14-supply: true
175 vdd-l15-l16-l17-l18-l19-supply: true
176 patternProperties:
177 "^vdd-s[1-6]-supply$": true
178
179 - if:
180 properties:
181 compatible:
182 enum:
183 - qcom,pm660l-rpmh-regulators
184 then:
185 properties:
186 vdd-bob-supply:
187 description: BOB regulator parent supply phandle.
188 vdd-l1-l9-l10-supply: true
189 vdd-l2-supply: true
190 vdd-l3-l5-l7-l8-supply: true
191 vdd-l4-l6-supply: true
192 vdd-s3-s4-supply: true
193 patternProperties:
194 "^vdd-s[125]-supply$": true
195
196 - if:
197 properties:
198 compatible:
199 enum:
200 - qcom,pm7325-rpmh-regulators
201 then:
202 properties:
203 vdd-l1-l4-l12-l15-supply: true
204 vdd-l2-l7-supply: true
205 vdd-l6-l9-l10-supply: true
206 vdd-l11-l17-l18-l19-supply: true
207 vdd-l13-supply: true
208 vdd-l14-l16-supply: true
209 patternProperties:
210 "^vdd-l[358]-supply$": true
211 "^vdd-s[1-8]-supply$": true
212
213 - if:
214 properties:
215 compatible:
216 enum:
217 - qcom,pm8005-rpmh-regulators
218 then:
219 patternProperties:
220 "^vdd-s[1-4]-supply$": true
221
222 - if:
223 properties:
224 compatible:
225 enum:
226 - qcom,pm8009-rpmh-regulators
227 - qcom,pm8009-1-rpmh-regulators
228 then:
229 properties:
230 vdd-l5-l6-supply: true
231 patternProperties:
232 "^vdd-l[1-47]-supply$": true
233 "^vdd-s[1-2]-supply$": true
234
235 - if:
236 properties:
237 compatible:
238 enum:
239 - qcom,pm8150-rpmh-regulators
240 - qcom,pmc8180-rpmh-regulators
241 - qcom,pmm8155au-rpmh-regulators
242 then:
243 properties:
244 vdd-l1-l8-l11-supply: true
245 vdd-l2-l10-supply: true
246 vdd-l3-l4-l5-l18-supply: true
247 vdd-l6-l9-supply: true
248 vdd-l7-l12-l14-l15-supply: true
249 vdd-l13-l16-l17-supply: true
250 patternProperties:
251 "^vdd-s([1-9]|10)-supply$": true
252
253 - if:
254 properties:
255 compatible:
256 enum:
257 - qcom,pmm8654au-rpmh-regulators
258 then:
259 properties:
260 vdd-l1-supply: true
261 vdd-l2-l3-supply: true
262 vdd-l4-supply: true
263 vdd-l5-supply: true
264 vdd-l6-l7-supply: true
265 vdd-l8-l9-supply: true
266 patternProperties:
267 "^vdd-s[1-9]-supply$": true
268
269 - if:
270 properties:
271 compatible:
272 enum:
273 - qcom,pm8350-rpmh-regulators
274 then:
275 properties:
276 vdd-l1-l4-supply: true
277 vdd-l2-l7-supply: true
278 vdd-l3-l5-supply: true
279 vdd-l6-l9-l10-supply: true
280 vdd-l8-supply: true
281 patternProperties:
282 "^vdd-s([1-9]|1[0-2])-supply$": true
283
284 - if:
285 properties:
286 compatible:
287 enum:
288 - qcom,pm8350c-rpmh-regulators
289 then:
290 properties:
291 vdd-bob-supply:
292 description: BOB regulator parent supply phandle.
293 vdd-l1-l12-supply: true
294 vdd-l2-l8-supply: true
295 vdd-l3-l4-l5-l7-l13-supply: true
296 vdd-l6-l9-l11-supply: true
297 vdd-l10-supply: true
298 patternProperties:
299 "^vdd-s([1-9]|10)-supply$": true
300
301 - if:
302 properties:
303 compatible:
304 enum:
305 - qcom,pm8450-rpmh-regulators
306 then:
307 patternProperties:
308 "^vdd-l[1-4]-supply$": true
309 "^vdd-s[1-6]-supply$": true
310
311 - if:
312 properties:
313 compatible:
314 enum:
315 - qcom,pm8550-rpmh-regulators
316 then:
317 properties:
318 vdd-l1-l4-l10-supply: true
319 vdd-l2-l13-l14-supply: true
320 vdd-l5-l16-supply: true
321 vdd-l6-l7-supply: true
322 vdd-l8-l9-supply: true
323 patternProperties:
324 "^vdd-l(3|1[1-7])-supply$": true
325 "^vdd-s[1-6]-supply$": true
326 "^vdd-bob[1-2]-supply$": true
327
328 - if:
329 properties:
330 compatible:
331 enum:
332 - qcom,pm8550ve-rpmh-regulators
333 - qcom,pm8550vs-rpmh-regulators
334 then:
335 patternProperties:
336 "^vdd-l[1-3]-supply$": true
337 "^vdd-s[1-6]-supply$": true
338
339 - if:
340 properties:
341 compatible:
342 enum:
343 - qcom,pm8998-rpmh-regulators
344 then:
345 properties:
346 vdd-l1-l27-supply: true
347 vdd-l2-l8-l17-supply: true
348 vdd-l3-l11-supply: true
349 vdd-l4-l5-supply: true
350 vdd-l6-supply: true
351 vdd-l7-l12-l14-l15-supply: true
352 vdd-l9-supply: true
353 vdd-l10-l23-l25-supply: true
354 vdd-l13-l19-l21-supply: true
355 vdd-l16-l28-supply: true
356 vdd-l18-l22-supply: true
357 vdd-l20-l24-supply: true
358 vdd-l26-supply: true
359 vin-lvs-1-2-supply: true
360 patternProperties:
361 "^vdd-s([1-9]|1[0-3])-supply$": true
362
363 - if:
364 properties:
365 compatible:
366 enum:
367 - qcom,pmg1110-rpmh-regulators
368 then:
369 properties:
370 vdd-s1-supply: true
371
372 - if:
373 properties:
374 compatible:
375 enum:
376 - qcom,pmi8998-rpmh-regulators
377 then:
378 properties:
379 vdd-bob-supply:
380 description: BOB regulator parent supply phandle.
381
382 - if:
383 properties:
384 compatible:
385 enum:
386 - qcom,pmr735a-rpmh-regulators
387 then:
388 properties:
389 vdd-l1-l2-supply: true
390 vdd-l3-supply: true
391 vdd-l4-supply: true
392 vdd-l5-l6-supply: true
393 vdd-l7-bob-supply: true
394 patternProperties:
395 "^vdd-s[1-3]-supply$": true
396
397 - if:
398 properties:
399 compatible:
400 enum:
401 - qcom,pmx55-rpmh-regulators
402 then:
403 properties:
404 vdd-l1-l2-supply: true
405 vdd-l3-l9-supply: true
406 vdd-l4-l12-supply: true
407 vdd-l5-l6-supply: true
408 vdd-l7-l8-supply: true
409 vdd-l10-l11-l13-supply: true
410 patternProperties:
411 "^vdd-l1[4-6]-supply$": true
412 "^vdd-s[1-7]-supply$": true
413
414 - if:
415 properties:
416 compatible:
417 enum:
418 - qcom,pmx65-rpmh-regulators
419 then:
420 properties:
421 vdd-l2-l18-supply: true
422 vdd-l5-l6-l16-supply: true
423 vdd-l8-l9-supply: true
424 vdd-l11-l13-supply: true
425 patternProperties:
426 "^vdd-l[1347]-supply$": true
427 "^vdd-l1[0245789]-supply$": true
428 "^vdd-l2[01]-supply$": true
429 "^vdd-s[1-8]-supply$": true
430
431unevaluatedProperties: false
432
433examples:
434 - |
435 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
436
437 pm8998-rpmh-regulators {
438 compatible = "qcom,pm8998-rpmh-regulators";
439 qcom,pmic-id = "a";
440
441 vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
442
443 smps2 {
444 regulator-min-microvolt = <1100000>;
445 regulator-max-microvolt = <1100000>;
446 };
447
448 ldo7 {
449 regulator-min-microvolt = <1800000>;
450 regulator-max-microvolt = <1800000>;
451 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
452 regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
453 RPMH_REGULATOR_MODE_HPM>;
454 regulator-allow-set-load;
455 };
456
457 lvs1 {
458 regulator-min-microvolt = <1800000>;
459 regulator-max-microvolt = <1800000>;
460 };
461 };
462
463 pmi8998-rpmh-regulators {
464 compatible = "qcom,pmi8998-rpmh-regulators";
465 qcom,pmic-id = "b";
466
467 bob {
468 regulator-min-microvolt = <3312000>;
469 regulator-max-microvolt = <3600000>;
470 regulator-allowed-modes = <RPMH_REGULATOR_MODE_AUTO
471 RPMH_REGULATOR_MODE_HPM>;
472 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
473 };
474 };
475...