xref: /linux/arch/arm64/boot/dts/qcom/qcs615-ride.dts (revision fc2d791a43d3880496d1c729b8bd74d2c19cb4e7)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5/dts-v1/;
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
9#include <dt-bindings/gpio/gpio.h>
10#include "talos.dtsi"
11#include "pm8150.dtsi"
12/ {
13	model = "Qualcomm Technologies, Inc. QCS615 Ride (IQ-615 Beta EVK)";
14	compatible = "qcom,qcs615-ride", "qcom,qcs615", "qcom,sm6150";
15	chassis-type = "embedded";
16
17	aliases {
18		mmc0 = &sdhc_1;
19		mmc1 = &sdhc_2;
20		serial0 = &uart0;
21		serial1 = &uart7;
22	};
23
24	chosen {
25		stdout-path = "serial0:115200n8";
26	};
27
28	clocks {
29		sleep_clk: sleep-clk {
30			compatible = "fixed-clock";
31			clock-frequency = <32000>;
32			#clock-cells = <0>;
33		};
34
35		xo_board_clk: xo-board-clk {
36			compatible = "fixed-clock";
37			clock-frequency = <38400000>;
38			#clock-cells = <0>;
39		};
40	};
41
42	dp0-connector {
43		compatible = "dp-connector";
44		label = "DP0";
45		type = "mini";
46
47		hpd-gpios = <&io_expander 8 GPIO_ACTIVE_HIGH>;
48
49		port {
50			dp0_connector_in: endpoint {
51				remote-endpoint = <&mdss_dp0_out>;
52			};
53		};
54	};
55
56	dp-dsi0-connector {
57		compatible = "dp-connector";
58		label = "DSI0";
59		type = "mini";
60
61		port {
62			dp_dsi0_connector_in: endpoint {
63				remote-endpoint = <&dsi2dp_bridge_out>;
64			};
65		};
66	};
67
68	vreg_conn_1p8: regulator-conn-1p8 {
69		compatible = "regulator-fixed";
70		regulator-name = "vreg_conn_1p8";
71		startup-delay-us = <4000>;
72		enable-active-high;
73		gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
74	};
75
76	vreg_conn_pa: regulator-conn-pa {
77		compatible = "regulator-fixed";
78		regulator-name = "vreg_conn_pa";
79		startup-delay-us = <4000>;
80		enable-active-high;
81		gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
82	};
83
84	regulator-usb2-vbus {
85		compatible = "regulator-fixed";
86		regulator-name = "USB2_VBUS";
87		gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
88		pinctrl-0 = <&usb2_en>;
89		pinctrl-names = "default";
90		enable-active-high;
91		regulator-always-on;
92	};
93
94	vreg_1p0: regulator-vreg-1p0 {
95		compatible = "regulator-fixed";
96		regulator-name = "VREG_1P0";
97
98		regulator-always-on;
99		regulator-boot-on;
100		regulator-min-microvolt = <1000000>;
101		regulator-max-microvolt = <1000000>;
102
103		vin-supply = <&vreg_1p8>;
104	};
105
106	vreg_1p8: regulator-vreg-1p8 {
107		compatible = "regulator-fixed";
108		regulator-name = "VREG_1P8";
109
110		regulator-always-on;
111		regulator-boot-on;
112		regulator-min-microvolt = <1800000>;
113		regulator-max-microvolt = <1800000>;
114	};
115
116	vreg_3p0: regulator-vreg-3p0 {
117		compatible = "regulator-fixed";
118		regulator-name = "VREG_3P0";
119
120		regulator-always-on;
121		regulator-boot-on;
122		regulator-min-microvolt = <3000000>;
123		regulator-max-microvolt = <3000000>;
124	};
125
126	wcn6855-pmu {
127		compatible = "qcom,wcn6855-pmu";
128
129		pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
130		pinctrl-names = "default";
131
132		bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
133		wlan-enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
134
135		vddio-supply = <&vreg_conn_pa>;
136		vddaon-supply = <&vreg_s5a>;
137		vddpmu-supply = <&vreg_conn_1p8>;
138		vddpmumx-supply = <&vreg_conn_1p8>;
139		vddpmucx-supply = <&vreg_conn_pa>;
140		vddrfa0p95-supply = <&vreg_s5a>;
141		vddrfa1p3-supply = <&vreg_s6a>;
142		vddrfa1p9-supply = <&vreg_l15a>;
143		vddpcie1p3-supply = <&vreg_s6a>;
144		vddpcie1p9-supply = <&vreg_l15a>;
145
146		regulators {
147			vreg_pmu_rfa_cmn: ldo0 {
148				regulator-name = "vreg_pmu_rfa_cmn";
149			};
150
151			vreg_pmu_aon_0p59: ldo1 {
152				regulator-name = "vreg_pmu_aon_0p59";
153			};
154
155			vreg_pmu_wlcx_0p8: ldo2 {
156				regulator-name = "vreg_pmu_wlcx_0p8";
157			};
158
159			vreg_pmu_wlmx_0p85: ldo3 {
160				regulator-name = "vreg_pmu_wlmx_0p85";
161			};
162
163			vreg_pmu_btcmx_0p85: ldo4 {
164				regulator-name = "vreg_pmu_btcmx_0p85";
165			};
166
167			vreg_pmu_rfa_0p8: ldo5 {
168				regulator-name = "vreg_pmu_rfa_0p8";
169			};
170
171			vreg_pmu_rfa_1p2: ldo6 {
172				regulator-name = "vreg_pmu_rfa_1p2";
173			};
174
175			vreg_pmu_rfa_1p7: ldo7 {
176				regulator-name = "vreg_pmu_rfa_1p7";
177			};
178
179			vreg_pmu_pcie_0p9: ldo8 {
180				regulator-name = "vreg_pmu_pcie_0p9";
181			};
182
183			vreg_pmu_pcie_1p8: ldo9 {
184				regulator-name = "vreg_pmu_pcie_1p8";
185			};
186		};
187	};
188};
189
190&apps_rsc {
191	regulators-0 {
192		compatible = "qcom,pm8150-rpmh-regulators";
193		qcom,pmic-id = "a";
194
195		vreg_s3a: smps3 {
196			regulator-name = "vreg_s3a";
197			regulator-min-microvolt = <600000>;
198			regulator-max-microvolt = <650000>;
199			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
200		};
201
202		vreg_s4a: smps4 {
203			regulator-name = "vreg_s4a";
204			regulator-min-microvolt = <1800000>;
205			regulator-max-microvolt = <1829000>;
206			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
207		};
208
209		vreg_s5a: smps5 {
210			regulator-name = "vreg_s5a";
211			regulator-min-microvolt = <1896000>;
212			regulator-max-microvolt = <2040000>;
213			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
214		};
215
216		vreg_s6a: smps6 {
217			regulator-name = "vreg_s6a";
218			regulator-min-microvolt = <1304000>;
219			regulator-max-microvolt = <1404000>;
220			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
221		};
222
223		vreg_l1a: ldo1 {
224			regulator-name = "vreg_l1a";
225			regulator-min-microvolt = <488000>;
226			regulator-max-microvolt = <852000>;
227			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
228			regulator-allow-set-load;
229			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
230						   RPMH_REGULATOR_MODE_HPM>;
231		};
232
233		vreg_l2a: ldo2 {
234			regulator-name = "vreg_l2a";
235			regulator-min-microvolt = <1650000>;
236			regulator-max-microvolt = <3100000>;
237			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
238			regulator-allow-set-load;
239			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
240						   RPMH_REGULATOR_MODE_HPM>;
241		};
242
243		vreg_l3a: ldo3 {
244			regulator-name = "vreg_l3a";
245			regulator-min-microvolt = <1000000>;
246			regulator-max-microvolt = <1248000>;
247			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
248			regulator-allow-set-load;
249			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
250						   RPMH_REGULATOR_MODE_HPM>;
251		};
252
253		vreg_l5a: ldo5 {
254			regulator-name = "vreg_l5a";
255			regulator-min-microvolt = <875000>;
256			regulator-max-microvolt = <975000>;
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_l7a: ldo7 {
264			regulator-name = "vreg_l7a";
265			regulator-min-microvolt = <1800000>;
266			regulator-max-microvolt = <1900000>;
267			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
268			regulator-allow-set-load;
269			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
270						   RPMH_REGULATOR_MODE_HPM>;
271		};
272
273		vreg_l8a: ldo8 {
274			regulator-name = "vreg_l8a";
275			regulator-min-microvolt = <1150000>;
276			regulator-max-microvolt = <1350000>;
277			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
278			regulator-allow-set-load;
279			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
280						   RPMH_REGULATOR_MODE_HPM>;
281		};
282
283		vreg_l10a: ldo10 {
284			regulator-name = "vreg_l10a";
285			regulator-min-microvolt = <2950000>;
286			regulator-max-microvolt = <3312000>;
287			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
288			regulator-allow-set-load;
289			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
290						   RPMH_REGULATOR_MODE_HPM>;
291		};
292
293		vreg_l11a: ldo11 {
294			regulator-name = "vreg_l11a";
295			regulator-min-microvolt = <1232000>;
296			regulator-max-microvolt = <1260000>;
297			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
298			regulator-allow-set-load;
299			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
300						   RPMH_REGULATOR_MODE_HPM>;
301		};
302
303		vreg_l12a: ldo12 {
304			regulator-name = "vreg_l12a";
305			regulator-min-microvolt = <1800000>;
306			regulator-max-microvolt = <1890000>;
307			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
308		};
309
310		vreg_l13a: ldo13 {
311			regulator-name = "vreg_l13a";
312			regulator-min-microvolt = <3000000>;
313			regulator-max-microvolt = <3230000>;
314			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
315			regulator-allow-set-load;
316			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
317						   RPMH_REGULATOR_MODE_HPM>;
318		};
319
320		vreg_l15a: ldo15 {
321			regulator-name = "vreg_l15a";
322			regulator-min-microvolt = <1800000>;
323			regulator-max-microvolt = <1904000>;
324			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
325			regulator-allow-set-load;
326			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
327						   RPMH_REGULATOR_MODE_HPM>;
328		};
329
330		vreg_l16a: ldo16 {
331			regulator-name = "vreg_l16a";
332			regulator-min-microvolt = <3000000>;
333			regulator-max-microvolt = <3312000>;
334			regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
335			regulator-allow-set-load;
336			regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
337						   RPMH_REGULATOR_MODE_HPM>;
338		};
339
340		vreg_l17a: ldo17 {
341			regulator-name = "vreg_l17a";
342			regulator-min-microvolt = <2950000>;
343			regulator-max-microvolt = <3312000>;
344			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
345		};
346	};
347};
348
349&gpu {
350	status = "okay";
351};
352
353&gpu_zap_shader {
354	firmware-name = "qcom/qcs615/a612_zap.mbn";
355};
356
357&i2c2 {
358	clock-frequency = <400000>;
359	status = "okay";
360
361	io_expander: pinctrl@3e {
362		compatible = "semtech,sx1509q";
363		reg = <0x3e>;
364		interrupts-extended = <&tlmm 58 IRQ_TYPE_EDGE_FALLING>;
365		gpio-controller;
366		#gpio-cells = <2>;
367		interrupt-controller;
368		#interrupt-cells = <2>;
369		semtech,probe-reset;
370	};
371
372	i2c-mux@77 {
373		compatible = "nxp,pca9542";
374		reg = <0x77>;
375		#address-cells = <1>;
376		#size-cells = <0>;
377
378		i2c@0 {
379			reg = <0>;
380			#address-cells = <1>;
381			#size-cells = <0>;
382
383			bridge@58 {
384				compatible = "analogix,anx7625";
385				reg = <0x58>;
386				interrupts-extended = <&io_expander 0 IRQ_TYPE_EDGE_FALLING>;
387				enable-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>;
388				reset-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
389				vdd10-supply = <&vreg_1p0>;
390				vdd18-supply = <&vreg_1p8>;
391				vdd33-supply = <&vreg_3p0>;
392
393				ports {
394					#address-cells = <1>;
395					#size-cells = <0>;
396
397					port@0 {
398						reg = <0>;
399
400						dsi2dp_bridge_in: endpoint {
401							remote-endpoint = <&mdss_dsi0_out>;
402						};
403					};
404
405					port@1 {
406						reg = <1>;
407
408						dsi2dp_bridge_out: endpoint {
409							remote-endpoint = <&dp_dsi0_connector_in>;
410						};
411					};
412				};
413			};
414		};
415	};
416};
417
418&mdss {
419	status = "okay";
420};
421
422&mdss_dp0 {
423	status = "okay";
424};
425
426&mdss_dp0_out {
427	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
428	remote-endpoint = <&dp0_connector_in>;
429};
430
431&mdss_dsi0 {
432	vdda-supply = <&vreg_l11a>;
433	status = "okay";
434};
435
436&mdss_dsi0_out {
437	remote-endpoint = <&dsi2dp_bridge_in>;
438	data-lanes = <0 1 2 3>;
439};
440
441&mdss_dsi0_phy {
442	vcca-supply = <&vreg_l5a>;
443	status = "okay";
444};
445
446&pcie {
447	perst-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
448	wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
449
450	pinctrl-0 = <&pcie_default_state>;
451	pinctrl-names = "default";
452
453	status = "okay";
454};
455
456&pcie_phy {
457	vdda-phy-supply = <&vreg_l5a>;
458	vdda-pll-supply = <&vreg_l12a>;
459
460	status = "okay";
461};
462
463&pcie_port0 {
464	wifi@0 {
465		compatible = "pci17cb,1103";
466		reg = <0x10000 0x0 0x0 0x0 0x0>;
467
468		qcom,calibration-variant = "QC_QCS615_Ride";
469
470		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
471		vddaon-supply = <&vreg_pmu_aon_0p59>;
472		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
473		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
474		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
475		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
476		vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
477		vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
478		vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
479	};
480};
481
482&pm8150_gpios {
483	usb2_en: usb2-en-state {
484		pins = "gpio10";
485		function = "normal";
486		output-enable;
487		power-source = <0>;
488	};
489};
490
491&pon_pwrkey {
492	status = "okay";
493};
494
495&pon_resin {
496	linux,code = <KEY_VOLUMEDOWN>;
497
498	status = "okay";
499};
500
501&qupv3_id_0 {
502	status = "okay";
503};
504
505&qupv3_id_1 {
506	status = "okay";
507};
508
509&remoteproc_adsp {
510	firmware-name = "qcom/qcs615/adsp.mbn";
511
512	status = "okay";
513};
514
515&remoteproc_cdsp {
516	firmware-name = "qcom/qcs615/cdsp.mbn";
517
518	status = "okay";
519};
520
521&tlmm {
522	bt_en_state: bt-en-state {
523		pins = "gpio85";
524		function = "gpio";
525		bias-pull-down;
526		output-low;
527	};
528
529	pcie_default_state: pcie-default-state {
530		clkreq-pins {
531			pins = "gpio90";
532			function = "pcie_clk_req";
533			drive-strength = <2>;
534			bias-pull-up;
535		};
536
537		perst-pins {
538			pins = "gpio101";
539			function = "gpio";
540			drive-strength = <2>;
541			bias-pull-down;
542		};
543
544		wake-pins {
545			pins = "gpio100";
546			function = "gpio";
547			drive-strength = <2>;
548			bias-pull-up;
549		};
550	};
551
552	wlan_en_state: wlan-en-state {
553		pins = "gpio98";
554		function = "gpio";
555		bias-pull-down;
556		drive-strength = <16>;
557		output-low;
558	};
559};
560
561&sdhc_1 {
562	pinctrl-0 = <&sdc1_state_on>;
563	pinctrl-1 = <&sdc1_state_off>;
564	pinctrl-names = "default", "sleep";
565
566	bus-width = <8>;
567	mmc-ddr-1_8v;
568	mmc-hs200-1_8v;
569	mmc-hs400-1_8v;
570	mmc-hs400-enhanced-strobe;
571	vmmc-supply = <&vreg_l17a>;
572	vqmmc-supply = <&vreg_s4a>;
573
574	non-removable;
575	no-sd;
576	no-sdio;
577
578	status = "okay";
579};
580
581&sdhc_2 {
582	pinctrl-0 = <&sdc2_state_on>;
583	pinctrl-1 = <&sdc2_state_off>;
584	pinctrl-names = "default", "sleep";
585
586	bus-width = <4>;
587	cd-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>;
588
589	vmmc-supply = <&vreg_l10a>;
590	vqmmc-supply = <&vreg_s4a>;
591
592	status = "okay";
593};
594
595&uart0 {
596	status = "okay";
597};
598
599&uart7 {
600	status = "okay";
601
602	bluetooth {
603		compatible = "qcom,wcn6855-bt";
604		firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv";
605
606		vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
607		vddaon-supply = <&vreg_pmu_aon_0p59>;
608		vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
609		vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
610		vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>;
611		vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
612		vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
613		vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>;
614	};
615};
616
617&usb_1_hsphy {
618	vdd-supply = <&vreg_l5a>;
619	vdda-pll-supply = <&vreg_l12a>;
620	vdda-phy-dpdm-supply = <&vreg_l13a>;
621
622	status = "okay";
623};
624
625&usb_qmpphy {
626	vdda-phy-supply = <&vreg_l5a>;
627	vdda-pll-supply = <&vreg_l12a>;
628
629	status = "okay";
630};
631
632&usb_qmpphy_2 {
633	vdda-phy-supply = <&vreg_l5a>;
634	vdda-pll-supply = <&vreg_l12a>;
635
636	status = "okay";
637};
638
639&usb_1 {
640	dr_mode = "peripheral";
641
642	status = "okay";
643};
644
645&usb_2_hsphy {
646	vdd-supply = <&vreg_l5a>;
647	vdda-pll-supply = <&vreg_l12a>;
648	vdda-phy-dpdm-supply = <&vreg_l13a>;
649
650	status = "okay";
651};
652
653&usb_2 {
654	dr_mode = "host";
655
656	status = "okay";
657};
658
659&ufs_mem_hc {
660	reset-gpios = <&tlmm 123 GPIO_ACTIVE_LOW>;
661	vcc-supply = <&vreg_l17a>;
662	vcc-max-microamp = <600000>;
663	vccq2-supply = <&vreg_s4a>;
664	vccq2-max-microamp = <600000>;
665
666	status = "okay";
667};
668
669&ufs_mem_phy {
670	vdda-phy-supply = <&vreg_l5a>;
671	vdda-pll-supply = <&vreg_l12a>;
672
673	status = "okay";
674};
675
676&venus {
677	status = "okay";
678};
679