blob: e4634c4c938706480b6f57250c16bf30ec81582f [file] [log] [blame]
Kiran Gunda0954f392017-10-16 16:24:55 +05301/*
2 * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#include <dt-bindings/interrupt-controller/arm-gic.h>
15
16&rpm_bus {
17 rpm-regulator-smpa1 {
18 status = "okay";
19 pm8953_s1: regulator-s1 {
20 regulator-min-microvolt = <870000>;
21 regulator-max-microvolt = <1156000>;
22 qcom,init-voltage = <1000000>;
23 status = "okay";
24 };
25 };
26
27 /* PM8953 S2 - VDD_CX supply */
28 rpm-regulator-smpa2 {
29 status = "okay";
30 pm8953_s2_level: regulator-s2-level {
31 compatible = "qcom,rpm-smd-regulator";
32 regulator-name = "pm8953_s2_level";
33 qcom,set = <3>;
34 regulator-min-microvolt =
35 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
36 regulator-max-microvolt =
37 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
38 qcom,use-voltage-level;
39 };
40
41 pm8953_s2_floor_level: regulator-s2-floor-level {
42 compatible = "qcom,rpm-smd-regulator";
43 regulator-name = "pm8953_s2_floor_level";
44 qcom,set = <3>;
45 regulator-min-microvolt =
46 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
47 regulator-max-microvolt =
48 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
49 qcom,use-voltage-floor-level;
50 qcom,always-send-voltage;
51 };
52
53 pm8953_s2_level_ao: regulator-s2-level-ao {
54 compatible = "qcom,rpm-smd-regulator";
55 regulator-name = "pm8953_s2_level_ao";
56 qcom,set = <1>;
57 regulator-min-microvolt =
58 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
59 regulator-max-microvolt =
60 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
61 qcom,use-voltage-level;
62 };
63 };
64
65 rpm-regulator-smpa3 {
66 status = "okay";
67 pm8953_s3: regulator-s3 {
68 regulator-min-microvolt = <1225000>;
69 regulator-max-microvolt = <1225000>;
70 qcom,init-voltage = <1225000>;
71 status = "okay";
72 };
73 };
74
75 rpm-regulator-smpa4 {
76 status = "okay";
77 pm8953_s4: regulator-s4 {
78 regulator-min-microvolt = <1900000>;
79 regulator-max-microvolt = <2050000>;
80 qcom,init-voltage = <1900000>;
81 status = "okay";
82 };
83 };
84
85 /* VDD_MX supply */
86 rpm-regulator-smpa7 {
87 status = "okay";
88 pm8953_s7_level: regulator-s7-level {
89 compatible = "qcom,rpm-smd-regulator";
90 regulator-name = "pm8953_s7_level";
91 qcom,set = <3>;
92 regulator-min-microvolt =
93 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
94 regulator-max-microvolt =
95 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
96 qcom,init-voltage-level =
97 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
98 qcom,use-voltage-level;
99 qcom,always-send-voltage;
100 };
101
102 pm8953_s7_level_ao: regulator-s7-level-ao {
103 compatible = "qcom,rpm-smd-regulator";
104 regulator-name = "pm8953_s7_level_ao";
105 qcom,set = <1>;
106 regulator-min-microvolt =
107 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
108 regulator-max-microvolt =
109 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
110 qcom,use-voltage-level;
111 qcom,always-send-voltage;
112 };
113
114 pm8953_s7_level_so: regulator-s7-level-so {
115 compatible = "qcom,rpm-smd-regulator";
116 regulator-name = "pm8953_s7_level_so";
117 qcom,set = <2>;
118 regulator-min-microvolt =
119 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
120 regulator-max-microvolt =
121 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
122 qcom,init-voltage-level =
123 <RPM_SMD_REGULATOR_LEVEL_RETENTION>;
124 qcom,use-voltage-level;
125 };
126 };
127
128 rpm-regulator-ldoa1 {
129 status = "okay";
130 pm8953_l1: regulator-l1 {
131 regulator-min-microvolt = <1000000>;
132 regulator-max-microvolt = <1100000>;
133 qcom,init-voltage = <1000000>;
134 status = "okay";
135 };
136 };
137
138 rpm-regulator-ldoa2 {
139 status = "okay";
140 pm8953_l2: regulator-l2 {
141 regulator-min-microvolt = <975000>;
142 regulator-max-microvolt = <1225000>;
143 qcom,init-voltage = <975000>;
144 status = "okay";
145 };
146 };
147
148 rpm-regulator-ldoa3 {
149 status = "okay";
150 pm8953_l3: regulator-l3 {
151 regulator-min-microvolt = <925000>;
152 regulator-max-microvolt = <925000>;
153 qcom,init-voltage = <925000>;
154 status = "okay";
155 };
156 };
157
158 rpm-regulator-ldoa5 {
159 status = "okay";
160 pm8953_l5: regulator-l5 {
161 regulator-min-microvolt = <1800000>;
162 regulator-max-microvolt = <1800000>;
163 qcom,init-voltage = <1800000>;
164 status = "okay";
165 };
166 };
167
168 rpm-regulator-ldoa6 {
169 status = "okay";
170 pm8953_l6: regulator-l6 {
171 regulator-min-microvolt = <1800000>;
172 regulator-max-microvolt = <1800000>;
173 qcom,init-voltage = <1800000>;
174 status = "okay";
175 };
176 };
177
178 rpm-regulator-ldoa7 {
179 status = "okay";
180 pm8953_l7: regulator-l7 {
181 regulator-min-microvolt = <1800000>;
182 regulator-max-microvolt = <1900000>;
183 qcom,init-voltage = <1800000>;
184 status = "okay";
185 };
186
187 pm8953_l7_ao: regulator-l7-ao {
188 compatible = "qcom,rpm-smd-regulator";
189 regulator-name = "pm8953_l7_ao";
190 qcom,set = <1>;
191 regulator-min-microvolt = <1800000>;
192 regulator-max-microvolt = <1900000>;
193 qcom,init-voltage = <1800000>;
194 };
195 };
196
197 rpm-regulator-ldoa8 {
198 status = "okay";
199 pm8953_l8: regulator-l8 {
200 regulator-min-microvolt = <2900000>;
201 regulator-max-microvolt = <2900000>;
202 qcom,init-voltage = <2900000>;
203 status = "okay";
204 };
205 };
206
207 rpm-regulator-ldoa9 {
208 status = "okay";
209 pm8953_l9: regulator-l9 {
210 regulator-min-microvolt = <3000000>;
211 regulator-max-microvolt = <3300000>;
212 qcom,init-voltage = <3000000>;
213 status = "okay";
214 };
215 };
216
217 rpm-regulator-ldoa10 {
218 status = "okay";
219 pm8953_l10: regulator-l10 {
220 regulator-min-microvolt = <2850000>;
221 regulator-max-microvolt = <2850000>;
222 qcom,init-voltage = <2850000>;
223 status = "okay";
224 };
225 };
226
227 rpm-regulator-ldoa11 {
228 status = "okay";
229 pm8953_l11: regulator-l11 {
230 regulator-min-microvolt = <2950000>;
231 regulator-max-microvolt = <2950000>;
232 qcom,init-voltage = <2950000>;
233 status = "okay";
234 };
235 };
236
237 rpm-regulator-ldoa12 {
238 status = "okay";
239 pm8953_l12: regulator-l12 {
240 regulator-min-microvolt = <1800000>;
241 regulator-max-microvolt = <2950000>;
242 qcom,init-voltage = <1800000>;
243 status = "okay";
244 };
245 };
246
247 rpm-regulator-ldoa13 {
248 status = "okay";
249 pm8953_l13: regulator-l13 {
250 regulator-min-microvolt = <3125000>;
251 regulator-max-microvolt = <3125000>;
252 qcom,init-voltage = <3125000>;
253 status = "okay";
254 };
255 };
256
257 rpm-regulator-ldoa16 {
258 status = "okay";
259 pm8953_l16: regulator-l16 {
260 regulator-min-microvolt = <1800000>;
261 regulator-max-microvolt = <1800000>;
262 qcom,init-voltage = <1800000>;
263 status = "okay";
264 };
265 };
266
267 rpm-regulator-ldoa17 {
268 status = "okay";
269 pm8953_l17: regulator-l17 {
270 regulator-min-microvolt = <2850000>;
271 regulator-max-microvolt = <2850000>;
272 qcom,init-voltage = <2850000>;
273 status = "okay";
274 };
275 };
276
277 rpm-regulator-ldoa19 {
278 status = "okay";
279 pm8953_l19: regulator-l19 {
280 regulator-min-microvolt = <1200000>;
281 regulator-max-microvolt = <1350000>;
282 qcom,init-voltage = <1200000>;
283 status = "okay";
284 };
285 };
286
287 rpm-regulator-ldoa22 {
288 status = "okay";
289 pm8953_l22: regulator-l22 {
290 regulator-min-microvolt = <2800000>;
291 regulator-max-microvolt = <2850000>;
292 qcom,init-voltage = <2800000>;
293 status = "okay";
294 };
295 };
296
297 rpm-regulator-ldoa23 {
298 status = "okay";
299 pm8953_l23: regulator-l23 {
300 regulator-min-microvolt = <975000>;
301 regulator-max-microvolt = <1225000>;
302 qcom,init-voltage = <975000>;
303 status = "okay";
304 };
305 };
306};
307
308&spmi_bus {
309 qcom,pm8953@1 {
310 /* PM8953 S5 + S6 = VDD_APC supply */
311 pm8953_s5: spm-regulator@2000 {
312 compatible = "qcom,spm-regulator";
313 reg = <0x2000 0x100>;
314 regulator-name = "pm8953_s5";
315 regulator-min-microvolt = <400000>;
316 regulator-max-microvolt = <1140000>;
317
318 pm8953_s5_limit: avs-limit-regulator {
319 regulator-name = "pm8953_s5_avs_limit";
320 regulator-min-microvolt = <400000>;
321 regulator-max-microvolt = <1140000>;
322 };
323 };
324 };
325};
326
327&soc {
328 apc_mem_acc_vreg: regulator@19461d4 {
329 compatible = "qcom,mem-acc-regulator";
330 reg = <0x019461d4 0x4>, <0x019461d8 0x4>;
331 reg-names = "acc-sel-l1", "acc-sel-l2";
332 regulator-name = "apc_mem_acc_corner";
333 regulator-min-microvolt = <1>;
334 regulator-max-microvolt = <2>;
335
336 qcom,corner-acc-map = <0x1 0x0>;
337 qcom,acc-sel-l1-bit-pos = <0>;
338 qcom,acc-sel-l1-bit-size = <1>;
339 qcom,acc-sel-l2-bit-pos = <0>;
340 qcom,acc-sel-l2-bit-size = <1>;
341 };
342
343 apc_cpr: cpr4-ctrl@b018000 {
344 compatible = "qcom,cpr4-msm8953-apss-regulator";
345 reg = <0xb018000 0x4000>, <0xa4000 0x1000>;
346 reg-names = "cpr_ctrl", "fuse_base";
347 interrupts = <GIC_SPI 15 IRQ_TYPE_EDGE_RISING>;
348 interrupt-names = "cpr";
349
350 qcom,cpr-ctrl-name = "apc";
351
352 qcom,cpr-sensor-time = <1000>;
353 qcom,cpr-loop-time = <5000000>;
354 qcom,cpr-idle-cycles = <15>;
355 qcom,cpr-step-quot-init-min = <12>;
356 qcom,cpr-step-quot-init-max = <14>;
357 qcom,cpr-count-mode = <0>; /* All-at-once */
358 qcom,cpr-count-repeat = <14>;
359 qcom,cpr-down-error-step-limit = <1>;
360 qcom,cpr-up-error-step-limit = <1>;
361
362 qcom,apm-ctrl = <&apc_apm>;
363 qcom,apm-threshold-voltage = <850000>;
364 qcom,apm-hysteresis-voltage = <5000>;
365
366 vdd-supply = <&pm8953_s5>;
367 qcom,voltage-step = <5000>;
368 vdd-limit-supply = <&pm8953_s5_limit>;
369 mem-acc-supply = <&apc_mem_acc_vreg>;
370
371 qcom,cpr-enable;
372 qcom,cpr-hw-closed-loop;
373
374 qcom,cpr-panic-reg-addr-list =
375 <0xb1d2c18 0xb1d2900 0x0b1112b0 0xb018798>;
376 qcom,cpr-panic-reg-name-list =
377 "CCI_SAW4_PMIC_STS", "CCI_SAW4_VCTL",
378 "APCS_ALIAS0_APM_CTLER_STATUS",
379 "APCS0_CPR_CORE_ADJ_MODE_REG";
380
381 qcom,cpr-temp-point-map = <250 650 850>;
382 qcom,cpr-initial-temp-band = <0>;
383
384 /* Turbo (corner 6) ceiling voltage */
385 qcom,cpr-aging-ref-voltage = <990000>;
386
387 thread@0 {
388 qcom,cpr-thread-id = <0>;
389 qcom,cpr-consecutive-up = <0>;
390 qcom,cpr-consecutive-down = <2>;
391 qcom,cpr-up-threshold = <2>;
392 qcom,cpr-down-threshold = <1>;
393
394 apc_vreg: regulator {
395 regulator-name = "apc_corner";
396 regulator-min-microvolt = <1>;
397 regulator-max-microvolt = <9>;
398
399 qcom,cpr-fuse-corners = <4>;
400 qcom,cpr-fuse-combos = <64>;
401 qcom,cpr-speed-bins = <8>;
402 qcom,cpr-speed-bin-corners =
403 <9 0 7 0 0 0 7 9>;
404 qcom,cpr-corners =
405 /* Speed bin 0 */
406 <9 9 9 9 9 9 9 9>,
407
408 /* Speed bin 1 */
409 <0 0 0 0 0 0 0 0>,
410
411 /* Speed bin 2 */
412 <7 7 7 7 7 7 7 7>,
413
414 /* Speed bin 3..5 */
415 <0 0 0 0 0 0 0 0>,
416 <0 0 0 0 0 0 0 0>,
417 <0 0 0 0 0 0 0 0>,
418
419 /* Speed bin 6 */
420 <7 7 7 7 7 7 7 7>,
421
422 /* Speed bin 7 */
423 <9 9 9 9 9 9 9 9>;
424
425 qcom,cpr-corner-fmax-map =
426 /* Speed bin 0 */
427 <1 2 4 9>,
428
429 /* Speed bin 1 */
430 <0 0 0 0>,
431
432 /* Speed bin 2 */
433 <1 2 4 7>,
434
435 /* Speed bin 3..5 */
436 <0 0 0 0>,
437 <0 0 0 0>,
438 <0 0 0 0>,
439
440 /* Speed bin 6 */
441 <1 2 4 7>,
442
443 /* Speed bin 7 */
444 <1 2 4 9>;
445
446 qcom,cpr-voltage-ceiling =
447 /* Speed bin 0 */
448 <715000 790000 860000 865000 920000
449 990000 1065000 1065000 1065000>,
450
451 /* Speed bin 2 */
452 <715000 790000 860000 865000 920000
453 990000 1065000>,
454
455 /* Speed bin 6 */
456 <715000 790000 860000 865000 920000
457 990000 1065000>,
458
459 /* Speed bin 7 */
460 <715000 790000 860000 865000 920000
461 990000 1065000 1065000 1065000>;
462
463 qcom,cpr-voltage-floor =
464 /* Speed bin 0 */
465 <500000 500000 500000 500000 500000
466 500000 500000 500000 500000>,
467
468 /* Speed bin 2 */
469 <500000 500000 500000 500000 500000
470 500000 500000>,
471
472 /* Speed bin 6 */
473 <500000 500000 500000 500000 500000
474 500000 500000>,
475
476 /* Speed bin 7 */
477 <500000 500000 500000 500000 500000
478 500000 500000 500000 500000>;
479
480 qcom,cpr-floor-to-ceiling-max-range =
481 /* Speed bin 0; CPR rev 0..7 */
482 < 0 0 0 0 0
483 0 0 0 0>,
484 <50000 50000 50000 50000 50000
485 50000 50000 50000 50000>,
486 <50000 50000 50000 50000 50000
487 50000 50000 50000 50000>,
488 <50000 50000 50000 50000 50000
489 50000 50000 50000 50000>,
490 <50000 50000 50000 50000 50000
491 50000 50000 50000 50000>,
492 <50000 50000 50000 50000 50000
493 50000 50000 50000 50000>,
494 <50000 50000 50000 50000 50000
495 50000 50000 50000 50000>,
496 <50000 50000 50000 50000 50000
497 50000 50000 50000 50000>,
498
499 /* Speed bin 2; CPR rev 0..7 */
500 < 0 0 0 0 0
501 0 0>,
502 <50000 50000 50000 50000 50000
503 50000 50000>,
504 <50000 50000 50000 50000 50000
505 50000 50000>,
506 <50000 50000 50000 50000 50000
507 50000 50000>,
508 <50000 50000 50000 50000 50000
509 50000 50000>,
510 <50000 50000 50000 50000 50000
511 50000 50000>,
512 <50000 50000 50000 50000 50000
513 50000 50000>,
514 <50000 50000 50000 50000 50000
515 50000 50000>,
516
517 /* Speed bin 6; CPR rev 0..7 */
518 < 0 0 0 0 0
519 0 0>,
520 <50000 50000 50000 50000 50000
521 50000 50000>,
522 <50000 50000 50000 50000 50000
523 50000 50000>,
524 <50000 50000 50000 50000 50000
525 50000 50000>,
526 <50000 50000 50000 50000 50000
527 50000 50000>,
528 <50000 50000 50000 50000 50000
529 50000 50000>,
530 <50000 50000 50000 50000 50000
531 50000 50000>,
532 <50000 50000 50000 50000 50000
533 50000 50000>,
534
535 /* Speed bin 7; CPR rev 0..7 */
536 < 0 0 0 0 0
537 0 0 0 0>,
538 <50000 50000 50000 50000 50000
539 50000 50000 50000 50000>,
540 <50000 50000 50000 50000 50000
541 50000 50000 50000 50000>,
542 <50000 50000 50000 50000 50000
543 50000 50000 50000 50000>,
544 <50000 50000 50000 50000 50000
545 50000 50000 50000 50000>,
546 <50000 50000 50000 50000 50000
547 50000 50000 50000 50000>,
548 <50000 50000 50000 50000 50000
549 50000 50000 50000 50000>,
550 <50000 50000 50000 50000 50000
551 50000 50000 50000 50000>;
552
553 qcom,cpr-misc-fuse-voltage-adjustment =
554 /* Speed bin 0; misc fuse 0..1 */
555 < 0 0 0 0 0
556 0 0 0 0>,
557 < 0 0 30000 0 0
558 0 0 0 0>,
559
560 /* Speed bin 2; misc fuse 0..1 */
561 < 0 0 0 0 0
562 0 0>,
563 < 0 0 30000 0 0
564 0 0>,
565
566 /* Speed bin 6; misc fuse 0..1 */
567 < 0 0 0 0 0
568 0 0>,
569 < 0 0 30000 0 0
570 0 0>,
571
572 /* Speed bin 7; misc fuse 0..1 */
573 < 0 0 0 0 0
574 0 0 0 0>,
575 < 0 0 30000 0 0
576 0 0 0 0>;
577
578 qcom,mem-acc-voltage =
579 /* Speed bin 0 */
580 <1 1 2 2 2 2 2 2 2>,
581
582 /* Speed bin 2 */
583 <1 1 2 2 2 2 2>,
584
585 /* Speed bin 6 */
586 <1 1 2 2 2 2 2>,
587
588 /* Speed bin 7 */
589 <1 1 2 2 2 2 2 2 2>;
590
591 qcom,corner-frequencies =
592 /* Speed bin 0 */
593 <652800000 1036800000 1401600000
594 1689600000 1804800000 1958400000
595 2016000000 2150400000 2208000000>,
596
597 /* Speed bin 2 */
598 <652800000 1036800000 1401600000
599 1689600000 1804800000 1958400000
600 2016000000>,
601
602 /* Speed bin 6 */
603 <652800000 1036800000 1401600000
604 1689600000 1804800000 1958400000
605 2016000000>,
606
607 /* Speed bin 7 */
608 <652800000 1036800000 1401600000
609 1689600000 1804800000 1958400000
610 2016000000 2150400000 2208000000>;
611
612 qcom,cpr-open-loop-voltage-fuse-adjustment =
613 /* Speed bin 0; CPR rev 0..7 */
614 < 0 0 0 0>,
615 < 25000 0 5000 40000>,
616 < 25000 0 5000 40000>,
617 < 25000 0 5000 40000>,
618 < 0 0 0 0>,
619 < 0 0 0 0>,
620 < 0 0 0 0>,
621 < 0 0 0 0>,
622
623 /* Speed bin 1; CPR rev 0..7 */
624 < 0 0 0 0>,
625 < 0 0 0 0>,
626 < 0 0 0 0>,
627 < 0 0 0 0>,
628 < 0 0 0 0>,
629 < 0 0 0 0>,
630 < 0 0 0 0>,
631 < 0 0 0 0>,
632
633 /* Speed bin 2; CPR rev 0..7 */
634 < 0 0 0 0>,
635 < 25000 0 5000 40000>,
636 < 25000 0 5000 40000>,
637 < 25000 0 5000 40000>,
638 < 0 0 0 0>,
639 < 0 0 0 0>,
640 < 0 0 0 0>,
641 < 0 0 0 0>,
642
643 /* Speed bin 3; CPR rev 0..7 */
644 < 0 0 0 0>,
645 < 0 0 0 0>,
646 < 0 0 0 0>,
647 < 0 0 0 0>,
648 < 0 0 0 0>,
649 < 0 0 0 0>,
650 < 0 0 0 0>,
651 < 0 0 0 0>,
652
653 /* Speed bin 4; CPR rev 0..7 */
654 < 0 0 0 0>,
655 < 0 0 0 0>,
656 < 0 0 0 0>,
657 < 0 0 0 0>,
658 < 0 0 0 0>,
659 < 0 0 0 0>,
660 < 0 0 0 0>,
661 < 0 0 0 0>,
662
663 /* Speed bin 5; CPR rev 0..7 */
664 < 0 0 0 0>,
665 < 0 0 0 0>,
666 < 0 0 0 0>,
667 < 0 0 0 0>,
668 < 0 0 0 0>,
669 < 0 0 0 0>,
670 < 0 0 0 0>,
671 < 0 0 0 0>,
672
673 /* Speed bin 6; CPR rev 0..7 */
674 < 0 0 0 0>,
675 < 25000 0 5000 40000>,
676 < 25000 0 5000 40000>,
677 < 25000 0 5000 40000>,
678 < 0 0 0 0>,
679 < 0 0 0 0>,
680 < 0 0 0 0>,
681 < 0 0 0 0>,
682
683 /* Speed bin 7; CPR rev 0..7 */
684 < 0 0 0 0>,
685 < 25000 0 5000 40000>,
686 < 25000 0 5000 40000>,
687 < 25000 0 5000 40000>,
688 < 0 0 0 0>,
689 < 0 0 0 0>,
690 < 0 0 0 0>,
691 < 0 0 0 0>;
692
693 qcom,cpr-closed-loop-voltage-fuse-adjustment =
694 /* Speed bin 0; CPR rev 0..7 */
695 < 0 0 0 0>,
696 < 10000 (-15000) 0 25000>,
697 < 10000 (-15000) 0 25000>,
698 <(-5000) (-30000) (-15000) 10000>,
699 < 0 0 0 0>,
700 < 0 0 0 0>,
701 < 0 0 0 0>,
702 < 0 0 0 0>,
703
704 /* Speed bin 1; CPR rev 0..7 */
705 < 0 0 0 0>,
706 < 0 0 0 0>,
707 < 0 0 0 0>,
708 < 0 0 0 0>,
709 < 0 0 0 0>,
710 < 0 0 0 0>,
711 < 0 0 0 0>,
712 < 0 0 0 0>,
713
714 /* Speed bin 2; CPR rev 0..7 */
715 < 0 0 0 0>,
716 < 10000 (-15000) 0 25000>,
717 < 10000 (-15000) 0 25000>,
718 <(-5000) (-30000) (-15000) 10000>,
719 < 0 0 0 0>,
720 < 0 0 0 0>,
721 < 0 0 0 0>,
722 < 0 0 0 0>,
723
724 /* Speed bin 3; CPR rev 0..7 */
725 < 0 0 0 0>,
726 < 0 0 0 0>,
727 < 0 0 0 0>,
728 < 0 0 0 0>,
729 < 0 0 0 0>,
730 < 0 0 0 0>,
731 < 0 0 0 0>,
732 < 0 0 0 0>,
733
734 /* Speed bin 4; CPR rev 0..7 */
735 < 0 0 0 0>,
736 < 0 0 0 0>,
737 < 0 0 0 0>,
738 < 0 0 0 0>,
739 < 0 0 0 0>,
740 < 0 0 0 0>,
741 < 0 0 0 0>,
742 < 0 0 0 0>,
743
744 /* Speed bin 5; CPR rev 0..7 */
745 < 0 0 0 0>,
746 < 0 0 0 0>,
747 < 0 0 0 0>,
748 < 0 0 0 0>,
749 < 0 0 0 0>,
750 < 0 0 0 0>,
751 < 0 0 0 0>,
752 < 0 0 0 0>,
753
754 /* Speed bin 6; CPR rev 0..7 */
755 < 0 0 0 0>,
756 < 10000 (-15000) 0 25000>,
757 < 10000 (-15000) 0 25000>,
758 <(-5000) (-30000) (-15000) 10000>,
759 < 0 0 0 0>,
760 < 0 0 0 0>,
761 < 0 0 0 0>,
762 < 0 0 0 0>,
763
764 /* Speed bin 7; CPR rev 0..7 */
765 < 0 0 0 0>,
766 < 10000 (-15000) 0 25000>,
767 < 10000 (-15000) 0 25000>,
768 <(-5000) (-30000) (-15000) 10000>,
769 < 0 0 0 0>,
770 < 0 0 0 0>,
771 < 0 0 0 0>,
772 < 0 0 0 0>;
773
774 qcom,cpr-ro-scaling-factor =
775 <3610 3790 0 2200 2450 2310 2170 2210
776 2330 2210 2470 2340 780 2700 2450 2090>,
777 <3610 3790 0 2200 2450 2310 2170 2210
778 2330 2210 2470 2340 780 2700 2450 2090>,
779 <3610 3790 0 2200 2450 2310 2170 2210
780 2330 2210 2470 2340 780 2700 2450 2090>,
781 <3610 3790 0 2200 2450 2310 2170 2210
782 2330 2210 2470 2340 780 2700 2450 2090>;
783
784 qcom,allow-voltage-interpolation;
785 qcom,allow-quotient-interpolation;
786 qcom,cpr-scaled-open-loop-voltage-as-ceiling;
787
788 qcom,corner-allow-temp-adjustment =
789 /* Speed bin 0; CPR rev 0..7 */
790 <0 0 0 0 0 0 0 0 0>,
791 <0 0 0 0 0 0 0 0 0>,
792 <0 0 0 0 0 0 0 0 0>,
793 <1 1 1 1 0 0 0 0 0>,
794 <1 1 1 1 0 0 0 0 0>,
795 <1 1 1 1 0 0 0 0 0>,
796 <1 1 1 1 0 0 0 0 0>,
797 <1 1 1 1 0 0 0 0 0>,
798
799 /* Speed bin 2; CPR rev 0..7 */
800 <0 0 0 0 0 0 0>,
801 <0 0 0 0 0 0 0>,
802 <0 0 0 0 0 0 0>,
803 <1 1 1 1 0 0 0>,
804 <1 1 1 1 0 0 0>,
805 <1 1 1 1 0 0 0>,
806 <1 1 1 1 0 0 0>,
807 <1 1 1 1 0 0 0>,
808
809 /* Speed bin 6; CPR rev 0..7 */
810 <0 0 0 0 0 0 0>,
811 <0 0 0 0 0 0 0>,
812 <0 0 0 0 0 0 0>,
813 <1 1 1 1 0 0 0>,
814 <1 1 1 1 0 0 0>,
815 <1 1 1 1 0 0 0>,
816 <1 1 1 1 0 0 0>,
817 <1 1 1 1 0 0 0>,
818
819 /* Speed bin 7; CPR rev 0..7 */
820 <0 0 0 0 0 0 0 0 0>,
821 <0 0 0 0 0 0 0 0 0>,
822 <0 0 0 0 0 0 0 0 0>,
823 <1 1 1 1 0 0 0 0 0>,
824 <1 1 1 1 0 0 0 0 0>,
825 <1 1 1 1 0 0 0 0 0>,
826 <1 1 1 1 0 0 0 0 0>,
827 <1 1 1 1 0 0 0 0 0>;
828
829 qcom,cpr-corner1-temp-core-voltage-adjustment =
830 <(0) (-5000) (-15000) (-20000)>;
831
832 qcom,cpr-corner2-temp-core-voltage-adjustment =
833 <(0) (-5000) (-15000) (-15000)>;
834
835 qcom,cpr-corner3-temp-core-voltage-adjustment =
836 <(0) (-5000) (-15000) (0)>;
837
838 qcom,cpr-corner4-temp-core-voltage-adjustment =
839 <(0) (-5000) (-15000) (0)>;
840
841 qcom,cpr-aging-max-voltage-adjustment = <15000>;
842 qcom,cpr-aging-ref-corner = <6>; /* Turbo */
843 qcom,cpr-aging-ro-scaling-factor = <2800>;
844 qcom,allow-aging-voltage-adjustment =
845 /* Speed bin 0 */
846 <0 0 0 1 1 1 1 1>,
847
848 /* Speed bin 1 */
849 <0 0 0 0 0 0 0 0>,
850
851 /* Speed bin 2 */
852 <0 0 0 1 1 1 1 1>,
853
854 /* Speed bin 3..5 */
855 <0 0 0 0 0 0 0 0>,
856 <0 0 0 0 0 0 0 0>,
857 <0 0 0 0 0 0 0 0>,
858
859 /* Speed bin 6 */
860 <0 0 0 1 1 1 1 1>,
861
862 /* Speed bin 7 */
863 <0 0 0 1 1 1 1 1>;
864 };
865 };
866 };
867
868 gfx_mem_acc: regulator@194415c {
869 compatible = "qcom,mem-acc-regulator";
870 reg = <0x0194415c 0x4>;
871 reg-names = "acc-sel-l1";
872 regulator-name = "gfx_mem_acc_corner";
873 regulator-min-microvolt = <1>;
874 regulator-max-microvolt = <2>;
875
876 qcom,acc-sel-l1-bit-pos = <0>;
877 qcom,acc-sel-l1-bit-size = <1>;
878 qcom,corner-acc-map = <0x1 0x0>;
879 };
880
881 gfx_vreg_corner: ldo@185f000 {
882 compatible = "qcom,msm8953-gfx-ldo";
883 reg = <0x0185f000 0x30>, <0xa4000 0x1000>;
884 reg-names = "ldo_addr", "efuse_addr";
885
886 regulator-name = "msm_gfx_ldo";
887 regulator-min-microvolt = <1>;
888 regulator-max-microvolt = <7>;
889
890 qcom,ldo-voltage-ceiling = <620000 680000 750000>;
891 qcom,ldo-voltage-floor = <510000 510000 600000>;
892
893 qcom,num-corners = <7>;
894 qcom,num-ldo-corners = <3>;
895 qcom,ldo-enable-corner-map = <1 1 1 0 0 0 0>;
896 qcom,init-corner = <4>;
897
898 vdd-cx-supply = <&pm8953_s2_level>;
899 qcom,vdd-cx-corner-map = <RPM_SMD_REGULATOR_LEVEL_LOW_SVS>,
900 <RPM_SMD_REGULATOR_LEVEL_LOW_SVS>,
901 <RPM_SMD_REGULATOR_LEVEL_SVS>,
902 <RPM_SMD_REGULATOR_LEVEL_SVS_PLUS>,
903 <RPM_SMD_REGULATOR_LEVEL_NOM>,
904 <RPM_SMD_REGULATOR_LEVEL_NOM_PLUS>,
905 <RPM_SMD_REGULATOR_LEVEL_TURBO>;
906
907 mem-acc-supply = <&gfx_mem_acc>;
908 qcom,mem-acc-corner-map = <1 1 1 2 2 2 2>;
909 qcom,ldo-init-voltage-adjustment = <35000 25000 0>;
910 };
911
912 eldo2_8953: eldo2 {
913 compatible = "regulator-fixed";
914 regulator-name = "eldo2_8953";
915 startup-delay-us = <0>;
916 enable-active-high;
917 gpio = <&tlmm 50 0>;
918 regulator-always-on;
919 };
920
921 adv_vreg: adv_vreg {
922 compatible = "regulator-fixed";
923 regulator-name = "adv_vreg";
924 startup-delay-us = <400>;
925 enable-active-high;
926 gpio = <&pm8953_gpios 5 0>;
927 };
928};