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