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 <dt-bindings/input/input.h>
9#include <dt-bindings/leds/common.h>
10#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
11#include "msm8998.dtsi"
12#include "pm8005.dtsi"
13#include "pm8998.dtsi"
14#include "pmi8998.dtsi"
15
16/ {
17	/* required for bootloader to select correct board */
18	qcom,msm-id = <0x124 0x20000>, <0x124 0x20001>; /* 8998v2, v2.1 */
19	qcom,board-id = <8 0>;
20
21	clocks {
22		div1_mclk: divclk1 {
23			compatible = "gpio-gate-clock";
24			pinctrl-0 = <&div_clk1>;
25			pinctrl-names = "default";
26			clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
27			#clock-cells = <0>;
28			enable-gpios = <&pm8998_gpios 13 GPIO_ACTIVE_HIGH>;
29		};
30	};
31
32	board_vbat: vbat-regulator {
33		compatible = "regulator-fixed";
34		regulator-name = "VBAT";
35
36		regulator-min-microvolt = <4000000>;
37		regulator-max-microvolt = <4000000>;
38		regulator-always-on;
39		regulator-boot-on;
40	};
41
42	cam0_vdig_vreg: cam0-vdig {
43		compatible = "regulator-fixed";
44		regulator-name = "cam0_vdig";
45		startup-delay-us = <0>;
46		enable-active-high;
47		gpio = <&tlmm 21 GPIO_ACTIVE_HIGH>;
48		pinctrl-names = "default";
49		pinctrl-0 = <&main_cam_pwr_en>;
50	};
51
52	cam1_vdig_vreg: cam1-vdig {
53		compatible = "regulator-fixed";
54		regulator-name = "cam1_vdig";
55		startup-delay-us = <0>;
56		enable-active-high;
57		gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>;
58		pinctrl-names = "default";
59		pinctrl-0 = <&chat_cam_pwr_en>;
60		vin-supply = <&vreg_s3a_1p35>;
61	};
62
63	cam_vio_vreg: cam-vio-vreg {
64		compatible = "regulator-fixed";
65		regulator-name = "cam_vio_vreg";
66		startup-delay-us = <0>;
67		enable-active-high;
68		gpio = <&pmi8998_gpios 1 GPIO_ACTIVE_HIGH>;
69		pinctrl-names = "default";
70		pinctrl-0 = <&main_cam_pwr_io_en>;
71		vin-supply = <&vreg_lvs1a_1p8>;
72	};
73
74	touch_vddio_vreg: touch-vddio-vreg {
75		compatible = "regulator-fixed";
76		regulator-name = "touch_vddio_vreg";
77		startup-delay-us = <10000>;
78		gpio = <&tlmm 133 GPIO_ACTIVE_HIGH>;
79		pinctrl-names = "default";
80		pinctrl-0 = <&ts_vddio_en>;
81	};
82
83	vph_pwr: vph-pwr-regulator {
84		compatible = "regulator-fixed";
85		regulator-name = "vph_pwr";
86		regulator-always-on;
87		regulator-boot-on;
88	};
89
90	extcon_usb: extcon-usb {
91		compatible = "linux,extcon-usb-gpio";
92		id-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
93		vbus-gpios = <&tlmm 128 GPIO_ACTIVE_HIGH>;
94		pinctrl-names = "default";
95		pinctrl-0 = <&cc_dir_default &usb_detect_en>;
96	};
97
98	gpio-keys {
99		compatible = "gpio-keys";
100		label = "Side buttons";
101		pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &vol_up_n>;
102		pinctrl-names = "default";
103		button-camera-focus {
104			label = "Camera Focus";
105			gpios = <&pm8998_gpios 8 GPIO_ACTIVE_LOW>;
106			linux,code = <KEY_CAMERA_FOCUS>;
107			debounce-interval = <15>;
108		};
109
110		button-camera-snapshot {
111			label = "Camera Snapshot";
112			gpios = <&pm8998_gpios 7 GPIO_ACTIVE_LOW>;
113			linux,code = <KEY_CAMERA>;
114			debounce-interval = <15>;
115		};
116
117		button-vol-down {
118			label = "Volume Down";
119			gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
120			linux,code = <KEY_VOLUMEDOWN>;
121			wakeup-source;
122			debounce-interval = <15>;
123		};
124
125		button-vol-up {
126			label = "Volume Up";
127			gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
128			linux,code = <KEY_VOLUMEUP>;
129			wakeup-source;
130			debounce-interval = <15>;
131		};
132	};
133
134	gpio-hall-sensor {
135		compatible = "gpio-keys";
136		label = "Hall sensors";
137		pinctrl-names = "default";
138		pinctrl-0 = <&acc_cover_open>;
139
140		event-hall-sensor0 {
141			label = "Cover Hall Sensor";
142			gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
143			linux,input-type = <EV_SW>;
144			linux,code = <SW_LID>;
145			wakeup-source;
146			debounce-interval = <30>;
147		};
148	};
149
150	reserved-memory {
151		#address-cells = <2>;
152		#size-cells = <2>;
153		ranges;
154
155		hyp_mem: memory@85800000 {
156			reg = <0x0 0x85800000 0x0 0x3700000>;
157			no-map;
158		};
159
160		cont_splash_mem: memory@9d400000 {
161			reg = <0x0 0x9d400000 0x0 0x2400000>;
162			no-map;
163		};
164
165		zap_shader_region: memory@f6400000 {
166			compatible = "shared-dma-pool";
167			reg = <0x0 0xf6400000 0x0 0x2000>;
168			no-map;
169		};
170
171		adsp_region: memory@fe000000 {
172			reg = <0x0 0xfe000000 0x0 0x800000>;
173			no-map;
174		};
175
176		qseecom_region: memory@fe800000 {
177			reg = <0x0 0xfe800000 0x0 0x1400000>;
178			no-map;
179		};
180
181		ramoops@ffc00000 {
182			compatible = "ramoops";
183			reg = <0x0 0xffc00000 0x0 0x100000>;
184			record-size = <0x10000>;
185			console-size = <0x60000>;
186			ftrace-size = <0x10000>;
187			pmsg-size = <0x20000>;
188			ecc-size = <16>;
189		};
190	};
191
192	vibrator {
193		compatible = "gpio-vibrator";
194		enable-gpios = <&pmi8998_gpios 5 GPIO_ACTIVE_HIGH>;
195		pinctrl-names = "default";
196		pinctrl-0 = <&vib_ldo_en>;
197	};
198};
199
200&blsp1_i2c5 {
201	status = "okay";
202	clock-frequency = <355000>;
203
204	touchscreen@2c {
205		compatible = "syna,rmi4-i2c";
206		reg = <0x2c>;
207		#address-cells = <1>;
208		#size-cells = <0>;
209		interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
210
211		pinctrl-names = "default";
212		pinctrl-0 = <&ts_int_n>;
213
214		vdd-supply = <&vreg_l28_3p0>;
215		vio-supply = <&touch_vddio_vreg>;
216
217		syna,reset-delay-ms = <220>;
218		syna,startup-delay-ms = <1000>;
219
220		rmi4-f01@1 {
221			reg = <0x01>;
222			syna,nosleep-mode = <1>;
223		};
224
225		rmi4-f11@11 {
226			reg = <0x11>;
227			syna,sensor-type = <1>;
228		};
229	};
230};
231
232&blsp1_i2c5_sleep {
233	bias-disable;
234};
235
236&blsp1_uart3 {
237	status = "okay";
238
239	bluetooth {
240		compatible = "qcom,wcn3990-bt";
241
242		vddio-supply = <&vreg_s4a_1p8>;
243		vddxo-supply = <&vreg_l7a_1p8>;
244		vddrf-supply = <&vreg_l17a_1p3>;
245		vddch0-supply = <&vreg_l25a_3p3>;
246		max-speed = <3200000>;
247
248		clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
249	};
250};
251
252&blsp2_uart1 {
253	status = "okay";
254};
255
256&blsp2_i2c2 {
257	status = "okay";
258
259	proximity@29 {
260		compatible = "st,vl53l0x";
261		reg = <0x29>;
262
263		interrupt-parent = <&tlmm>;
264		interrupts = <22 IRQ_TYPE_EDGE_FALLING>;
265
266		reset-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
267		vdd-supply = <&cam_vio_vreg>;
268
269		pinctrl-names = "default";
270		pinctrl-0 = <&tof_int_n &tof_reset>;
271	};
272};
273
274&ibb {
275	regulator-min-microamp = <800000>;
276	regulator-max-microamp = <800000>;
277	regulator-enable-ramp-delay = <200>;
278	regulator-over-current-protection;
279	regulator-pull-down;
280	regulator-ramp-delay = <1>;
281	regulator-settling-time-up-us = <600>;
282	regulator-settling-time-down-us = <1000>;
283	regulator-soft-start;
284	qcom,discharge-resistor-kohms = <300>;
285};
286
287&lab {
288	regulator-min-microamp = <200000>;
289	regulator-max-microamp = <200000>;
290	regulator-enable-ramp-delay = <500>;
291	regulator-over-current-protection;
292	regulator-pull-down;
293	regulator-ramp-delay = <1>;
294	regulator-settling-time-up-us = <50000>;
295	regulator-settling-time-down-us = <3000>;
296	regulator-soft-start;
297};
298
299&pm8005_gpios {
300	gpio-line-names = "NC", /* GPIO_1 */
301			  "NC",
302			  "SLB",
303			  "OPTION_1_PM8005";
304};
305
306&pm8005_regulators {
307	/* VDD_GFX supply */
308	pm8005_s1: s1 {
309		regulator-min-microvolt = <524000>;
310		regulator-max-microvolt = <1088000>;
311		regulator-enable-ramp-delay = <500>;
312		/* Hack until we rig up the gpu consumer */
313		regulator-always-on;
314	};
315};
316
317&pm8998_gpios {
318	gpio-line-names = "UIM_BATT_ALARM", /* GPIO_1 */
319			  "NC",
320			  "WLAN_SW_CTRL (DISALLOWED)",
321			  "SSC_PWR_EN",
322			  "VOL_DOWN_N",
323			  "VOL_UP_N",
324			  "SNAPSHOT_N",
325			  "FOCUS_N",
326			  "FLASH_THERM",
327			  "", /* GPIO_10 */
328			  "",
329			  "",
330			  "DIV_CLK1",
331			  "NC",
332			  "NC (DISALLOWED)",
333			  "DIV_CLK3",
334			  "NC",
335			  "NC",
336			  "NC",
337			  "NC (DISALLOWED)", /* GPIO_20 */
338			  "NFC_CLK_REQ",
339			  "NC (DISALLOWED)",
340			  "WCSS_PWR_REQ",
341			  "OPTION_1 (DISALLOWED)",
342			  "OPTION_2 (DISALLOWED)",
343			  "PM_SLB (DISALLOWED)";
344
345	vol_down_n: vol-down-n-state {
346		pins = "gpio5";
347		function = PMIC_GPIO_FUNC_NORMAL;
348		bias-pull-up;
349		input-enable;
350		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
351	};
352
353	vol_up_n: vol-up-n-state {
354		pins = "gpio6";
355		function = PMIC_GPIO_FUNC_NORMAL;
356		bias-pull-up;
357		input-enable;
358		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
359	};
360
361	focus_n: focus-n-state {
362		pins = "gpio7";
363		function = PMIC_GPIO_FUNC_NORMAL;
364		bias-pull-up;
365		input-enable;
366		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
367	};
368
369	snapshot_n: snapshot-n-state {
370		pins = "gpio8";
371		function = PMIC_GPIO_FUNC_NORMAL;
372		bias-pull-up;
373		input-enable;
374		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
375	};
376
377	div_clk1: div-clk1-state {
378		pins = "gpio13";
379		function = "func2";
380		power-source = <0>;
381	};
382};
383
384&pmi8998_gpios {
385	gpio-line-names = "MAIN_CAM_PWR_IO_EN", /* GPIO_1 */
386			  "NC",
387			  "NC",
388			  "TYPEC_UUSB_SEL",
389			  "VIB_LDO_EN",
390			  "NC",
391			  "DISPLAY_TYPE_SEL",
392			  "NC",
393			  "NC",
394			  "NC", /* GPIO_10 */
395			  "NC",
396			  "DIV_CLK3",
397			  "SPMI_I2C_SEL",
398			  "NC";
399
400	main_cam_pwr_io_en: main-cam-pwr-io-en-state {
401		pins = "gpio1";
402		function = PMIC_GPIO_FUNC_NORMAL;
403		bias-disable;
404		drive-push-pull;
405		output-low;
406		qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
407		power-source = <1>;
408	};
409
410	vib_ldo_en: vib-ldo-en-state {
411		pins = "gpio5";
412		function = PMIC_GPIO_FUNC_NORMAL;
413		bias-disable;
414		drive-push-pull;
415		output-low;
416		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
417		power-source = <0>;
418	};
419};
420
421&pmi8998_lpg {
422	qcom,power-source = <1>;
423
424	status = "okay";
425
426	multi-led {
427		color = <LED_COLOR_ID_RGB>;
428		function = LED_FUNCTION_STATUS;
429
430		#address-cells = <1>;
431		#size-cells = <0>;
432
433		led@3 {
434			reg = <3>;
435			color = <LED_COLOR_ID_BLUE>;
436		};
437
438		led@4 {
439			reg = <4>;
440			color = <LED_COLOR_ID_GREEN>;
441		};
442
443		led@5 {
444			reg = <5>;
445			color = <LED_COLOR_ID_RED>;
446		};
447	};
448};
449
450&qusb2phy {
451	status = "okay";
452
453	vdda-pll-supply = <&vreg_l12a_1p8>;
454	vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
455};
456
457&rpm_requests {
458	regulators-0 {
459		compatible = "qcom,rpm-pm8998-regulators";
460
461		vdd_s1-supply = <&vph_pwr>;
462		vdd_s2-supply = <&vph_pwr>;
463		vdd_s3-supply = <&vph_pwr>;
464		vdd_s4-supply = <&vph_pwr>;
465		vdd_s5-supply = <&vph_pwr>;
466		vdd_s6-supply = <&vph_pwr>;
467		vdd_s7-supply = <&vph_pwr>;
468		vdd_s8-supply = <&vph_pwr>;
469		vdd_s9-supply = <&vph_pwr>;
470		vdd_s10-supply = <&vph_pwr>;
471		vdd_s11-supply = <&vph_pwr>;
472		vdd_s12-supply = <&vph_pwr>;
473		vdd_s13-supply = <&vph_pwr>;
474		vdd_l1_l27-supply = <&vreg_s7a_1p025>;
475		vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
476		vdd_l3_l11-supply = <&vreg_s7a_1p025>;
477		vdd_l4_l5-supply = <&vreg_s7a_1p025>;
478		vdd_l6-supply = <&vreg_s5a_2p04>;
479		vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
480		vdd_l9-supply = <&vreg_bob>;
481		vdd_l10_l23_l25-supply = <&vreg_bob>;
482		vdd_l13_l19_l21-supply = <&vreg_bob>;
483		vdd_l16_l28-supply = <&vreg_bob>;
484		vdd_l18_l22-supply = <&vreg_bob>;
485		vdd_l20_l24-supply = <&vreg_bob>;
486		vdd_l26-supply = <&vreg_s3a_1p35>;
487		vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
488
489		vreg_s3a_1p35: s3 {
490			regulator-min-microvolt = <1352000>;
491			regulator-max-microvolt = <1352000>;
492		};
493
494		vreg_s4a_1p8: s4 {
495			regulator-min-microvolt = <1800000>;
496			regulator-max-microvolt = <1800000>;
497			regulator-system-load = <100000>;
498			regulator-allow-set-load;
499		};
500
501		vreg_s5a_2p04: s5 {
502			regulator-min-microvolt = <1904000>;
503			regulator-max-microvolt = <2032000>;
504		};
505
506		vreg_s7a_1p025: s7 {
507			regulator-min-microvolt = <900000>;
508			regulator-max-microvolt = <1028000>;
509		};
510
511		vreg_l1a_0p875: l1 {
512			regulator-min-microvolt = <880000>;
513			regulator-max-microvolt = <880000>;
514			regulator-system-load = <73400>;
515			regulator-allow-set-load;
516		};
517
518		vreg_l2a_1p2: l2 {
519			regulator-min-microvolt = <1200000>;
520			regulator-max-microvolt = <1200000>;
521			regulator-system-load = <12560>;
522			regulator-allow-set-load;
523		};
524
525		vreg_l3a_1p0: l3 {
526			regulator-min-microvolt = <1000000>;
527			regulator-max-microvolt = <1000000>;
528		};
529
530		vreg_l5a_0p8: l5 {
531			regulator-min-microvolt = <800000>;
532			regulator-max-microvolt = <800000>;
533		};
534
535		vreg_l6a_1p8: l6 {
536			regulator-min-microvolt = <1800000>;
537			regulator-max-microvolt = <1800000>;
538		};
539
540		vreg_l7a_1p8: l7 {
541			regulator-min-microvolt = <1800000>;
542			regulator-max-microvolt = <1800000>;
543		};
544
545		vreg_l8a_1p2: l8 {
546			regulator-min-microvolt = <1200000>;
547			regulator-max-microvolt = <1200000>;
548		};
549
550		vreg_l9a_1p8: l9 {
551			regulator-min-microvolt = <1808000>;
552			regulator-max-microvolt = <2960000>;
553		};
554
555		vreg_l10a_1p8: l10 {
556			regulator-min-microvolt = <1808000>;
557			regulator-max-microvolt = <2960000>;
558		};
559
560		vreg_l11a_1p0: l11 {
561			regulator-min-microvolt = <1000000>;
562			regulator-max-microvolt = <1000000>;
563		};
564
565		vreg_l12a_1p8: l12 {
566			regulator-min-microvolt = <1800000>;
567			regulator-max-microvolt = <1800000>;
568		};
569
570		vreg_l13a_2p95: l13 {
571			regulator-min-microvolt = <1808000>;
572			regulator-max-microvolt = <2960000>;
573			regulator-allow-set-load;
574		};
575
576		vreg_l14a_1p85: l14 {
577			regulator-min-microvolt = <1848000>;
578			regulator-max-microvolt = <1856000>;
579			regulator-system-load = <32000>;
580			regulator-allow-set-load;
581		};
582
583		vreg_l15a_1p8: l15 {
584			regulator-min-microvolt = <1800000>;
585			regulator-max-microvolt = <1800000>;
586		};
587
588		vreg_l16a_2p7: l16 {
589			regulator-min-microvolt = <2704000>;
590			regulator-max-microvolt = <2704000>;
591		};
592
593		vreg_l17a_1p3: l17 {
594			regulator-min-microvolt = <1304000>;
595			regulator-max-microvolt = <1304000>;
596		};
597
598		vreg_l18a_2p85: l18 { };
599
600		vreg_l19a_2p7: l19 {
601			regulator-min-microvolt = <2696000>;
602			regulator-max-microvolt = <2704000>;
603		};
604
605		vreg_l20a_2p95: l20 {
606			regulator-min-microvolt = <2960000>;
607			regulator-max-microvolt = <2960000>;
608			regulator-system-load = <10000>;
609			regulator-allow-set-load;
610		};
611
612		vreg_l21a_2p95: l21 {
613			regulator-min-microvolt = <2960000>;
614			regulator-max-microvolt = <2960000>;
615			regulator-system-load = <800000>;
616			regulator-allow-set-load;
617		};
618
619		vreg_l22a_2p85: l22 { };
620
621		vreg_l23a_3p3: l23 {
622			regulator-min-microvolt = <3312000>;
623			regulator-max-microvolt = <3312000>;
624		};
625
626		vreg_l24a_3p075: l24 {
627			regulator-min-microvolt = <3088000>;
628			regulator-max-microvolt = <3088000>;
629		};
630
631		vreg_l25a_3p3: l25 {
632			regulator-min-microvolt = <3104000>;
633			regulator-max-microvolt = <3312000>;
634		};
635
636		vreg_l26a_1p2: l26 {
637			regulator-min-microvolt = <1200000>;
638			regulator-max-microvolt = <1200000>;
639			regulator-allow-set-load;
640		};
641
642		vreg_l28_3p0: l28 {
643			regulator-min-microvolt = <3000000>;
644			regulator-max-microvolt = <3000000>;
645		};
646
647		vreg_lvs1a_1p8: lvs1 { };
648
649		vreg_lvs2a_1p8: lvs2 { };
650	};
651
652	regulators-1 {
653		compatible = "qcom,rpm-pmi8998-regulators";
654
655		vdd_bob-supply = <&vph_pwr>;
656
657		vreg_bob: bob {
658			regulator-min-microvolt = <3312000>;
659			regulator-max-microvolt = <3600000>;
660		};
661	};
662};
663
664&sdhc2 {
665	status = "okay";
666	cd-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
667
668	vmmc-supply = <&vreg_l21a_2p95>;
669	vqmmc-supply = <&vreg_l13a_2p95>;
670
671	pinctrl-names = "default", "sleep";
672	pinctrl-0 = <&sdc2_on &sdc2_cd>;
673	pinctrl-1 = <&sdc2_off &sdc2_cd>;
674};
675
676&tlmm {
677	gpio-reserved-ranges = <0 4>, <81 4>;
678	gpio-line-names = "", /* GPIO_0 */
679			  "",
680			  "",
681			  "",
682			  "DEBUG_UART_TX",
683			  "DEBUG_UART_RX",
684			  "CAMSENSOR_I2C_SDA",
685			  "CAMSENSOR_I2C_SCL",
686			  "NC",
687			  "NC",
688			  "MDP_VSYNC_P", /* GPIO_10 */
689			  "RGBC_IR_INT",
690			  "NFC_VEN",
691			  "CAM_MCLK0",
692			  "CAM_MCLK1",
693			  "NC",
694			  "NC",
695			  "CCI_I2C_SDA0",
696			  "CCI_I2C_SCL0",
697			  "CCI_I2C_SDA1",
698			  "CCI_I2C_SCL1", /* GPIO_20 */
699			  "MAIN_CAM_PWR_EN",
700			  "TOF_INT_N",
701			  "NC",
702			  "NC",
703			  "CHAT_CAM_PWR_EN",
704			  "NC",
705			  "TOF_RESET_N",
706			  "CAM2_RSTN",
707			  "NC",
708			  "CAM1_RSTN", /* GPIO_30 */
709			  "NC",
710			  "NC",
711			  "NC",
712			  "NC",
713			  "NC",
714			  "NC",
715			  "NC",
716			  "CC_DIR",
717			  "UIM2_DETECT_EN",
718			  "FP_RESET_N", /* GPIO_40 */
719			  "NC",
720			  "NC",
721			  "NC",
722			  "NC",
723			  "BT_HCI_UART_TXD",
724			  "BT_HCI_UART_RXD",
725			  "BT_HCI_UART_CTS_N",
726			  "BT_HCI_UART_RFR_N",
727			  "NC",
728			  "NC", /* GPIO_50 */
729			  "NC",
730			  "NC",
731			  "CODEC_INT2_N",
732			  "CODEC_INT1_N",
733			  "APPS_I2C_SDA",
734			  "APPS_I2C_SCL",
735			  "FORCED_USB_BOOT",
736			  "NC",
737			  "NC",
738			  "NC", /* GPIO_60 */
739			  "NC",
740			  "NC",
741			  "TRAY2_DET_DS",
742			  "CODEC_RST_N",
743			  "WSA_L_EN",
744			  "WSA_R_EN",
745			  "NC",
746			  "NC",
747			  "NC",
748			  "LPASS_SLIMBUS_CLK", /* GPIO_70 */
749			  "LPASS_SLIMBUS_DATA0",
750			  "LPASS_SLIMBUS_DATA1",
751			  "BT_FM_SLIMBUS_DATA",
752			  "BT_FM_SLIMBUS_CLK",
753			  "NC",
754			  "RF_LCD_ID_EN",
755			  "NC",
756			  "NC",
757			  "NC",
758			  "NC", /* GPIO_80 */
759			  "SW_SERVICE",
760			  "TX_GTR_THRES_IN",
761			  "HW_ID0",
762			  "HW_ID1",
763			  "NC",
764			  "NC",
765			  "TS_I2C_SDA",
766			  "TS_I2C_SCL",
767			  "TS_RESET_N",
768			  "NC", /* GPIO_90 */
769			  "NC",
770			  "NFC_IRQ",
771			  "NFC_DWLD_EN",
772			  "DISP_RESET_N",
773			  "TRAY2_DET",
774			  "CAM_SOF",
775			  "RFFE6_CLK",
776			  "RFFE6_DATA",
777			  "DEBUG_GPIO0",
778			  "DEBUG_GPIO1", /* GPIO_100 */
779			  "GRFC4",
780			  "NC",
781			  "NC",
782			  "RSVD",
783			  "UIM2_DATA",
784			  "UIM2_CLK",
785			  "UIM2_RESET",
786			  "UIM2_PRESENT",
787			  "UIM1_DATA",
788			  "UIM1_CLK", /* GPIO_110 */
789			  "UIM1_RST",
790			  "UIM1_PRESENT",
791			  "UIM_BATT_ALARM",
792			  "RSVD",
793			  "NC",
794			  "NC",
795			  "ACCEL_INT",
796			  "GYRO_INT",
797			  "COMPASS_INT",
798			  "ALS_PROX_INT_N", /* GPIO_120 */
799			  "FP_INT_N",
800			  "NC",
801			  "BAROMETER_INT",
802			  "ACC_COVER_OPEN",
803			  "TS_INT_N",
804			  "NC",
805			  "NC",
806			  "USB_DETECT_EN",
807			  "NC",
808			  "QLINK_REQUEST", /* GPIO_130 */
809			  "QLINK_ENABLE",
810			  "NC",
811			  "NC",
812			  "WMSS_RESET_N",
813			  "PA_INDICATOR_OR",
814			  "NC",
815			  "RFFE3_DATA",
816			  "RFFE3_CLK",
817			  "RFFE4_DATA",
818			  "RFFE4_CLK", /* GPIO_140 */
819			  "RFFE5_DATA",
820			  "RFFE5_CLK",
821			  "GNSS_EN",
822			  "MSS_LTE_COXM_TXD",
823			  "MSS_LTE_COXM_RXD",
824			  "RFFE2_DATA",
825			  "RFFE2_CLK",
826			  "RFFE1_DATA",
827			  "RFFE1_CLK";
828
829	mdp_vsync_p: mdp-vsync-p-state {
830		pins = "gpio10";
831		function = "mdp_vsync_a";
832		drive-strength = <2>;
833		bias-pull-down;
834	};
835
836	nfc_ven: nfc-ven-state {
837		pins = "gpio12";
838		function = "gpio";
839		bias-disable;
840		drive-strength = <2>;
841		output-low;
842	};
843
844	cam_mclk0_active: cam-mclk0-active-state {
845		pins = "gpio13";
846		function = "cam_mclk";
847		drive-strength = <2>;
848		bias-disable;
849	};
850
851	cam_mclk1_active: cam-mclk1-active-state {
852		pins = "gpio14";
853		function = "cam_mclk";
854		drive-strength = <2>;
855		bias-disable;
856	};
857
858	cci0_default: cci0-default-state {
859		pins = "gpio18", "gpio19";
860		function = "cci_i2c";
861		bias-disable;
862		drive-strength = <2>;
863	};
864
865	cci1_default: cci1-default-state {
866		pins = "gpio19", "gpio20";
867		function = "cci_i2c";
868		bias-disable;
869		drive-strength = <2>;
870	};
871
872	main_cam_pwr_en: main-cam-pwr-en-default-state {
873		pins = "gpio21";
874		function = "gpio";
875		bias-disable;
876		drive-strength = <2>;
877	};
878
879	tof_int_n: tof-int-n-state {
880		pins = "gpio22";
881		function = "gpio";
882		bias-pull-up;
883		drive-strength = <2>;
884	};
885
886	chat_cam_pwr_en: chat-cam-pwr-en-default-state {
887		pins = "gpio25";
888		function = "gpio";
889		bias-disable;
890		drive-strength = <2>;
891	};
892
893	tof_reset: tof-reset-state {
894		pins = "gpio27";
895		function = "gpio";
896		bias-disable;
897		drive-strength = <2>;
898	};
899
900	cc_dir_default: cc-dir-active-state {
901		pins = "gpio38";
902		function = "gpio";
903		bias-disable;
904		drive-strength = <16>;
905	};
906
907	acc_cover_open: acc-cover-open-state {
908		pins = "gpio124";
909		function = "gpio";
910		bias-disable;
911		drive-strength = <2>;
912	};
913
914	ts_int_n: ts-int-n-state {
915		pins = "gpio125";
916		function = "gpio";
917		drive-strength = <8>;
918		bias-pull-up;
919	};
920
921	usb_detect_en: usb-detect-en-active-state {
922		pins = "gpio128";
923		function = "gpio";
924		bias-disable;
925		drive-strength = <2>;
926		output-low;
927	};
928
929	ts_vddio_en: ts-vddio-en-default-state {
930		pins = "gpio133";
931		function = "gpio";
932		bias-disable;
933		drive-strength = <2>;
934		output-low;
935	};
936};
937
938/*
939 * WARNING:
940 * Disable UFS until card quirks are in to avoid unrecoverable hard-brick
941 * that would happen as soon as the UFS card gets probed as, without the
942 * required quirks, the bootloader will be erased right after card probe.
943 */
944&ufshc {
945	status = "disabled";
946};
947
948&ufsphy {
949	status = "disabled";
950};
951
952&usb3 {
953	status = "okay";
954};
955
956&usb3_dwc3 {
957	/* Force to peripheral until we have Type-C hooked up */
958	dr_mode = "peripheral";
959	extcon = <&extcon_usb>;
960};
961
962&usb3phy {
963	status = "okay";
964
965	vdda-phy-supply = <&vreg_l1a_0p875>;
966	vdda-pll-supply = <&vreg_l2a_1p2>;
967};
968