1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3 * Copyright (c) 2021, AngeloGioacchino Del Regno
4 * <angelogioacchino.delregno@somainline.org>
5 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
6 */
7
8 #include "msm8996.dtsi"
9 #include "pm8994.dtsi"
10 #include "pmi8994.dtsi"
11 #include "pmi8996.dtsi"
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
15 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
16
17 /delete-node/ &adsp_mem;
18 /delete-node/ &slpi_mem;
19 /delete-node/ &venus_mem;
20 /delete-node/ &gpu_mem;
21
22 / {
23 qcom,msm-id = <246 0x30001>; /* MSM8996 V3.1 (Final) */
24 qcom,board-id = <8 0>;
25
26 chosen {
27 /*
28 * Due to an unknown-for-a-few-years regression,
29 * SDHCI only works on MSM8996 in PIO (lame) mode.
30 */
31 bootargs = "sdhci.debug_quirks=0x40 sdhci.debug_quirks2=0x4 maxcpus=2";
32 };
33
34 reserved-memory {
35 ramoops@a7f00000 {
36 compatible = "ramoops";
37 reg = <0 0xa7f00000 0 0x100000>;
38 record-size = <0x20000>;
39 console-size = <0x40000>;
40 ftrace-size = <0x20000>;
41 pmsg-size = <0x20000>;
42 ecc-size = <16>;
43 };
44
45 adsp_mem: adsp@8ea00000 {
46 reg = <0x0 0x8ea00000 0x0 0x1a00000>;
47 no-map;
48 };
49
50 gpu_mem: gpu@90400000 {
51 compatible = "shared-dma-pool";
52 reg = <0x0 0x90400000 0x0 0x2000>;
53 no-map;
54 };
55
56 slpi_mem: memory@90500000 {
57 reg = <0 0x90500000 0 0xa00000>;
58 no-map;
59 };
60
61 venus_mem: memory@90f00000 {
62 reg = <0 0x90f00000 0 0x500000>;
63 no-map;
64 };
65 };
66
67 panel_tvdd: tvdd-regulator {
68 compatible = "regulator-fixed";
69 regulator-name = "panel_tvdd";
70 gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
71 pinctrl-0 = <&tp_vddio_en>;
72 pinctrl-names = "default";
73 };
74
75 usb3_id: usb3-id {
76 compatible = "linux,extcon-usb-gpio";
77 id-gpio = <&tlmm 25 GPIO_ACTIVE_LOW>;
78 pinctrl-names = "default";
79 pinctrl-0 = <&usb_detect>;
80 };
81
82 vph_pwr: vph-pwr-regulator {
83 compatible = "regulator-fixed";
84 regulator-min-microvolt = <3700000>;
85 regulator-max-microvolt = <3700000>;
86 regulator-name = "vph_pwr";
87 regulator-always-on;
88 regulator-boot-on;
89 };
90
91 wlan_en: wlan-en-1-8v {
92 compatible = "regulator-fixed";
93 regulator-name = "wlan-en-regulator";
94 regulator-min-microvolt = <1800000>;
95 regulator-max-microvolt = <1800000>;
96 gpio = <&tlmm 84 GPIO_ACTIVE_HIGH>;
97 pinctrl-names = "default";
98 pinctrl-0 = <&wl_reg_on>;
99
100 /* WLAN card specific delay */
101 startup-delay-us = <70000>;
102 enable-active-high;
103 };
104 };
105
106 &blsp1_i2c3 {
107 status = "okay";
108 clock-frequency = <355000>;
109
110 tof_sensor: vl53l0x@29 {
111 compatible = "st,vl53l0x";
112 reg = <0x29>;
113 };
114 };
115
116 &blsp1_uart2 {
117 status = "okay";
118 };
119
120 &blsp2_i2c5 {
121 status = "okay";
122 clock-frequency = <355000>;
123
124 /* FUSB301 USB-C controller */
125 };
126
127 &blsp2_i2c6 {
128 status = "okay";
129 clock-frequency = <355000>;
130
131 synaptics@2c {
132 compatible = "syna,rmi4-i2c";
133 reg = <0x2c>;
134 interrupt-parent = <&tlmm>;
135 interrupts = <125 IRQ_TYPE_EDGE_FALLING>;
136 vdd-supply = <&panel_tvdd>;
137
138 syna,reset-delay-ms = <220>;
139 syna,startup-delay-ms = <220>;
140 #address-cells = <1>;
141 #size-cells = <0>;
142
143 rmi4-f01@1 {
144 reg = <0x1>;
145 syna,nosleep-mode = <1>;
146 };
147
148 rmi4-f11@11 {
149 reg = <0x11>;
150 syna,sensor-type = <1>;
151 };
152 };
153 };
154
155 &blsp2_uart2 {
156 status = "okay";
157 };
158
159 &camera0_mclk {
160 drive-strength = <2>;
161 output-low;
162 };
163
164 &camera0_pwdn {
165 drive-strength = <2>;
166 output-low;
167 };
168
169 &camera0_rst {
170 pins = "gpio30";
171 drive-strength = <2>;
172 output-low;
173 };
174
175 &camera2_mclk {
176 drive-strength = <2>;
177 output-low;
178 };
179
180 &camera2_rst {
181 drive-strength = <2>;
182 output-low;
183 };
184
185 &hsusb_phy1 {
186 status = "okay";
187
188 vdd-supply = <&pm8994_l28>;
189 vdda-pll-supply = <&pm8994_l12>;
190 vdda-phy-dpdm-supply = <&pm8994_l24>;
191 };
192
193 &mmcc {
194 vdd-gfx-supply = <&vdd_gfx>;
195 };
196
197 &pcie0 {
198 status = "okay";
199 perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>;
200 wake-gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
201 vddpe-3v3-supply = <&wlan_en>;
202 vdda-supply = <&pm8994_l28>;
203 };
204
205 &pcie_phy {
206 status = "okay";
207
208 vdda-phy-supply = <&pm8994_l28>;
209 vdda-pll-supply = <&pm8994_l12>;
210 };
211
212 &pm8994_gpios {
213 pinctrl-names = "default";
214 pinctrl-0 = <&pm8994_gpios_defaults>;
215 gpio-line-names =
216 "NC",
217 "VOL_DOWN_N",
218 "VOL_UP_N",
219 "SNAPSHOT_N",
220 "FOCUS_N",
221 "NC",
222 "NFC_VEN",
223 "NC",
224 "NC",
225 "NC",
226 "NC",
227 "NC",
228 "EAR_EN",
229 "NC",
230 "PM_DIVCLK1",
231 "PMI_CLK",
232 "NC",
233 "WL_SLEEP_CLK",
234 "NC",
235 "PMIC_SPON",
236 "UIM_BATT_ALARM",
237 "PMK_SLEEP_CLK";
238
239 /*
240 * We don't yet know for sure which GPIOs are of our interest, but what
241 * we do know is that if a vendor sets the pins to a non-default state, there's
242 * probably a reason for it, and just to be on the safe side, we follow suit.
243 */
244 pm8994_gpios_defaults: pm8994-gpios-default-state {
245 pm8994-gpio1-nc-pins {
246 pins = "gpio1";
247 function = PMIC_GPIO_FUNC_NORMAL;
248 drive-push-pull;
249 bias-high-impedance;
250 };
251
252 vol-down-n-pins {
253 pins = "gpio2";
254 function = PMIC_GPIO_FUNC_NORMAL;
255 drive-push-pull;
256 input-enable;
257 bias-pull-up;
258 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
259 power-source = <PM8994_GPIO_S4>;
260 };
261
262 vol-up-n-pins {
263 pins = "gpio3";
264 function = PMIC_GPIO_FUNC_NORMAL;
265 drive-push-pull;
266 input-enable;
267 bias-pull-up;
268 power-source = <PM8994_GPIO_S4>;
269 };
270
271 camera-snapshot-n-pins {
272 pins = "gpio4";
273 function = PMIC_GPIO_FUNC_NORMAL;
274 drive-push-pull;
275 input-enable;
276 bias-pull-up;
277 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
278 power-source = <PM8994_GPIO_S4>;
279 };
280
281 camera-focus-n-pins {
282 pins = "gpio5";
283 function = PMIC_GPIO_FUNC_NORMAL;
284 drive-push-pull;
285 input-enable;
286 bias-pull-up;
287 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
288 power-source = <PM8994_GPIO_S4>;
289 };
290
291 pm8994-gpio6-nc-pins {
292 pins = "gpio6";
293 function = PMIC_GPIO_FUNC_NORMAL;
294 drive-push-pull;
295 bias-high-impedance;
296 power-source = <PM8994_GPIO_VPH>;
297 };
298
299 nfc-download-pins {
300 pins = "gpio7";
301 function = PMIC_GPIO_FUNC_NORMAL;
302 output-low;
303 drive-push-pull;
304 bias-disable;
305 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
306 power-source = <PM8994_GPIO_S4>;
307 };
308
309 pm8994-gpio8-nc-pins {
310 pins = "gpio8";
311 function = PMIC_GPIO_FUNC_NORMAL;
312 output-low;
313 drive-push-pull;
314 bias-high-impedance;
315 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
316 power-source = <PM8994_GPIO_VPH>;
317 };
318
319 pm8994-gpio9-nc-pins {
320 pins = "gpio9";
321 function = PMIC_GPIO_FUNC_NORMAL;
322 output-high;
323 drive-push-pull;
324 bias-high-impedance;
325 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
326 power-source = <PM8994_GPIO_VPH>;
327 };
328
329 nfc-clock-pins {
330 pins = "gpio10";
331 function = PMIC_GPIO_FUNC_NORMAL;
332 input-enable;
333 drive-push-pull;
334 bias-pull-down;
335 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
336 power-source = <PM8994_GPIO_S4>;
337 };
338
339 pm8994-gpio11-nc-pins {
340 pins = "gpio11";
341 function = PMIC_GPIO_FUNC_NORMAL;
342 drive-push-pull;
343 bias-high-impedance;
344 power-source = <PM8994_GPIO_VPH>;
345 };
346
347 pm8994-gpio12-nc-pins {
348 pins = "gpio12";
349 function = PMIC_GPIO_FUNC_NORMAL;
350 drive-push-pull;
351 bias-high-impedance;
352 power-source = <PM8994_GPIO_VPH>;
353 };
354
355 ear-enable-pins {
356 pins = "gpio13";
357 function = PMIC_GPIO_FUNC_NORMAL;
358 output-high;
359 drive-push-pull;
360 bias-disable;
361 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
362 power-source = <PM8994_GPIO_S4>;
363 };
364
365 pm8994-gpio14-nc-pins {
366 pins = "gpio14";
367 function = PMIC_GPIO_FUNC_NORMAL;
368 drive-push-pull;
369 input-enable;
370 bias-high-impedance;
371 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
372 power-source = <PM8994_GPIO_VPH>;
373 };
374
375 pm-divclk1-gpio-pins {
376 pins = "gpio15";
377 function = "func1";
378 output-high;
379 drive-push-pull;
380 bias-high-impedance;
381 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
382 power-source = <PM8994_GPIO_VPH>;
383 };
384
385 pmi-clk-gpio-pins {
386 pins = "gpio16";
387 function = PMIC_GPIO_FUNC_NORMAL;
388 drive-push-pull;
389 };
390
391 pm8994-gpio17-nc-pins {
392 pins = "gpio17";
393 function = PMIC_GPIO_FUNC_NORMAL;
394 drive-push-pull;
395 bias-high-impedance;
396 power-source = <PM8994_GPIO_VPH>;
397 };
398
399 rome-sleep-pins {
400 pins = "gpio18";
401 function = PMIC_GPIO_FUNC_FUNC2;
402 output-low;
403 drive-push-pull;
404 bias-disable;
405 qcom,drive-strength = <PMIC_GPIO_STRENGTH_MED>;
406 power-source = <PM8994_GPIO_S4>;
407 };
408
409 pm8994-gpio19-nc-pins {
410 pins = "gpio19";
411 function = PMIC_GPIO_FUNC_NORMAL;
412 output-low;
413 drive-push-pull;
414 bias-high-impedance;
415 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
416 power-source = <PM8994_GPIO_VPH>;
417 };
418
419 pm8994-gpio22-nc-pins {
420 pins = "gpio22";
421 function = PMIC_GPIO_FUNC_NORMAL;
422 drive-push-pull;
423 bias-high-impedance;
424 power-source = <PM8994_GPIO_VPH>;
425 };
426 };
427 };
428
429 &pm8994_mpps {
430 pinctrl-names = "default";
431 pinctrl-0 = <&pm8994_mpps_defaults>;
432
433 gpio-line-names =
434 "SDC_UIM_VBIAS",
435 "LCD_ID_ADC",
436 "VREF_DACX",
437 "NC",
438 "FLASH_THERM",
439 "NC",
440 "NC",
441 "RF_ID";
442
443 pm8994_mpps_defaults: pm8994-mpps-default-state {
444 lcd-id_adc-mpp-pins {
445 pins = "mpp2";
446 function = "analog";
447 input-enable;
448 qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH6>;
449 };
450
451 pm-mpp4-nc-pins {
452 pins = "mpp4";
453 function = "digital";
454 bias-high-impedance;
455 power-source = <PM8994_GPIO_VPH>;
456 };
457
458 flash-therm-mpp-pins {
459 pins = "mpp5";
460 function = "analog";
461 input-enable;
462 qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH5>;
463 };
464
465 mpp6-nc-pins {
466 pins = "mpp6";
467 function = "digital";
468 bias-high-impedance;
469 };
470
471 rf-id-mpp-pins {
472 pins = "mpp8";
473 function = "analog";
474 input-enable;
475 qcom,amux-route = <PMIC_MPP_AMUX_ROUTE_CH8>;
476 };
477 };
478 };
479
480 &pm8994_resin {
481 status = "okay";
482 linux,code = <KEY_VOLUMEUP>;
483 };
484
485 &pmi8994_gpios {
486 pinctrl-names = "default";
487 pinctrl-0 = <&pmi8994_gpios_defaults>;
488
489 gpio-line-names =
490 "VIB_LDO_EN",
491 "NC",
492 "NC",
493 "NC",
494 "NC",
495 "NC",
496 "NC",
497 "NC",
498 "USB_SWITCH_SEL",
499 "NC";
500
501 pmi8994_gpios_defaults: pmi8994-gpios-default-state {
502 vib-ldo-en-gpio-pins {
503 pins = "gpio1";
504 function = PMIC_GPIO_FUNC_NORMAL;
505 drive-push-pull;
506 output-low;
507 bias-disable;
508 power-source = <PM8994_GPIO_S4>;
509 };
510
511 pmi-gpio2-nc-pins {
512 pins = "gpio2";
513 function = PMIC_GPIO_FUNC_NORMAL;
514 drive-push-pull;
515 input-enable;
516 bias-high-impedance;
517 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
518 power-source = <PM8994_GPIO_VPH>;
519 };
520
521 pmi-gpio3-nc-pins {
522 pins = "gpio3";
523 function = PMIC_GPIO_FUNC_NORMAL;
524 drive-push-pull;
525 input-enable;
526 bias-high-impedance;
527 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
528 power-source = <PM8994_GPIO_VPH>;
529 };
530
531 pmi-gpio4-nc-pins {
532 pins = "gpio4";
533 function = PMIC_GPIO_FUNC_NORMAL;
534 drive-push-pull;
535 output-high;
536 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
537 power-source = <PM8994_GPIO_S4>;
538 };
539
540 pmi-gpio5-nc-pins {
541 pins = "gpio5";
542 function = PMIC_GPIO_FUNC_NORMAL;
543 drive-push-pull;
544 output-high;
545 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
546 power-source = <PM8994_GPIO_S4>;
547 };
548
549 pmi-gpio6-nc-pins {
550 pins = "gpio6";
551 function = PMIC_GPIO_FUNC_NORMAL;
552 drive-push-pull;
553 output-high;
554 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
555 power-source = <PM8994_GPIO_S4>;
556 };
557
558 pmi-gpio7-nc-pins {
559 pins = "gpio7";
560 function = PMIC_GPIO_FUNC_NORMAL;
561 drive-push-pull;
562 output-high;
563 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
564 power-source = <PM8994_GPIO_S4>;
565 };
566
567 pmi-gpio8-nc-pins {
568 pins = "gpio8";
569 function = PMIC_GPIO_FUNC_NORMAL;
570 drive-push-pull;
571 output-high;
572 qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
573 power-source = <PM8994_GPIO_S4>;
574 };
575
576 usb-switch-sel-pins {
577 pins = "gpio9";
578 function = PMIC_GPIO_FUNC_NORMAL;
579 drive-push-pull;
580 };
581
582 pmi-gpio10-nc-pins {
583 pins = "gpio10";
584 function = PMIC_GPIO_FUNC_NORMAL;
585 output-low;
586 drive-push-pull;
587 bias-disable;
588 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
589 power-source = <PM8994_GPIO_S4>;
590 };
591 };
592 };
593
594 &pm8994_spmi_regulators {
595 qcom,saw-reg = <&saw3>;
596
597 pm8994_s9: s9 {
598 qcom,saw-slave;
599 };
600
601 pm8994_s10: s10 {
602 qcom,saw-slave;
603 };
604
605 pm8994_s11: s11 {
606 qcom,saw-leader;
607 regulator-name = "vdd_apcc";
608 regulator-always-on;
609 regulator-min-microvolt = <470000>;
610 regulator-max-microvolt = <1140000>;
611 };
612 };
613
614 &pmi8994_spmi_regulators {
615 vdd_gfx:
616 pmi8994_s2: s2 {
617 /* Pinned to a high value for now to avoid random crashes. */
618 regulator-min-microvolt = <1015000>;
619 regulator-max-microvolt = <1015000>;
620 regulator-name = "vdd_gfx";
621 regulator-always-on;
622 };
623 };
624
625 &pmi8994_wled {
626 status = "okay";
627 default-brightness = <512>;
628 qcom,num-strings = <3>;
629 };
630
631 &rpm_requests {
632 pm8994-regulators {
633 compatible = "qcom,rpm-pm8994-regulators";
634
635 vdd_s1-supply = <&vph_pwr>;
636 vdd_s2-supply = <&vph_pwr>;
637 vdd_s3-supply = <&vph_pwr>;
638 vdd_s4-supply = <&vph_pwr>;
639 vdd_s5-supply = <&vph_pwr>;
640 vdd_s6-supply = <&vph_pwr>;
641 vdd_s7-supply = <&vph_pwr>;
642 vdd_s8-supply = <&vph_pwr>;
643 vdd_s9-supply = <&vph_pwr>;
644 vdd_s10-supply = <&vph_pwr>;
645 vdd_s11-supply = <&vph_pwr>;
646 vdd_s12-supply = <&vph_pwr>;
647 vdd_l1-supply = <&pm8994_s3>;
648 vdd_l2_l26_l28-supply = <&pm8994_s3>;
649 vdd_l3_l11-supply = <&pm8994_s3>;
650 vdd_l4_l27_l31-supply = <&pm8994_s3>;
651 vdd_l5_l7-supply = <&pm8994_s5>;
652 vdd_l6_l12_l32-supply = <&pm8994_s5>;
653 vdd_l8_l16_l30-supply = <&vph_pwr>;
654 vdd_l14_l15-supply = <&pm8994_s5>;
655 vdd_l20_l21-supply = <&pm8994_s5>;
656 vdd_l25-supply = <&pm8994_s3>;
657 vdd_lvs1_2-supply = <&pm8994_s4>;
658
659 pm8994_s3: s3 {
660 regulator-min-microvolt = <1300000>;
661 regulator-max-microvolt = <1300000>;
662 };
663
664 pm8994_s4: s4 {
665 regulator-min-microvolt = <1800000>;
666 regulator-max-microvolt = <1800000>;
667 regulator-system-load = <325000>;
668 regulator-always-on;
669 };
670
671 pm8994_s5: s5 {
672 regulator-min-microvolt = <2150000>;
673 regulator-max-microvolt = <2150000>;
674 };
675
676 pm8994_s7: s7 {
677 regulator-min-microvolt = <800000>;
678 regulator-max-microvolt = <800000>;
679 };
680
681 pm8994_l1: l1 {
682 regulator-min-microvolt = <1000000>;
683 regulator-max-microvolt = <1000000>;
684 };
685
686 pm8994_l2: l2 {
687 regulator-min-microvolt = <1250000>;
688 regulator-max-microvolt = <1250000>;
689 };
690
691 pm8994_l3: l3 {
692 regulator-min-microvolt = <1100000>;
693 regulator-max-microvolt = <1100000>;
694 };
695
696 pm8994_l4: l4 {
697 regulator-min-microvolt = <1225000>;
698 regulator-max-microvolt = <1225000>;
699 };
700
701 /* L6 and L7 seem unused. */
702
703 pm8994_l8: l8 {
704 regulator-min-microvolt = <1800000>;
705 regulator-max-microvolt = <1800000>;
706 };
707
708 pm8994_l9: l9 {
709 regulator-min-microvolt = <1800000>;
710 regulator-max-microvolt = <1800000>;
711 };
712
713 pm8994_l10: l10 {
714 regulator-min-microvolt = <1800000>;
715 regulator-max-microvolt = <1800000>;
716 };
717
718 pm8994_l11: l11 {
719 regulator-min-microvolt = <1100000>;
720 regulator-max-microvolt = <1100000>;
721 };
722
723 pm8994_l12: l12 {
724 regulator-min-microvolt = <1800000>;
725 regulator-max-microvolt = <1800000>;
726 regulator-allow-set-load;
727 };
728
729 pm8994_l13: l13 {
730 regulator-min-microvolt = <1800000>;
731 regulator-max-microvolt = <2950000>;
732 regulator-system-load = <22000>;
733 regulator-allow-set-load;
734 };
735
736 pm8994_l14: l14 {
737 regulator-min-microvolt = <1700000>;
738 regulator-max-microvolt = <1900000>;
739 };
740
741 pm8994_l15: l15 {
742 regulator-min-microvolt = <1800000>;
743 regulator-max-microvolt = <1800000>;
744 };
745
746 pm8994_l16: l16 {
747 regulator-min-microvolt = <2700000>;
748 regulator-max-microvolt = <2700000>;
749 };
750
751 pm8994_l17: l17 {
752 regulator-min-microvolt = <2200000>;
753 regulator-max-microvolt = <2500000>;
754 };
755
756 pm8994_l18: l18 {
757 regulator-min-microvolt = <1800000>;
758 regulator-max-microvolt = <1800000>;
759 };
760
761 pm8994_l19: l19 {
762 regulator-min-microvolt = <3000000>;
763 regulator-max-microvolt = <3000000>;
764 };
765
766 pm8994_l20: l20 {
767 regulator-min-microvolt = <2950000>;
768 regulator-max-microvolt = <2950000>;
769 regulator-system-load = <570000>;
770 regulator-allow-set-load;
771 };
772
773 pm8994_l21: l21 {
774 regulator-min-microvolt = <2950000>;
775 regulator-max-microvolt = <2950000>;
776 regulator-system-load = <800000>;
777 regulator-allow-set-load;
778 };
779
780 pm8994_l22: l22 {
781 regulator-min-microvolt = <3000000>;
782 regulator-max-microvolt = <3000000>;
783 };
784
785 pm8994_l23: l23 {
786 regulator-min-microvolt = <2700000>;
787 regulator-max-microvolt = <2700000>;
788 };
789
790 pm8994_l24: l24 {
791 regulator-min-microvolt = <3075000>;
792 regulator-max-microvolt = <3075000>;
793 regulator-allow-set-load;
794 };
795
796 pm8994_l25: l25 {
797 regulator-min-microvolt = <1200000>;
798 regulator-max-microvolt = <1200000>;
799 regulator-allow-set-load;
800 };
801
802 pm8994_l27: l27 {
803 regulator-min-microvolt = <1000000>;
804 regulator-max-microvolt = <1200000>;
805 };
806
807 pm8994_l28: l28 {
808 regulator-min-microvolt = <925000>;
809 regulator-max-microvolt = <925000>;
810 regulator-allow-set-load;
811 };
812
813 pm8994_l29: l29 {
814 regulator-min-microvolt = <2700000>;
815 regulator-max-microvolt = <2700000>;
816 };
817
818 pm8994_l30: l30 { };
819
820 pm8994_l32: l32 {
821 regulator-min-microvolt = <1800000>;
822 regulator-max-microvolt = <1800000>;
823 };
824 };
825 };
826
827 &sdhc1 {
828 /* eMMC doesn't seem to cooperate even in PIO mode.. */
829 status = "disabled";
830
831 vmmc-supply = <&pm8994_l20>;
832 vqmmc-supply = <&pm8994_s4>;
833 mmc-hs400-1_8v;
834 mmc-hs200-1_8v;
835 };
836
837 &sdhc2 {
838 status = "okay";
839
840 cd-gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
841 vmmc-supply = <&pm8994_l21>;
842 vqmmc-supply = <&pm8994_l13>;
843 };
844
845 &tlmm {
846 gpio-reserved-ranges = <0 4>;
847 pinctrl-0 = <&sw_service_gpio>;
848 pinctrl-names = "default";
849
850 disp_reset_n_gpio: disp-reset-n {
851 pins = "gpio8";
852 function = "gpio";
853 drive-strength = <2>;
854 bias-disable;
855 };
856
857 mdp_vsync_p_gpio: mdp-vsync-p {
858 pins = "gpio10";
859 function = "mdp_vsync";
860 drive-strength = <2>;
861 bias-disable;
862 };
863
864 sw_service_gpio: sw-service-gpio {
865 pins = "gpio16";
866 function = "gpio";
867 drive-strength = <2>;
868 bias-pull-up;
869 };
870
871 usb_detect: usb-detect {
872 pins = "gpio25";
873 function = "gpio";
874 drive-strength = <2>;
875 bias-disable;
876 output-high;
877 };
878
879 uim_detect_en: uim-detect-en {
880 pins = "gpio29";
881 function = "gpio";
882 drive-strength = <2>;
883 bias-disable;
884 output-high;
885 };
886
887 tray_det_pin: tray-det {
888 pins = "gpio40";
889 function = "gpio";
890 drive-strength = <2>;
891 bias-disable;
892 };
893
894 tp_vddio_en: tp-vddio-en {
895 pins = "gpio50";
896 function = "gpio";
897 drive-strength = <2>;
898 bias-disable;
899 output-high;
900 };
901
902 lcd_vddio_en: lcd-vddio-en {
903 pins = "gpio51";
904 function = "gpio";
905 drive-strength = <2>;
906 bias-disable;
907 output-low;
908 };
909
910 wl_host_wake: wl-host-wake {
911 pins = "gpio79";
912 function = "gpio";
913 drive-strength = <2>;
914 bias-pull-down;
915 input-high;
916 };
917
918 wl_reg_on: wl-reg-on {
919 pins = "gpio84";
920 function = "gpio";
921 drive-strength = <2>;
922 bias-disable;
923 output-low;
924 };
925
926 ts_reset_n: ts-rst-n {
927 pins = "gpio89";
928 function = "gpio";
929 drive-strength = <2>;
930 };
931
932 touch_int_n: touch-int-n {
933 pins = "gpio125";
934 function = "gpio";
935 drive-strength = <2>;
936 bias-pull-up;
937 };
938
939 touch_int_sleep: touch-int-sleep {
940 pins = "gpio125";
941 function = "gpio";
942 drive-strength = <2>;
943 bias-pull-down;
944 };
945 };
946
947 /*
948 * For reasons that are currently unknown (but probably related to fusb301), USB takes about
949 * 6 minutes to wake up (nothing interesting in kernel logs), but then it works as it should.
950 */
951 &usb3 {
952 status = "okay";
953 qcom,select-utmi-as-pipe-clk;
954 };
955
956 &usb3_dwc3 {
957 extcon = <&usb3_id>;
958 dr_mode = "peripheral";
959 phys = <&hsusb_phy1>;
960 phy-names = "usb2-phy";
961 snps,hird-threshold = /bits/ 8 <0>;
962 };
Cache object: 2caca3809da7180e1696706d0c8b96e9
|