1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023 Linaro Limited
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/common.h>
9#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10#include "sm8550.dtsi"
11#include "pm8010.dtsi"
12#include "pm8550.dtsi"
13#include "pm8550b.dtsi"
14#include "pm8550ve.dtsi"
15#include "pm8550vs.dtsi"
16#include "pmk8550.dtsi"
17#include "pmr735d.dtsi"
18
19/ {
20	model = "Qualcomm Technologies, Inc. SM8550 QRD";
21	compatible = "qcom,sm8550-qrd", "qcom,sm8550";
22
23	aliases {
24		serial0 = &uart7;
25	};
26
27	wcd938x: audio-codec {
28		compatible = "qcom,wcd9385-codec";
29
30		pinctrl-names = "default";
31		pinctrl-0 = <&wcd_default>;
32
33		qcom,micbias1-microvolt = <1800000>;
34		qcom,micbias2-microvolt = <1800000>;
35		qcom,micbias3-microvolt = <1800000>;
36		qcom,micbias4-microvolt = <1800000>;
37		qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
38		qcom,mbhc-headset-vthreshold-microvolt = <1700000>;
39		qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
40		qcom,rx-device = <&wcd_rx>;
41		qcom,tx-device = <&wcd_tx>;
42
43		reset-gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
44
45		vdd-buck-supply = <&vreg_l15b_1p8>;
46		vdd-rxtx-supply = <&vreg_l15b_1p8>;
47		vdd-io-supply = <&vreg_l15b_1p8>;
48		vdd-mic-bias-supply = <&vreg_bob1>;
49
50		#sound-dai-cells = <1>;
51	};
52
53	chosen {
54		stdout-path = "serial0:115200n8";
55	};
56
57	pmic-glink {
58		compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
59		#address-cells = <1>;
60		#size-cells = <0>;
61
62		connector@0 {
63			compatible = "usb-c-connector";
64			reg = <0>;
65			power-role = "dual";
66			data-role = "dual";
67
68			ports {
69				#address-cells = <1>;
70				#size-cells = <0>;
71
72				port@0 {
73					reg = <0>;
74
75					pmic_glink_hs_in: endpoint {
76						remote-endpoint = <&usb_1_dwc3_hs>;
77					};
78				};
79
80				port@1 {
81					reg = <1>;
82
83					pmic_glink_ss_in: endpoint {
84						remote-endpoint = <&usb_1_dwc3_ss>;
85					};
86				};
87			};
88		};
89	};
90
91	vph_pwr: vph-pwr-regulator {
92		compatible = "regulator-fixed";
93		regulator-name = "vph_pwr";
94		regulator-min-microvolt = <3700000>;
95		regulator-max-microvolt = <3700000>;
96
97		regulator-always-on;
98		regulator-boot-on;
99	};
100};
101
102&apps_rsc {
103	regulators-0 {
104		compatible = "qcom,pm8550-rpmh-regulators";
105		qcom,pmic-id = "b";
106
107		vdd-bob1-supply = <&vph_pwr>;
108		vdd-bob2-supply = <&vph_pwr>;
109		vdd-l1-l4-l10-supply = <&vreg_s6g_1p86>;
110		vdd-l2-l13-l14-supply = <&vreg_bob1>;
111		vdd-l3-supply = <&vreg_s4g_1p25>;
112		vdd-l5-l16-supply = <&vreg_bob1>;
113		vdd-l6-l7-supply = <&vreg_bob1>;
114		vdd-l8-l9-supply = <&vreg_bob1>;
115		vdd-l11-supply = <&vreg_s4g_1p25>;
116		vdd-l12-supply = <&vreg_s6g_1p86>;
117		vdd-l15-supply = <&vreg_s6g_1p86>;
118		vdd-l17-supply = <&vreg_bob2>;
119
120		vreg_bob1: bob1 {
121			regulator-name = "vreg_bob1";
122			regulator-min-microvolt = <3296000>;
123			regulator-max-microvolt = <3960000>;
124			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
125		};
126
127		vreg_bob2: bob2 {
128			regulator-name = "vreg_bob2";
129			regulator-min-microvolt = <2720000>;
130			regulator-max-microvolt = <3960000>;
131			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
132		};
133
134		vreg_l1b_1p8: ldo1 {
135			regulator-name = "vreg_l1b_1p8";
136			regulator-min-microvolt = <1800000>;
137			regulator-max-microvolt = <1800000>;
138			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
139		};
140
141		vreg_l2b_3p0: ldo2 {
142			regulator-name = "vreg_l2b_3p0";
143			regulator-min-microvolt = <3008000>;
144			regulator-max-microvolt = <3008000>;
145			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
146		};
147
148		vreg_l5b_3p1: ldo5 {
149			regulator-name = "vreg_l5b_3p1";
150			regulator-min-microvolt = <3104000>;
151			regulator-max-microvolt = <3104000>;
152			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
153		};
154
155		vreg_l6b_1p8: ldo6 {
156			regulator-name = "vreg_l6b_1p8";
157			regulator-min-microvolt = <1800000>;
158			regulator-max-microvolt = <3008000>;
159			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
160		};
161
162		vreg_l7b_1p8: ldo7 {
163			regulator-name = "vreg_l7b_1p8";
164			regulator-min-microvolt = <1800000>;
165			regulator-max-microvolt = <3008000>;
166			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
167		};
168
169		vreg_l8b_1p8: ldo8 {
170			regulator-name = "vreg_l8b_1p8";
171			regulator-min-microvolt = <1800000>;
172			regulator-max-microvolt = <3008000>;
173			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
174		};
175
176		vreg_l9b_2p9: ldo9 {
177			regulator-name = "vreg_l9b_2p9";
178			regulator-min-microvolt = <2960000>;
179			regulator-max-microvolt = <3008000>;
180			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
181		};
182
183		vreg_l11b_1p2: ldo11 {
184			regulator-name = "vreg_l11b_1p2";
185			regulator-min-microvolt = <1200000>;
186			regulator-max-microvolt = <1504000>;
187			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
188		};
189
190		vreg_l12b_1p8: ldo12 {
191			regulator-name = "vreg_l12b_1p8";
192			regulator-min-microvolt = <1800000>;
193			regulator-max-microvolt = <1800000>;
194			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
195		};
196
197		vreg_l13b_3p0: ldo13 {
198			regulator-name = "vreg_l13b_3p0";
199			regulator-min-microvolt = <3000000>;
200			regulator-max-microvolt = <3000000>;
201			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
202		};
203
204		vreg_l14b_3p2: ldo14 {
205			regulator-name = "vreg_l14b_3p2";
206			regulator-min-microvolt = <3200000>;
207			regulator-max-microvolt = <3200000>;
208			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
209		};
210
211		vreg_l15b_1p8: ldo15 {
212			regulator-name = "vreg_l15b_1p8";
213			regulator-min-microvolt = <1800000>;
214			regulator-max-microvolt = <1800000>;
215			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
216		};
217
218		vreg_l16b_2p8: ldo16 {
219			regulator-name = "vreg_l16b_2p8";
220			regulator-min-microvolt = <2800000>;
221			regulator-max-microvolt = <2800000>;
222			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
223		};
224
225		vreg_l17b_2p5: ldo17 {
226			regulator-name = "vreg_l17b_2p5";
227			regulator-min-microvolt = <2504000>;
228			regulator-max-microvolt = <2504000>;
229			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
230		};
231	};
232
233	regulators-1 {
234		compatible = "qcom,pm8550vs-rpmh-regulators";
235		qcom,pmic-id = "c";
236
237		vdd-l1-supply = <&vreg_s4g_1p25>;
238		vdd-l2-supply = <&vreg_s4e_0p95>;
239		vdd-l3-supply = <&vreg_s4e_0p95>;
240
241		vreg_l3c_0p9: ldo3 {
242			regulator-name = "vreg_l3c_0p9";
243			regulator-min-microvolt = <880000>;
244			regulator-max-microvolt = <912000>;
245			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
246		};
247	};
248
249	regulators-2 {
250		compatible = "qcom,pm8550vs-rpmh-regulators";
251		qcom,pmic-id = "d";
252
253		vdd-l1-supply = <&vreg_s4e_0p95>;
254		vdd-l2-supply = <&vreg_s4e_0p95>;
255		vdd-l3-supply = <&vreg_s4e_0p95>;
256
257		vreg_l1d_0p88: ldo1 {
258			regulator-name = "vreg_l1d_0p88";
259			regulator-min-microvolt = <880000>;
260			regulator-max-microvolt = <920000>;
261			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
262		};
263
264		/* ldo2 supplies SM8550 VDD_LPI_MX */
265	};
266
267	regulators-3 {
268		compatible = "qcom,pm8550vs-rpmh-regulators";
269		qcom,pmic-id = "e";
270
271		vdd-l1-supply = <&vreg_s4e_0p95>;
272		vdd-l2-supply = <&vreg_s4e_0p95>;
273		vdd-l3-supply = <&vreg_s4g_1p25>;
274		vdd-s4-supply = <&vph_pwr>;
275		vdd-s5-supply = <&vph_pwr>;
276
277		vreg_s4e_0p95: smps4 {
278			regulator-name = "vreg_s4e_0p95";
279			regulator-min-microvolt = <904000>;
280			regulator-max-microvolt = <984000>;
281			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
282		};
283
284		vreg_s5e_1p08: smps5 {
285			regulator-name = "vreg_s5e_1p08";
286			regulator-min-microvolt = <1080000>;
287			regulator-max-microvolt = <1120000>;
288			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
289		};
290
291		vreg_l1e_0p88: ldo1 {
292			regulator-name = "vreg_l1e_0p88";
293			regulator-min-microvolt = <880000>;
294			regulator-max-microvolt = <880000>;
295			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
296		};
297
298		vreg_l2e_0p9: ldo2 {
299			regulator-name = "vreg_l2e_0p9";
300			regulator-min-microvolt = <904000>;
301			regulator-max-microvolt = <970000>;
302			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303		};
304
305		vreg_l3e_1p2: ldo3 {
306			regulator-name = "vreg_l3e_1p2";
307			regulator-min-microvolt = <1200000>;
308			regulator-max-microvolt = <1200000>;
309			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
310		};
311	};
312
313	regulators-4 {
314		compatible = "qcom,pm8550ve-rpmh-regulators";
315		qcom,pmic-id = "f";
316
317		vdd-l1-supply = <&vreg_s4e_0p95>;
318		vdd-l2-supply = <&vreg_s4e_0p95>;
319		vdd-l3-supply = <&vreg_s4e_0p95>;
320		vdd-s4-supply = <&vph_pwr>;
321
322		vreg_s4f_0p5: smps4 {
323			regulator-name = "vreg_s4f_0p5";
324			regulator-min-microvolt = <500000>;
325			regulator-max-microvolt = <700000>;
326			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
327		};
328
329		vreg_l1f_0p9: ldo1 {
330			regulator-name = "vreg_l1f_0p9";
331			regulator-min-microvolt = <912000>;
332			regulator-max-microvolt = <912000>;
333			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
334		};
335
336		vreg_l2f_0p88: ldo2 {
337			regulator-name = "vreg_l2f_0p88";
338			regulator-min-microvolt = <880000>;
339			regulator-max-microvolt = <912000>;
340			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
341		};
342
343		vreg_l3f_0p88: ldo3 {
344			regulator-name = "vreg_l3f_0p88";
345			regulator-min-microvolt = <880000>;
346			regulator-max-microvolt = <912000>;
347			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
348		};
349	};
350
351	regulators-5 {
352		compatible = "qcom,pm8550vs-rpmh-regulators";
353		qcom,pmic-id = "g";
354
355		vdd-l1-supply = <&vreg_s4g_1p25>;
356		vdd-l2-supply = <&vreg_s4g_1p25>;
357		vdd-l3-supply = <&vreg_s4g_1p25>;
358		vdd-s1-supply = <&vph_pwr>;
359		vdd-s2-supply = <&vph_pwr>;
360		vdd-s3-supply = <&vph_pwr>;
361		vdd-s4-supply = <&vph_pwr>;
362		vdd-s5-supply = <&vph_pwr>;
363		vdd-s6-supply = <&vph_pwr>;
364
365		vreg_s1g_1p25: smps1 {
366			regulator-name = "vreg_s1g_1p25";
367			regulator-min-microvolt = <1200000>;
368			regulator-max-microvolt = <1300000>;
369			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
370		};
371
372		vreg_s2g_0p85: smps2 {
373			regulator-name = "vreg_s2g_0p85";
374			regulator-min-microvolt = <800000>;
375			regulator-max-microvolt = <1000000>;
376			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
377		};
378
379		vreg_s3g_0p8: smps3 {
380			regulator-name = "vreg_s3g_0p8";
381			regulator-min-microvolt = <300000>;
382			regulator-max-microvolt = <1004000>;
383			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
384		};
385
386		vreg_s4g_1p25: smps4 {
387			regulator-name = "vreg_s4g_1p25";
388			regulator-min-microvolt = <1200000>;
389			regulator-max-microvolt = <1352000>;
390			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
391		};
392
393		vreg_s5g_0p85: smps5 {
394			regulator-name = "vreg_s5g_0p85";
395			regulator-min-microvolt = <500000>;
396			regulator-max-microvolt = <1004000>;
397			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
398		};
399
400		vreg_s6g_1p86: smps6 {
401			regulator-name = "vreg_s6g_1p86";
402			regulator-min-microvolt = <1800000>;
403			regulator-max-microvolt = <2000000>;
404			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
405		};
406
407		vreg_l1g_1p2: ldo1 {
408			regulator-name = "vreg_l1g_1p2";
409			regulator-min-microvolt = <1200000>;
410			regulator-max-microvolt = <1200000>;
411			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
412		};
413
414		vreg_l3g_1p2: ldo3 {
415			regulator-name = "vreg_l3g_1p2";
416			regulator-min-microvolt = <1200000>;
417			regulator-max-microvolt = <1200000>;
418			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
419		};
420	};
421};
422
423&gcc {
424	clocks = <&bi_tcxo_div2>, <&sleep_clk>,
425		 <&pcie0_phy>,
426		 <&pcie1_phy>,
427		 <0>,
428		 <&ufs_mem_phy 0>,
429		 <&ufs_mem_phy 1>,
430		 <&ufs_mem_phy 2>,
431		 <&usb_dp_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
432};
433
434&mdss {
435	status = "okay";
436};
437
438&mdss_dsi0 {
439	vdda-supply = <&vreg_l3e_1p2>;
440	status = "okay";
441
442	panel@0 {
443		compatible = "visionox,vtdr6130";
444		reg = <0>;
445
446		pinctrl-0 = <&sde_dsi_active>, <&sde_te_active>;
447		pinctrl-1 = <&sde_dsi_suspend>, <&sde_te_suspend>;
448		pinctrl-names = "default", "sleep";
449
450		vci-supply = <&vreg_l13b_3p0>;
451		vdd-supply = <&vreg_l11b_1p2>;
452		vddio-supply = <&vreg_l12b_1p8>;
453
454		reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
455
456		port {
457			panel0_in: endpoint {
458				remote-endpoint = <&mdss_dsi0_out>;
459			};
460		};
461	};
462};
463
464&mdss_dsi0_out {
465	remote-endpoint = <&panel0_in>;
466	data-lanes = <0 1 2 3>;
467};
468
469&mdss_dsi0_phy {
470	vdds-supply = <&vreg_l1e_0p88>;
471	status = "okay";
472};
473
474&pcie_1_phy_aux_clk {
475	status = "disabled";
476};
477
478&pcie0 {
479	wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
480	perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
481
482	pinctrl-0 = <&pcie0_default_state>;
483	pinctrl-names = "default";
484
485	status = "okay";
486};
487
488&pcie0_phy {
489	vdda-phy-supply = <&vreg_l1e_0p88>;
490	vdda-pll-supply = <&vreg_l3e_1p2>;
491
492	status = "okay";
493};
494
495&pm8550_flash {
496	status = "okay";
497
498	led-0 {
499		function = LED_FUNCTION_FLASH;
500		color = <LED_COLOR_ID_YELLOW>;
501		led-sources = <1>, <4>;
502		led-max-microamp = <500000>;
503		flash-max-microamp = <2000000>;
504		flash-max-timeout-us = <1280000>;
505		function-enumerator = <0>;
506	};
507
508	led-1 {
509		function = LED_FUNCTION_FLASH;
510		color = <LED_COLOR_ID_WHITE>;
511		led-sources = <2>, <3>;
512		led-max-microamp = <500000>;
513		flash-max-microamp = <2000000>;
514		flash-max-timeout-us = <1280000>;
515		function-enumerator = <1>;
516	};
517};
518
519&pm8550b_eusb2_repeater {
520	vdd18-supply = <&vreg_l15b_1p8>;
521	vdd3-supply = <&vreg_l5b_3p1>;
522};
523
524&pcie_1_phy_aux_clk {
525	clock-frequency = <1000>;
526};
527
528&qupv3_id_0 {
529	status = "okay";
530};
531
532&remoteproc_adsp {
533	firmware-name = "qcom/sm8550/adsp.mbn",
534			"qcom/sm8550/adsp_dtb.mbn";
535	status = "okay";
536};
537
538&remoteproc_cdsp {
539	firmware-name = "qcom/sm8550/cdsp.mbn",
540			"qcom/sm8550/cdsp_dtb.mbn";
541	status = "okay";
542};
543
544&remoteproc_mpss {
545	firmware-name = "qcom/sm8550/modem.mbn",
546			"qcom/sm8550/modem_dtb.mbn";
547	status = "okay";
548};
549
550&sleep_clk {
551	clock-frequency = <32000>;
552};
553
554&swr1 {
555	status = "okay";
556
557	/* WCD9385 RX */
558	wcd_rx: codec@0,4 {
559		compatible = "sdw20217010d00";
560		reg = <0 4>;
561		qcom,rx-port-mapping = <1 2 3 4 5>;
562	};
563};
564
565&swr2 {
566	status = "okay";
567
568	/* WCD9385 TX */
569	wcd_tx: codec@0,3 {
570		compatible = "sdw20217010d00";
571		reg = <0 3>;
572		qcom,tx-port-mapping = <1 1 2 3>;
573	};
574};
575
576&tlmm {
577	gpio-reserved-ranges = <32 8>;
578
579	sde_dsi_active: sde-dsi-active-state {
580		pins = "gpio133";
581		function = "gpio";
582		drive-strength = <8>;
583		bias-disable;
584	};
585
586	sde_dsi_suspend: sde-dsi-suspend-state {
587		pins = "gpio133";
588		function = "gpio";
589		drive-strength = <2>;
590		bias-pull-down;
591	};
592
593	sde_te_active: sde-te-active-state {
594		pins = "gpio86";
595		function = "mdp_vsync";
596		drive-strength = <2>;
597		bias-pull-down;
598	};
599
600	sde_te_suspend: sde-te-suspend-state {
601		pins = "gpio86";
602		function = "mdp_vsync";
603		drive-strength = <2>;
604		bias-pull-down;
605	};
606
607	wcd_default: wcd-reset-n-active-state {
608		pins = "gpio108";
609		function = "gpio";
610		drive-strength = <16>;
611		bias-disable;
612		output-low;
613	};
614};
615
616&uart7 {
617	status = "okay";
618};
619
620&ufs_mem_hc {
621	reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
622	vcc-supply = <&vreg_l17b_2p5>;
623	vcc-max-microamp = <1300000>;
624	vccq-supply = <&vreg_l1g_1p2>;
625	vccq-max-microamp = <1200000>;
626	vccq2-supply = <&vreg_l3g_1p2>;
627	vccq2-max-microamp = <100>;
628
629	status = "okay";
630};
631
632&ufs_mem_phy {
633	vdda-phy-supply = <&vreg_l1d_0p88>;
634	vdda-pll-supply = <&vreg_l3e_1p2>;
635
636	status = "okay";
637};
638
639&usb_1 {
640	status = "okay";
641};
642
643&usb_1_dwc3 {
644	dr_mode = "otg";
645	usb-role-switch;
646};
647
648&usb_1_dwc3_hs {
649	remote-endpoint = <&pmic_glink_hs_in>;
650};
651
652&usb_1_dwc3_ss {
653	remote-endpoint = <&pmic_glink_ss_in>;
654};
655
656&usb_1_hsphy {
657	vdd-supply = <&vreg_l1e_0p88>;
658	vdda12-supply = <&vreg_l3e_1p2>;
659
660	phys = <&pm8550b_eusb2_repeater>;
661
662	status = "okay";
663};
664
665&usb_dp_qmpphy {
666	vdda-phy-supply = <&vreg_l3e_1p2>;
667	vdda-pll-supply = <&vreg_l3f_0p88>;
668
669	status = "okay";
670};
671
672&xo_board {
673	clock-frequency = <76800000>;
674};
675