1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2022-2024 Jianhua Lu <[email protected]>
4 */
5
6#include <dt-bindings/arm/qcom,ids.h>
7#include <dt-bindings/phy/phy.h>
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/usb/pd.h>
10#include "sm8250.dtsi"
11#include "pm8150.dtsi"
12#include "pm8150b.dtsi"
13#include "pm8150l.dtsi"
14#include "pm8009.dtsi"
15
16/*
17 * Delete following upstream (sm8250.dtsi) reserved
18 * memory mappings which are different on this device.
19 */
20/delete-node/ &adsp_mem;
21/delete-node/ &cdsp_secure_heap;
22/delete-node/ &slpi_mem;
23/delete-node/ &spss_mem;
24/delete-node/ &xbl_aop_mem;
25
26/ {
27	chassis-type = "tablet";
28
29	/* required for bootloader to select correct board */
30	qcom,msm-id = <QCOM_ID_SM8250 0x20001>; /* SM8250 v2.1 */
31	qcom,board-id = <0x10008 0>;
32
33	aliases {
34		serial0 = &uart6;
35	};
36
37	chosen {
38		#address-cells = <2>;
39		#size-cells = <2>;
40		ranges;
41
42		framebuffer: framebuffer@9c000000 {
43			compatible = "simple-framebuffer";
44			reg = <0x0 0x9c000000 0x0 0x2300000>;
45			width = <1600>;
46			height = <2560>;
47			stride = <(1600 * 4)>;
48			format = "a8r8g8b8";
49		};
50	};
51
52	battery_l: battery-l {
53		compatible = "simple-battery";
54		voltage-min-design-microvolt = <3870000>;
55		energy-full-design-microwatt-hours = <16600000>;
56		charge-full-design-microamp-hours = <4300000>;
57	};
58
59	battery_r: battery-r {
60		compatible = "simple-battery";
61		voltage-min-design-microvolt = <3870000>;
62		energy-full-design-microwatt-hours = <16600000>;
63		charge-full-design-microamp-hours = <4300000>;
64	};
65
66	bl_vddpos_5p5: bl-vddpos-regulator {
67		compatible = "regulator-fixed";
68		regulator-name = "bl_vddpos_5p5";
69		regulator-min-microvolt = <5500000>;
70		regulator-max-microvolt = <5500000>;
71		regulator-enable-ramp-delay = <233>;
72		gpio = <&tlmm 130 GPIO_ACTIVE_HIGH>;
73		enable-active-high;
74		regulator-boot-on;
75	};
76
77	bl_vddneg_5p5: bl-vddneg-regulator {
78		compatible = "regulator-fixed";
79		regulator-name = "bl_vddneg_5p5";
80		regulator-min-microvolt = <5500000>;
81		regulator-max-microvolt = <5500000>;
82		regulator-enable-ramp-delay = <233>;
83		gpio = <&tlmm 131 GPIO_ACTIVE_HIGH>;
84		enable-active-high;
85		regulator-boot-on;
86	};
87
88	gpio_keys: gpio-keys {
89		compatible = "gpio-keys";
90
91		pinctrl-names = "default";
92		pinctrl-0 = <&vol_up_n>;
93
94		key-vol-up {
95			label = "Volume Up";
96			gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
97			linux,code = <KEY_VOLUMEUP>;
98			debounce-interval = <15>;
99			linux,can-disable;
100			wakeup-source;
101		};
102	};
103
104	qca6390-pmu {
105		compatible = "qcom,qca6390-pmu";
106
107		pinctrl-names = "default";
108		pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
109
110		vddaon-supply = <&vreg_s6a_0p95>;
111		vddpmu-supply = <&vreg_s6a_0p95>;
112		vddrfa0p95-supply = <&vreg_s6a_0p95>;
113		vddrfa1p3-supply = <&vreg_s8c_1p35>;
114		vddrfa1p9-supply = <&vreg_s5a_1p9>;
115		vddpcie1p3-supply = <&vreg_s8c_1p35>;
116		vddpcie1p9-supply = <&vreg_s5a_1p9>;
117		vddio-supply = <&vreg_s4a_1p8>;
118
119		wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
120		bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
121
122		regulators {
123			vreg_pmu_rfa_cmn: ldo0 {
124				regulator-name = "vreg_pmu_rfa_cmn";
125			};
126
127			vreg_pmu_aon_0p59: ldo1 {
128				regulator-name = "vreg_pmu_aon_0p59";
129			};
130
131			vreg_pmu_wlcx_0p8: ldo2 {
132				regulator-name = "vreg_pmu_wlcx_0p8";
133			};
134
135			vreg_pmu_wlmx_0p85: ldo3 {
136				regulator-name = "vreg_pmu_wlmx_0p85";
137			};
138
139			vreg_pmu_btcmx_0p85: ldo4 {
140				regulator-name = "vreg_pmu_btcmx_0p85";
141			};
142
143			vreg_pmu_rfa_0p8: ldo5 {
144				regulator-name = "vreg_pmu_rfa_0p8";
145			};
146
147			vreg_pmu_rfa_1p2: ldo6 {
148				regulator-name = "vreg_pmu_rfa_1p2";
149			};
150
151			vreg_pmu_rfa_1p7: ldo7 {
152				regulator-name = "vreg_pmu_rfa_1p7";
153			};
154
155			vreg_pmu_pcie_0p9: ldo8 {
156				regulator-name = "vreg_pmu_pcie_0p9";
157			};
158
159			vreg_pmu_pcie_1p8: ldo9 {
160				regulator-name = "vreg_pmu_pcie_1p8";
161			};
162		};
163	};
164
165	vph_pwr: vph-pwr-regulator {
166		compatible = "regulator-fixed";
167		regulator-name = "vph_pwr";
168		regulator-min-microvolt = <3700000>;
169		regulator-max-microvolt = <3700000>;
170	};
171
172	/* S6c is really ebi.lvl but it's there for supply map completeness sake. */
173	vreg_s6c_0p88: smpc6-regulator {
174		compatible = "regulator-fixed";
175		regulator-name = "vreg_s6c_0p88";
176		regulator-min-microvolt = <880000>;
177		regulator-max-microvolt = <880000>;
178		regulator-always-on;
179		vin-supply = <&vph_pwr>;
180	};
181
182	reserved-memory {
183		xbl_aop_mem: xbl-aop@80600000 {
184			reg = <0x0 0x80600000 0x0 0x260000>;
185			no-map;
186		};
187
188		slpi_mem: slpi@88c00000 {
189			reg = <0x0 0x88c00000 0x0 0x2f00000>;
190			no-map;
191		};
192
193		adsp_mem: adsp@8bb00000 {
194			reg = <0x0 0x8bb00000 0x0 0x2500000>;
195			no-map;
196		};
197
198		spss_mem: spss@8e000000 {
199			reg = <0x0 0x8e000000 0x0 0x100000>;
200			no-map;
201		};
202
203		cdsp_secure_heap: cdsp-secure-heap@8e100000 {
204			reg = <0x0 0x8e100000 0x0 0x4600000>;
205			no-map;
206		};
207
208		cont_splash_mem: cont-splash@9c000000 {
209			reg = <0x0 0x9c000000 0x0 0x2300000>;
210			no-map;
211		};
212
213		ramoops@b0000000 {
214			compatible = "ramoops";
215			reg = <0x0 0xb0000000 0x0 0x400000>;
216			record-size = <0x1000>;
217			console-size = <0x200000>;
218			ecc-size = <16>;
219			no-map;
220		};
221	};
222};
223
224&adsp {
225	firmware-name = "qcom/sm8250/xiaomi/elish/adsp.mbn";
226	status = "okay";
227};
228
229&apps_rsc {
230	regulators-0 {
231		compatible = "qcom,pm8150-rpmh-regulators";
232		qcom,pmic-id = "a";
233
234		vdd-s1-supply = <&vph_pwr>;
235		vdd-s2-supply = <&vph_pwr>;
236		vdd-s3-supply = <&vph_pwr>;
237		vdd-s4-supply = <&vph_pwr>;
238		vdd-s5-supply = <&vph_pwr>;
239		vdd-s6-supply = <&vph_pwr>;
240		vdd-s7-supply = <&vph_pwr>;
241		vdd-s8-supply = <&vph_pwr>;
242		vdd-s9-supply = <&vph_pwr>;
243		vdd-s10-supply = <&vph_pwr>;
244		vdd-l1-l8-l11-supply = <&vreg_s6c_0p88>;
245		vdd-l2-l10-supply = <&vreg_bob>;
246		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p95>;
247		vdd-l6-l9-supply = <&vreg_s8c_1p35>;
248		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;
249		vdd-l13-l16-l17-supply = <&vreg_bob>;
250
251		/* (S1+S2+S3) - cx.lvl (ARC) */
252
253		vreg_s4a_1p8: smps4 {
254			regulator-name = "vreg_s4a_1p8";
255			regulator-min-microvolt = <1800000>;
256			regulator-max-microvolt = <1920000>;
257			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
258			regulator-allow-set-load;
259			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
260						   RPMH_REGULATOR_MODE_HPM>;
261		};
262
263		vreg_s5a_1p9: smps5 {
264			regulator-name = "vreg_s5a_1p9";
265			regulator-min-microvolt = <1900000>;
266			regulator-max-microvolt = <2040000>;
267			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
268		};
269
270		vreg_s6a_0p95: smps6 {
271			regulator-name = "vreg_s6a_0p95";
272			regulator-min-microvolt = <950000>;
273			regulator-max-microvolt = <1128000>;
274			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
275		};
276
277		vreg_l2a_3p1: ldo2 {
278			regulator-name = "vreg_l2a_3p1";
279			regulator-min-microvolt = <3072000>;
280			regulator-max-microvolt = <3072000>;
281			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
282		};
283
284		vreg_l3a_0p9: ldo3 {
285			regulator-name = "vreg_l3a_0p9";
286			regulator-min-microvolt = <928000>;
287			regulator-max-microvolt = <932000>;
288			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
289		};
290
291		/* L4 - lmx.lvl (ARC) */
292
293		vreg_l5a_0p88: ldo5 {
294			regulator-name = "vreg_l5a_0p88";
295			regulator-min-microvolt = <880000>;
296			regulator-max-microvolt = <880000>;
297			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
298		};
299
300		vreg_l6a_1p2: ldo6 {
301			regulator-name = "vreg_l6a_1p2";
302			regulator-min-microvolt = <1200000>;
303			regulator-max-microvolt = <1200000>;
304			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305			regulator-allow-set-load;
306			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
307						   RPMH_REGULATOR_MODE_HPM>;
308		};
309
310		/* L7 is unused. */
311
312		vreg_l9a_1p2: ldo9 {
313			regulator-name = "vreg_l9a_1p2";
314			regulator-min-microvolt = <1200000>;
315			regulator-max-microvolt = <1200000>;
316			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
317		};
318
319		/* L10 is unused, L11 - lcx.lvl (ARC) */
320
321		vreg_l12a_1p8: ldo12 {
322			regulator-name = "vreg_l12a_1p8";
323			regulator-min-microvolt = <1800000>;
324			regulator-max-microvolt = <1800000>;
325			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
326		};
327
328		/* L13 is unused. */
329
330		vreg_l14a_1p88: ldo14 {
331			regulator-name = "vreg_l14a_1p88";
332			regulator-min-microvolt = <1880000>;
333			regulator-max-microvolt = <1880000>;
334			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
335		};
336
337		/* L15 & L16 are unused. */
338
339		vreg_l17a_3p0: ldo17 {
340			regulator-name = "vreg_l17a_3p0";
341			regulator-min-microvolt = <2496000>;
342			regulator-max-microvolt = <3008000>;
343			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
344			regulator-allow-set-load;
345			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
346						   RPMH_REGULATOR_MODE_HPM>;
347		};
348
349		vreg_l18a_0p9: ldo18 {
350			regulator-name = "vreg_l18a_0p9";
351			regulator-min-microvolt = <800000>;
352			regulator-max-microvolt = <920000>;
353			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
354		};
355	};
356
357	/*
358	 * Remaining regulators that are not yet supported:
359	 * OLEDB: 4925000-8100000
360	 * ab: 4600000-6100000
361	 * ibb: 800000-5400000
362	 */
363	regulators-1 {
364		compatible = "qcom,pm8150l-rpmh-regulators";
365		qcom,pmic-id = "c";
366
367		vdd-s1-supply = <&vph_pwr>;
368		vdd-s2-supply = <&vph_pwr>;
369		vdd-s3-supply = <&vph_pwr>;
370		vdd-s4-supply = <&vph_pwr>;
371		vdd-s5-supply = <&vph_pwr>;
372		vdd-s6-supply = <&vph_pwr>;
373		vdd-s7-supply = <&vph_pwr>;
374		vdd-s8-supply = <&vph_pwr>;
375		vdd-l1-l8-supply = <&vreg_s4a_1p8>;
376		vdd-l2-l3-supply = <&vreg_s8c_1p35>;
377		vdd-l4-l5-l6-supply = <&vreg_bob>;
378		vdd-l7-l11-supply = <&vreg_bob>;
379		vdd-l9-l10-supply = <&vreg_bob>;
380		vdd-bob-supply = <&vph_pwr>;
381
382		vreg_bob: bob {
383			regulator-name = "vreg_bob";
384			regulator-min-microvolt = <3350000>;
385			regulator-max-microvolt = <3960000>;
386			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
387		};
388
389		/*
390		 * S1-S6 are ARCs:
391		 * (S1+S2) - gfx.lvl,
392		 * S3 - mx.lvl,
393		 * (S4+S5) - mmcx.lvl,
394		 * S6 - ebi.lvl
395		 */
396
397		vreg_s7c_0p35: smps7 {
398			regulator-name = "vreg_s7c_0p35";
399			regulator-min-microvolt = <348000>;
400			regulator-max-microvolt = <1000000>;
401			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
402		};
403
404		vreg_s8c_1p35: smps8 {
405			regulator-name = "vreg_s8c_1p35";
406			regulator-min-microvolt = <1350000>;
407			regulator-max-microvolt = <1400000>;
408			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
409		};
410
411		vreg_l1c_1p8: ldo1 {
412			regulator-name = "vreg_l1c_1p8";
413			regulator-min-microvolt = <1800000>;
414			regulator-max-microvolt = <1800000>;
415			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
416		};
417
418		/* L2-4 are unused. */
419
420		vreg_l5c_1p8: ldo5 {
421			regulator-name = "vreg_l5c_1p8";
422			regulator-min-microvolt = <1800000>;
423			regulator-max-microvolt = <2800000>;
424			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
425		};
426
427		vreg_l6c_2p9: ldo6 {
428			regulator-name = "vreg_l6c_2p9";
429			regulator-min-microvolt = <1800000>;
430			regulator-max-microvolt = <2960000>;
431			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
432			regulator-allow-set-load;
433			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
434						   RPMH_REGULATOR_MODE_HPM>;
435		};
436
437		vreg_l7c_2p85: ldo7 {
438			regulator-name = "vreg_l7c_2p85";
439			regulator-min-microvolt = <2856000>;
440			regulator-max-microvolt = <3104000>;
441			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
442		};
443
444		vreg_l8c_1p8: ldo8 {
445			regulator-name = "vreg_l8c_1p8";
446			regulator-min-microvolt = <1800000>;
447			regulator-max-microvolt = <1800000>;
448			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
449		};
450
451		vreg_l9c_2p9: ldo9 {
452			regulator-name = "vreg_l9c_2p9";
453			regulator-min-microvolt = <2704000>;
454			regulator-max-microvolt = <2960000>;
455			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
456			regulator-allow-set-load;
457			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
458						   RPMH_REGULATOR_MODE_HPM>;
459		};
460
461		vreg_l10c_3p3: ldo10 {
462			regulator-name = "vreg_l10c_3p3";
463			regulator-min-microvolt = <3296000>;
464			regulator-max-microvolt = <3296000>;
465			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
466		};
467
468		vreg_l11c_3p0: ldo11 {
469			regulator-name = "vreg_l11c_3p0";
470			regulator-min-microvolt = <3000000>;
471			regulator-max-microvolt = <3000000>;
472			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
473		};
474	};
475
476	regulators-2 {
477		compatible = "qcom,pm8009-rpmh-regulators";
478		qcom,pmic-id = "f";
479
480		vdd-s1-supply = <&vph_pwr>;
481		vdd-s2-supply = <&vreg_bob>;
482		vdd-l2-supply = <&vreg_s8c_1p35>;
483		vdd-l5-l6-supply = <&vreg_bob>;
484		vdd-l7-supply = <&vreg_s4a_1p8>;
485
486		vreg_s1f_1p2: smps1 {
487			regulator-name = "vreg_s1f_1p2";
488			regulator-min-microvolt = <1200000>;
489			regulator-max-microvolt = <1200000>;
490			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
491		};
492
493		vreg_s2f_0p5: smps2 {
494			regulator-name = "vreg_s2f_0p5";
495			regulator-min-microvolt = <512000>;
496			regulator-max-microvolt = <1100000>;
497			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
498		};
499
500		/* L1 is unused. */
501
502		vreg_l2f_1p3: ldo2 {
503			regulator-name = "vreg_l2f_1p3";
504			regulator-min-microvolt = <1304000>;
505			regulator-max-microvolt = <1304000>;
506			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
507		};
508
509		/* L3 & L4 are unused. */
510
511		vreg_l5f_2p8: ldo5 {
512			regulator-name = "vreg_l5f_2p85";
513			regulator-min-microvolt = <2800000>;
514			regulator-max-microvolt = <2800000>;
515			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
516		};
517
518		vreg_l6f_2p8: ldo6 {
519			regulator-name = "vreg_l6f_2p8";
520			regulator-min-microvolt = <2800000>;
521			regulator-max-microvolt = <2800000>;
522			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
523		};
524
525		vreg_l7f_1p8: ldo7 {
526			regulator-name = "vreg_l7f_1p8";
527			regulator-min-microvolt = <1800000>;
528			regulator-max-microvolt = <1800000>;
529			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
530		};
531	};
532};
533
534&cdsp {
535	firmware-name = "qcom/sm8250/xiaomi/elish/cdsp.mbn";
536	status = "okay";
537};
538
539&gmu {
540	status = "okay";
541};
542
543&gpi_dma0 {
544	status = "okay";
545};
546
547&gpi_dma1 {
548	status = "okay";
549};
550
551&gpi_dma2 {
552	status = "okay";
553};
554
555&gpu {
556	status = "okay";
557
558	zap-shader {
559		memory-region = <&gpu_mem>;
560		firmware-name = "qcom/sm8250/xiaomi/elish/a650_zap.mbn";
561	};
562};
563
564&i2c0 {
565	clock-frequency = <400000>;
566	status = "okay";
567
568	fuel-gauge@55 {
569		compatible = "ti,bq27z561";
570		reg = <0x55>;
571		monitored-battery = <&battery_r>;
572	};
573};
574
575&i2c11 {
576	clock-frequency = <400000>;
577	status = "okay";
578
579	backlight: backlight@11 {
580		compatible = "kinetic,ktz8866";
581		reg = <0x11>;
582		vddpos-supply = <&bl_vddpos_5p5>;
583		vddneg-supply = <&bl_vddneg_5p5>;
584		enable-gpios = <&tlmm 139 GPIO_ACTIVE_HIGH>;
585		current-num-sinks = <5>;
586		kinetic,current-ramp-delay-ms = <128>;
587		kinetic,led-enable-ramp-delay-ms = <1>;
588		kinetic,enable-lcd-bias;
589	};
590};
591
592&i2c13 {
593	clock-frequency = <400000>;
594	status = "okay";
595
596	fuel-gauge@55 {
597		compatible = "ti,bq27z561";
598		reg = <0x55>;
599		monitored-battery = <&battery_l>;
600	};
601};
602
603&mdss {
604	status = "okay";
605};
606
607&mdss_dsi0 {
608	vdda-supply = <&vreg_l9a_1p2>;
609	qcom,dual-dsi-mode;
610	qcom,sync-dual-dsi;
611	qcom,master-dsi;
612	status = "okay";
613
614	display_panel: panel@0 {
615		reg = <0>;
616		vddio-supply = <&vreg_l14a_1p88>;
617		reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
618		backlight = <&backlight>;
619		rotation = <90>;
620
621		status = "disabled";
622
623		ports {
624			#address-cells = <1>;
625			#size-cells = <0>;
626
627			port@0 {
628				reg = <0>;
629
630				panel_in_0: endpoint {
631					remote-endpoint = <&mdss_dsi0_out>;
632				};
633			};
634
635			port@1 {
636				reg = <1>;
637
638				panel_in_1: endpoint {
639					remote-endpoint = <&mdss_dsi1_out>;
640				};
641			};
642		};
643	};
644};
645
646&mdss_dsi0_out {
647	data-lanes = <0 1 2>;
648	remote-endpoint = <&panel_in_0>;
649};
650
651&mdss_dsi0_phy {
652	vdds-supply = <&vreg_l5a_0p88>;
653	phy-type = <PHY_TYPE_CPHY>;
654	status = "okay";
655};
656
657&mdss_dsi1 {
658	vdda-supply = <&vreg_l9a_1p2>;
659	qcom,dual-dsi-mode;
660	qcom,sync-dual-dsi;
661	/* DSI1 is slave, so use DSI0 clocks */
662	assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
663	status = "okay";
664};
665
666&mdss_dsi1_out {
667	data-lanes = <0 1 2>;
668	remote-endpoint = <&panel_in_1>;
669};
670
671&mdss_dsi1_phy {
672	vdds-supply = <&vreg_l5a_0p88>;
673	phy-type = <PHY_TYPE_CPHY>;
674	status = "okay";
675};
676
677&pcie0 {
678	status = "okay";
679};
680
681&pcie0_phy {
682	vdda-phy-supply = <&vreg_l5a_0p88>;
683	vdda-pll-supply = <&vreg_l9a_1p2>;
684	status = "okay";
685};
686
687&pcieport0 {
688	wifi@0 {
689		compatible = "pci17cb,1101";
690		reg = <0x10000 0x0 0x0 0x0 0x0>;
691
692		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
693		vddaon-supply = <&vreg_pmu_aon_0p59>;
694		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
695		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
696		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
697		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
698		vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
699		vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
700		vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
701
702		qcom,ath11k-calibration-variant = "Xiaomi_Pad_5Pro";
703	};
704};
705
706&pm8150_gpios {
707	vol_up_n: vol-up-n-state {
708		pins = "gpio6";
709		function = "normal";
710		power-source = <1>;
711		input-enable;
712		bias-pull-up;
713	};
714};
715
716&pm8150b_typec {
717	vdd-pdphy-supply = <&vreg_l2a_3p1>;
718	status = "okay";
719
720	connector {
721		compatible = "usb-c-connector";
722
723		op-sink-microwatt = <10000000>;
724		power-role = "dual";
725		data-role = "dual";
726		self-powered;
727
728		source-pdos = <PDO_FIXED(5000, 3000,
729					 PDO_FIXED_DUAL_ROLE |
730					 PDO_FIXED_USB_COMM |
731					 PDO_FIXED_DATA_SWAP)>;
732
733		sink-pdos = <PDO_FIXED(5000, 3000,
734				       PDO_FIXED_DUAL_ROLE |
735				       PDO_FIXED_USB_COMM |
736				       PDO_FIXED_DATA_SWAP)
737				       PDO_VAR(5000, 12000, 5000)>;
738
739		ports {
740			#address-cells = <1>;
741			#size-cells = <0>;
742
743			port@0 {
744				reg = <0>;
745
746				pm8150b_hs_in: endpoint {
747					remote-endpoint = <&usb_1_dwc3_hs_out>;
748				};
749			};
750		};
751	};
752};
753
754&pm8150b_vbus {
755	regulator-min-microamp = <500000>;
756	regulator-max-microamp = <3000000>;
757	status = "okay";
758};
759
760&pon {
761	mode-bootloader = <0x2>;
762	mode-recovery = <0x1>;
763};
764
765&pon_pwrkey {
766	status = "okay";
767};
768
769&pon_resin {
770	linux,code = <KEY_VOLUMEDOWN>;
771	status = "okay";
772};
773
774&qupv3_id_0 {
775	status = "okay";
776};
777
778&qupv3_id_1 {
779	status = "okay";
780};
781
782&qupv3_id_2 {
783	status = "okay";
784};
785
786&slpi {
787	firmware-name = "qcom/sm8250/xiaomi/elish/slpi.mbn";
788	status = "okay";
789};
790
791&tlmm {
792	gpio-reserved-ranges = <40 4>;
793
794	bt_en_state: bt-default-state {
795		pins = "gpio21";
796		function = "gpio";
797		drive-strength = <16>;
798		output-low;
799		bias-pull-up;
800	};
801
802	wlan_en_state: wlan-default-state {
803		pins = "gpio20";
804		function = "gpio";
805		drive-strength = <16>;
806		output-low;
807		bias-pull-up;
808	};
809};
810
811&uart6 {
812	status = "okay";
813
814	bluetooth {
815		compatible = "qcom,qca6390-bt";
816
817		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
818		vddaon-supply = <&vreg_pmu_aon_0p59>;
819		vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
820		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
821		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
822		vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
823	};
824};
825
826&usb_1 {
827	/* USB 2.0 only */
828	qcom,select-utmi-as-pipe-clk;
829	status = "okay";
830};
831
832&usb_1_dwc3 {
833	dr_mode = "otg";
834	maximum-speed = "high-speed";
835	/* Remove USB3 phy */
836	phys = <&usb_1_hsphy>;
837	phy-names = "usb2-phy";
838	usb-role-switch;
839};
840
841&usb_1_hsphy {
842	vdda-pll-supply = <&vreg_l5a_0p88>;
843	vdda18-supply = <&vreg_l12a_1p8>;
844	vdda33-supply = <&vreg_l2a_3p1>;
845	status = "okay";
846};
847
848&usb_1_dwc3_hs_out {
849	remote-endpoint = <&pm8150b_hs_in>;
850};
851
852&ufs_mem_hc {
853	vcc-supply = <&vreg_l17a_3p0>;
854	vcc-max-microamp = <800000>;
855	vccq-supply = <&vreg_l6a_1p2>;
856	vccq-max-microamp = <800000>;
857	vccq2-supply = <&vreg_s4a_1p8>;
858	vccq2-max-microamp = <800000>;
859	status = "okay";
860};
861
862&ufs_mem_phy {
863	vdda-phy-supply = <&vreg_l5a_0p88>;
864	vdda-pll-supply = <&vreg_l9a_1p2>;
865	status = "okay";
866};
867
868&venus {
869	firmware-name = "qcom/sm8250/xiaomi/elish/venus.mbn";
870	status = "okay";
871};
872