xref: /linux/arch/arm64/boot/dts/qcom/sm8150-hdk.dts (revision 4f77c3462308c62ffe7129cc18b9ac937f44b5a5)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2020, The Linux Foundation. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/usb/pd.h>
11#include "sm8150.dtsi"
12#include "pm8150.dtsi"
13#include "pm8150b.dtsi"
14#include "pm8150l.dtsi"
15
16/ {
17	model = "Qualcomm Technologies, Inc. SM8150 HDK";
18	compatible = "qcom,sm8150-hdk", "qcom,sm8150";
19	chassis-type = "embedded";
20
21	aliases {
22		serial0 = &uart2;
23	};
24
25	chosen {
26		stdout-path = "serial0:115200n8";
27	};
28
29	vph_pwr: vph-pwr-regulator {
30		compatible = "regulator-fixed";
31		regulator-name = "vph_pwr";
32		regulator-min-microvolt = <3700000>;
33		regulator-max-microvolt = <3700000>;
34	};
35
36	vreg_s4a_1p8: pm8150-s4 {
37		compatible = "regulator-fixed";
38		regulator-name = "vreg_s4a_1p8";
39
40		regulator-min-microvolt = <1800000>;
41		regulator-max-microvolt = <1800000>;
42
43		regulator-always-on;
44		regulator-boot-on;
45
46		vin-supply = <&vph_pwr>;
47	};
48
49	gpio-keys {
50		compatible = "gpio-keys";
51
52		key-vol-up {
53			label = "Volume Up";
54			linux,code = <KEY_VOLUMEUP>;
55			gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
56		};
57	};
58
59	hdmi-out {
60		compatible = "hdmi-connector";
61		type = "a";
62
63		port {
64			hdmi_con: endpoint {
65				remote-endpoint = <&lt9611_out>;
66			};
67		};
68	};
69};
70
71&apps_rsc {
72	regulators-0 {
73		compatible = "qcom,pm8150-rpmh-regulators";
74		qcom,pmic-id = "a";
75
76		vdd-s1-supply = <&vph_pwr>;
77		vdd-s2-supply = <&vph_pwr>;
78		vdd-s3-supply = <&vph_pwr>;
79		vdd-s4-supply = <&vph_pwr>;
80		vdd-s5-supply = <&vph_pwr>;
81		vdd-s6-supply = <&vph_pwr>;
82		vdd-s7-supply = <&vph_pwr>;
83		vdd-s8-supply = <&vph_pwr>;
84		vdd-s9-supply = <&vph_pwr>;
85		vdd-s10-supply = <&vph_pwr>;
86
87		vdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;
88		vdd-l2-l10-supply = <&vreg_bob>;
89		vdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;
90		vdd-l6-l9-supply = <&vreg_s8c_1p3>;
91		vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;
92		vdd-l13-l16-l17-supply = <&vreg_bob>;
93
94		vreg_s5a_2p0: smps5 {
95			regulator-min-microvolt = <1904000>;
96			regulator-max-microvolt = <2000000>;
97		};
98
99		vreg_s6a_0p9: smps6 {
100			regulator-min-microvolt = <920000>;
101			regulator-max-microvolt = <1128000>;
102		};
103
104		vdda_wcss_pll:
105		vreg_l1a_0p75: ldo1 {
106			regulator-min-microvolt = <752000>;
107			regulator-max-microvolt = <752000>;
108			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
109		};
110
111		vdd_pdphy:
112		vdda_usb_hs_3p1:
113		vreg_l2a_3p1: ldo2 {
114			regulator-min-microvolt = <3072000>;
115			regulator-max-microvolt = <3072000>;
116			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
117		};
118
119		vreg_l3a_0p8: ldo3 {
120			regulator-min-microvolt = <480000>;
121			regulator-max-microvolt = <932000>;
122			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
123		};
124
125		vdd_usb_hs_core:
126		vdda_csi_0_0p9:
127		vdda_csi_1_0p9:
128		vdda_csi_2_0p9:
129		vdda_csi_3_0p9:
130		vdda_dsi_0_0p9:
131		vdda_dsi_1_0p9:
132		vdda_dsi_0_pll_0p9:
133		vdda_dsi_1_pll_0p9:
134		vdda_pcie_1ln_core:
135		vdda_pcie_2ln_core:
136		vdda_pll_hv_cc_ebi01:
137		vdda_pll_hv_cc_ebi23:
138		vdda_qrefs_0p875_5:
139		vdda_sp_sensor:
140		vdda_ufs_2ln_core_1:
141		vdda_ufs_2ln_core_2:
142		vdda_qlink_lv:
143		vdda_qlink_lv_ck:
144		vreg_l5a_0p875: ldo5 {
145			regulator-min-microvolt = <880000>;
146			regulator-max-microvolt = <880000>;
147			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
148		};
149
150		vreg_l6a_1p2: ldo6 {
151			regulator-min-microvolt = <1200000>;
152			regulator-max-microvolt = <1200000>;
153			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
154		};
155
156		vreg_l7a_1p8: ldo7 {
157			regulator-min-microvolt = <1800000>;
158			regulator-max-microvolt = <1800000>;
159			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
160		};
161
162		vddpx_10:
163		vreg_l9a_1p2: ldo9 {
164			regulator-min-microvolt = <1200000>;
165			regulator-max-microvolt = <1200000>;
166			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
167		};
168
169		vreg_l10a_2p5: ldo10 {
170			regulator-min-microvolt = <2504000>;
171			regulator-max-microvolt = <2960000>;
172			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
173		};
174
175		vreg_l11a_0p8: ldo11 {
176			regulator-min-microvolt = <800000>;
177			regulator-max-microvolt = <800000>;
178			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
179		};
180
181		vdd_qfprom:
182		vdd_qfprom_sp:
183		vdda_apc_cs_1p8:
184		vdda_gfx_cs_1p8:
185		vdda_usb_hs_1p8:
186		vdda_qrefs_vref_1p8:
187		vddpx_10_a:
188		vreg_l12a_1p8: ldo12 {
189			regulator-min-microvolt = <1800000>;
190			regulator-max-microvolt = <1800000>;
191			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
192		};
193
194		vreg_l13a_2p7: ldo13 {
195			regulator-min-microvolt = <2704000>;
196			regulator-max-microvolt = <2704000>;
197			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
198		};
199
200		vreg_l14a_1p8: ldo14 {
201			regulator-min-microvolt = <1800000>;
202			regulator-max-microvolt = <1880000>;
203			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
204		};
205
206		vreg_l15a_1p7: ldo15 {
207			regulator-min-microvolt = <1704000>;
208			regulator-max-microvolt = <1704000>;
209			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
210		};
211
212		vreg_l16a_2p7: ldo16 {
213			regulator-min-microvolt = <2704000>;
214			regulator-max-microvolt = <2960000>;
215			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
216		};
217
218		vreg_l17a_3p0: ldo17 {
219			regulator-min-microvolt = <2856000>;
220			regulator-max-microvolt = <3008000>;
221			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
222		};
223
224		vreg_l18a_0p8: ldo18 {
225			regulator-min-microvolt = <880000>;
226			regulator-max-microvolt = <880000>;
227			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
228		};
229	};
230
231	regulators-1 {
232		compatible = "qcom,pm8150l-rpmh-regulators";
233		qcom,pmic-id = "c";
234
235		vdd-s1-supply = <&vph_pwr>;
236		vdd-s2-supply = <&vph_pwr>;
237		vdd-s3-supply = <&vph_pwr>;
238		vdd-s4-supply = <&vph_pwr>;
239		vdd-s5-supply = <&vph_pwr>;
240		vdd-s6-supply = <&vph_pwr>;
241		vdd-s7-supply = <&vph_pwr>;
242		vdd-s8-supply = <&vph_pwr>;
243
244		vdd-l1-l8-supply = <&vreg_s4a_1p8>;
245		vdd-l2-l3-supply = <&vreg_s8c_1p3>;
246		vdd-l4-l5-l6-supply = <&vreg_bob>;
247		vdd-l7-l11-supply = <&vreg_bob>;
248		vdd-l9-l10-supply = <&vreg_bob>;
249
250		vdd-bob-supply = <&vph_pwr>;
251		vdd-flash-supply = <&vreg_bob>;
252		vdd-rgb-supply = <&vreg_bob>;
253
254		vreg_bob: bob {
255			regulator-min-microvolt = <3008000>;
256			regulator-max-microvolt = <4000000>;
257			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
258			regulator-allow-bypass;
259		};
260
261		vreg_s8c_1p3: smps8 {
262			regulator-min-microvolt = <1352000>;
263			regulator-max-microvolt = <1352000>;
264		};
265
266		vreg_l1c_1p8: ldo1 {
267			regulator-min-microvolt = <1800000>;
268			regulator-max-microvolt = <1800000>;
269			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
270		};
271
272		vdda_wcss_adcdac_1:
273		vdda_wcss_adcdac_22:
274		vreg_l2c_1p3: ldo2 {
275			regulator-min-microvolt = <1304000>;
276			regulator-max-microvolt = <1304000>;
277			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
278		};
279
280		vdda_hv_ebi0:
281		vdda_hv_ebi1:
282		vdda_hv_ebi2:
283		vdda_hv_ebi3:
284		vdda_hv_refgen0:
285		vdda_qlink_hv_ck:
286		vreg_l3c_1p2: ldo3 {
287			regulator-min-microvolt = <1200000>;
288			regulator-max-microvolt = <1200000>;
289			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
290		};
291
292		vddpx_5:
293		vreg_l4c_1p8: ldo4 {
294			regulator-min-microvolt = <1704000>;
295			regulator-max-microvolt = <2928000>;
296			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
297		};
298
299		vddpx_6:
300		vreg_l5c_1p8: ldo5 {
301			regulator-min-microvolt = <1704000>;
302			regulator-max-microvolt = <2928000>;
303			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
304		};
305
306		vddpx_2:
307		vreg_l6c_2p9: ldo6 {
308			regulator-min-microvolt = <1800000>;
309			regulator-max-microvolt = <2960000>;
310			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
311		};
312
313		vreg_l7c_3p0: ldo7 {
314			regulator-min-microvolt = <2856000>;
315			regulator-max-microvolt = <3104000>;
316			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
317		};
318
319		vreg_l8c_1p8: ldo8 {
320			regulator-min-microvolt = <1800000>;
321			regulator-max-microvolt = <1800000>;
322			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
323		};
324
325		vreg_l9c_2p9: ldo9 {
326			regulator-min-microvolt = <2704000>;
327			regulator-max-microvolt = <2960000>;
328			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
329		};
330
331		vreg_l10c_3p3: ldo10 {
332			regulator-min-microvolt = <3000000>;
333			regulator-max-microvolt = <3312000>;
334			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
335		};
336
337		vreg_l11c_3p3: ldo11 {
338			regulator-min-microvolt = <3000000>;
339			regulator-max-microvolt = <3312000>;
340			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
341		};
342	};
343
344	regulators-2 {
345		compatible = "qcom,pm8009-rpmh-regulators";
346		qcom,pmic-id = "f";
347
348		vdd-s1-supply = <&vph_pwr>;
349		vdd-s2-supply = <&vreg_bob>;
350
351		vdd-l2-supply = <&vreg_s8c_1p3>;
352		vdd-l5-l6-supply = <&vreg_bob>;
353
354		vreg_l2f_1p2: ldo2 {
355			regulator-min-microvolt = <1200000>;
356			regulator-max-microvolt = <1200000>;
357			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
358		};
359
360		vreg_l5f_2p85: ldo5 {
361			regulator-min-microvolt = <2800000>;
362			regulator-max-microvolt = <2800000>;
363			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
364		};
365
366		vreg_l6f_2p85: ldo6 {
367			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
368			regulator-min-microvolt = <2856000>;
369			regulator-max-microvolt = <2856000>;
370		};
371	};
372};
373
374&gmu {
375	status = "okay";
376};
377
378&gpi_dma0 {
379	status = "okay";
380};
381
382&gpi_dma1 {
383	status = "okay";
384};
385
386&gpu {
387	status = "okay";
388};
389
390&i2c4 {
391	clock-frequency = <100000>;
392
393	status = "okay";
394
395	typec-mux@42 {
396		compatible = "fcs,fsa4480";
397		reg = <0x42>;
398
399		interrupts-extended = <&tlmm 152 IRQ_TYPE_LEVEL_LOW>;
400
401		vcc-supply = <&vreg_bob>;
402		mode-switch;
403		orientation-switch;
404
405		port {
406			fsa4480_sbu_mux: endpoint {
407				remote-endpoint = <&pm8150b_typec_sbu_out>;
408			};
409		};
410	};
411};
412
413&i2c9 {
414	status = "okay";
415	clock-frequency = <400000>;
416
417	lt9611_codec: hdmi-bridge@3b {
418		compatible = "lontium,lt9611";
419		reg = <0x3b>;
420		#sound-dai-cells = <1>;
421
422		interrupts-extended = <&tlmm 9 IRQ_TYPE_EDGE_FALLING>;
423
424		reset-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
425
426		vdd-supply = <&vreg_s4a_1p8>;
427		vcc-supply = <&vreg_bob>;
428
429		pinctrl-names = "default";
430		pinctrl-0 = <&lt9611_irq_pin>;
431
432		ports {
433			#address-cells = <1>;
434			#size-cells = <0>;
435
436			port@0 {
437				reg = <0>;
438
439				lt9611_a: endpoint {
440					remote-endpoint = <&mdss_dsi0_out>;
441				};
442			};
443
444			port@1 {
445				reg = <1>;
446
447				lt9611_b: endpoint {
448					remote-endpoint = <&mdss_dsi1_out>;
449				};
450			};
451
452			port@2 {
453				reg = <2>;
454
455				lt9611_out: endpoint {
456					remote-endpoint = <&hdmi_con>;
457				};
458			};
459		};
460	};
461};
462
463&mdss {
464	status = "okay";
465};
466
467&mdss_dp {
468	status = "okay";
469};
470
471&mdss_dp_out {
472	data-lanes = <0 1>;
473};
474
475&mdss_dsi0 {
476	status = "okay";
477	vdda-supply = <&vreg_l3c_1p2>;
478
479	qcom,dual-dsi-mode;
480	qcom,master-dsi;
481
482	ports {
483		port@1 {
484			endpoint {
485				remote-endpoint = <&lt9611_a>;
486				data-lanes = <0 1 2 3>;
487			};
488		};
489	};
490};
491
492&mdss_dsi0_phy {
493	status = "okay";
494	vdds-supply = <&vreg_l5a_0p875>;
495};
496
497&mdss_dsi1 {
498	vdda-supply = <&vreg_l3c_1p2>;
499
500	qcom,dual-dsi-mode;
501
502	/* DSI1 is slave, so use DSI0 clocks */
503	assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
504
505	status = "okay";
506
507	ports {
508		port@1 {
509			endpoint {
510				remote-endpoint = <&lt9611_b>;
511				data-lanes = <0 1 2 3>;
512			};
513		};
514	};
515};
516
517&mdss_dsi1_phy {
518	vdds-supply = <&vreg_l5a_0p875>;
519	status = "okay";
520};
521
522&pm8150b_vbus {
523	regulator-min-microamp = <500000>;
524	regulator-max-microamp = <3000000>;
525	status = "okay";
526};
527
528&pm8150b_typec {
529	status = "okay";
530
531	vdd-pdphy-supply = <&vreg_l2a_3p1>;
532
533	connector {
534		compatible = "usb-c-connector";
535
536		power-role = "source";
537		data-role = "dual";
538		self-powered;
539
540		source-pdos = <PDO_FIXED(5000, 3000,
541					 PDO_FIXED_DUAL_ROLE |
542					 PDO_FIXED_USB_COMM |
543					 PDO_FIXED_DATA_SWAP)>;
544
545		altmodes {
546			displayport {
547				svid = /bits/ 16 <0xff01>;
548				vdo = <0x00001c46>;
549			};
550		};
551
552		ports {
553			#address-cells = <1>;
554			#size-cells = <0>;
555
556			port@0 {
557				reg = <0>;
558				pm8150b_hs_in: endpoint {
559					remote-endpoint = <&usb_1_dwc3_hs>;
560				};
561			};
562
563			port@1 {
564				reg = <1>;
565				pm8150b_typec_mux_in: endpoint {
566					remote-endpoint = <&usb_1_qmpphy_out>;
567				};
568			};
569
570			port@2 {
571				reg = <2>;
572
573				pm8150b_typec_sbu_out: endpoint {
574					remote-endpoint = <&fsa4480_sbu_mux>;
575				};
576			};
577		};
578	};
579};
580
581&pon_pwrkey {
582	status = "okay";
583};
584
585&pon_resin {
586	status = "okay";
587
588	linux,code = <KEY_VOLUMEDOWN>;
589};
590
591&qupv3_id_0 {
592	status = "okay";
593};
594
595&qupv3_id_1 {
596	status = "okay";
597};
598
599&remoteproc_adsp {
600	status = "okay";
601
602	firmware-name = "qcom/sm8150/adsp.mbn";
603};
604
605&remoteproc_cdsp {
606	status = "okay";
607
608	firmware-name = "qcom/sm8150/cdsp.mbn";
609};
610
611&remoteproc_mpss {
612	firmware-name = "qcom/sm8150/modem.mbn";
613	status = "okay";
614};
615
616&remoteproc_slpi {
617	status = "okay";
618
619	firmware-name = "qcom/sm8150/slpi.mbn";
620};
621
622&tlmm {
623	gpio-reserved-ranges = <0 4>, <126 4>;
624
625	lt9611_irq_pin: lt9611-irq-state {
626		pins = "gpio9";
627		function = "gpio";
628		bias-disable;
629	};
630
631};
632
633&uart2 {
634	status = "okay";
635};
636
637&ufs_mem_hc {
638	status = "okay";
639
640	reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
641
642	vcc-supply = <&vreg_l10a_2p5>;
643	vcc-max-microamp = <750000>;
644	vccq-supply = <&vreg_l9a_1p2>;
645	vccq-max-microamp = <700000>;
646	vccq2-supply = <&vreg_s4a_1p8>;
647	vccq2-max-microamp = <750000>;
648};
649
650&ufs_mem_phy {
651	status = "okay";
652
653	vdda-phy-supply = <&vdda_ufs_2ln_core_1>;
654	vdda-pll-supply = <&vreg_l3c_1p2>;
655};
656
657&usb_1_hsphy {
658	status = "okay";
659	vdda-pll-supply = <&vdd_usb_hs_core>;
660	vdda33-supply = <&vdda_usb_hs_3p1>;
661	vdda18-supply = <&vdda_usb_hs_1p8>;
662};
663
664&usb_2_hsphy {
665	status = "okay";
666	vdda-pll-supply = <&vdd_usb_hs_core>;
667	vdda33-supply = <&vdda_usb_hs_3p1>;
668	vdda18-supply = <&vdda_usb_hs_1p8>;
669};
670
671&usb_1_qmpphy {
672	status = "okay";
673	vdda-phy-supply = <&vreg_l3c_1p2>;
674	vdda-pll-supply = <&vreg_l18a_0p8>;
675	orientation-switch;
676};
677
678&usb_1_qmpphy_out {
679	remote-endpoint = <&pm8150b_typec_mux_in>;
680};
681
682&usb_2_qmpphy {
683	status = "okay";
684	vdda-phy-supply = <&vreg_l3c_1p2>;
685	vdda-pll-supply = <&vreg_l5a_0p875>;
686};
687
688&usb_1 {
689	status = "okay";
690};
691
692&usb_2 {
693	status = "okay";
694};
695
696&usb_1_dwc3 {
697	dr_mode = "otg";
698	usb-role-switch;
699};
700
701&usb_1_dwc3_hs {
702	remote-endpoint = <&pm8150b_hs_in>;
703};
704
705&usb_2_dwc3 {
706	dr_mode = "host";
707};
708
709&wifi {
710	status = "okay";
711
712	vdd-0.8-cx-mx-supply = <&vreg_l1a_0p75>;
713	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
714	vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
715	vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
716
717	qcom,ath10k-calibration-variant = "Qualcomm_sm8150hdk";
718};
719