xref: /linux/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts (revision 7f71507851fc7764b36a3221839607d3a45c2025)
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/usb/pd.h>
10#include "sm4250.dtsi"
11#include "pm6125.dtsi"
12#include "pmi632.dtsi"
13
14/ {
15	model = "Qualcomm Technologies, Inc. QRB4210 RB2";
16	compatible = "qcom,qrb4210-rb2", "qcom,qrb4210", "qcom,sm4250";
17
18	aliases {
19		serial0 = &uart4;
20		serial1 = &uart3;
21	};
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	clocks {
28		clk40m: can-clk {
29			compatible = "fixed-clock";
30			clock-frequency = <40000000>;
31			#clock-cells = <0>;
32		};
33	};
34
35	gpio-keys {
36		compatible = "gpio-keys";
37		label = "gpio-keys";
38
39		pinctrl-0 = <&kypd_vol_up_n>;
40		pinctrl-names = "default";
41
42		key-volume-up {
43			label = "Volume Up";
44			linux,code = <KEY_VOLUMEUP>;
45			gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>;
46			debounce-interval = <15>;
47			linux,can-disable;
48			wakeup-source;
49		};
50	};
51
52	hdmi-connector {
53		compatible = "hdmi-connector";
54		type = "a";
55
56		port {
57			hdmi_con: endpoint {
58				remote-endpoint = <&lt9611_out>;
59			};
60		};
61	};
62
63	i2c2_gpio: i2c {
64		compatible = "i2c-gpio";
65
66		sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
67		scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
68		#address-cells = <1>;
69		#size-cells = <0>;
70
71		status = "disabled";
72	};
73
74	leds {
75		compatible = "gpio-leds";
76
77		led-bt {
78			label = "blue:bt";
79			function = LED_FUNCTION_BLUETOOTH;
80			color = <LED_COLOR_ID_BLUE>;
81			gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
82			linux,default-trigger = "bluetooth-power";
83			default-state = "off";
84		};
85
86		led-user0 {
87			label = "green:user0";
88			function = LED_FUNCTION_INDICATOR;
89			color = <LED_COLOR_ID_GREEN>;
90			gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
91			linux,default-trigger = "none";
92			default-state = "off";
93			panic-indicator;
94		};
95
96		led-wlan {
97			label = "yellow:wlan";
98			function = LED_FUNCTION_WLAN;
99			color = <LED_COLOR_ID_YELLOW>;
100			gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
101			linux,default-trigger = "phy0tx";
102			default-state = "off";
103		};
104	};
105
106	vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
107		compatible = "regulator-fixed";
108		regulator-name = "VREG_HDMI_OUT_1P2";
109		regulator-min-microvolt = <1200000>;
110		regulator-max-microvolt = <1200000>;
111		vin-supply = <&vdc_1v2>;
112		regulator-always-on;
113		regulator-boot-on;
114	};
115
116	lt9611_3v3: regulator-lt9611-3v3 {
117		compatible = "regulator-fixed";
118		regulator-name = "LT9611_3V3";
119		regulator-min-microvolt = <3300000>;
120		regulator-max-microvolt = <3300000>;
121		vin-supply = <&vdc_3v3>;
122		regulator-always-on;
123		regulator-boot-on;
124	};
125
126	/* Main barrel jack input */
127	vdc_12v: regulator-vdc-12v {
128		compatible = "regulator-fixed";
129		regulator-name = "DC_12V";
130		regulator-min-microvolt = <12000000>;
131		regulator-max-microvolt = <12000000>;
132		regulator-always-on;
133		regulator-boot-on;
134	};
135
136	/* 1.2V supply stepped down from the barrel jack input */
137	vdc_1v2: regulator-vdc-1v2 {
138		compatible = "regulator-fixed";
139		regulator-name = "VDC_1V2";
140		regulator-min-microvolt = <1200000>;
141		regulator-max-microvolt = <1200000>;
142		vin-supply = <&vdc_12v>;
143		regulator-always-on;
144		regulator-boot-on;
145	};
146
147	/* 3.3V supply stepped down from the barrel jack input */
148	vdc_3v3: regulator-vdc-3v3 {
149		compatible = "regulator-fixed";
150		regulator-name = "VDC_3V3";
151		regulator-min-microvolt = <3300000>;
152		regulator-max-microvolt = <3300000>;
153		vin-supply = <&vdc_12v>;
154		regulator-always-on;
155		regulator-boot-on;
156	};
157
158	/* 5V supply stepped down from the barrel jack input */
159	vdc_5v: regulator-vdc-5v {
160		compatible = "regulator-fixed";
161		regulator-name = "VDC_5V";
162
163		regulator-min-microvolt = <5000000>;
164		regulator-max-microvolt = <5000000>;
165		regulator-always-on;
166		regulator-boot-on;
167	};
168
169	/* "Battery" voltage for the SoM, stepped down from the barrel jack input */
170	vdc_vbat_som: regulator-vdc-vbat {
171		compatible = "regulator-fixed";
172		regulator-name = "VBAT_SOM";
173		regulator-min-microvolt = <4200000>;
174		regulator-max-microvolt = <4200000>;
175		regulator-always-on;
176		regulator-boot-on;
177	};
178
179	/* PMI632 charger out, supplied by VBAT */
180	vph_pwr: regulator-vph-pwr {
181		compatible = "regulator-fixed";
182		regulator-name = "vph_pwr";
183		regulator-min-microvolt = <3700000>;
184		regulator-max-microvolt = <3700000>;
185		vin-supply = <&vdc_vbat_som>;
186
187		regulator-always-on;
188		regulator-boot-on;
189	};
190};
191
192&gpi_dma0 {
193	status = "okay";
194};
195
196&gpu {
197	status = "okay";
198
199	zap-shader {
200		firmware-name = "qcom/qrb4210/a610_zap.mbn";
201	};
202};
203
204&i2c2_gpio {
205	clock-frequency = <400000>;
206	status = "okay";
207
208	lt9611_codec: hdmi-bridge@2b {
209		compatible = "lontium,lt9611uxc";
210		reg = <0x2b>;
211		interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
212		reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
213
214		vdd-supply = <&vreg_hdmi_out_1p2>;
215		vcc-supply = <&lt9611_3v3>;
216
217		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
218		pinctrl-names = "default";
219		#sound-dai-cells = <1>;
220
221		ports {
222			#address-cells = <1>;
223			#size-cells = <0>;
224
225			port@0 {
226				reg = <0>;
227
228				lt9611_a: endpoint {
229					remote-endpoint = <&mdss_dsi0_out>;
230				};
231			};
232
233			port@2 {
234				reg = <2>;
235
236				lt9611_out: endpoint {
237					remote-endpoint = <&hdmi_con>;
238				};
239			};
240		};
241	};
242};
243
244&mdss {
245	status = "okay";
246};
247
248&mdss_dsi0 {
249	vdda-supply = <&vreg_l18a_1p232>;
250	status = "okay";
251};
252
253&mdss_dsi0_out {
254	remote-endpoint = <&lt9611_a>;
255	data-lanes = <0 1 2 3>;
256};
257
258&mdss_dsi0_phy {
259	status = "okay";
260};
261
262&pm6125_gpios {
263	kypd_vol_up_n: kypd-vol-up-n-state {
264		pins = "gpio5";
265		function = "normal";
266		power-source = <0>;
267		bias-pull-up;
268		input-enable;
269	};
270};
271
272&pmi632_typec {
273	status = "okay";
274
275	connector {
276		compatible = "usb-c-connector";
277
278		power-role = "dual";
279		data-role = "dual";
280		self-powered;
281
282		typec-power-opmode = "default";
283		pd-disable;
284
285		ports {
286			#address-cells = <1>;
287			#size-cells = <0>;
288
289			port@0 {
290				reg = <0>;
291				pmi632_hs_in: endpoint {
292					remote-endpoint = <&usb_dwc3_hs>;
293				};
294			};
295
296			port@1 {
297				reg = <1>;
298				pmi632_ss_in: endpoint {
299					remote-endpoint = <&usb_qmpphy_out>;
300				};
301			};
302		};
303	};
304};
305
306&pmi632_vbus {
307	regulator-min-microamp = <500000>;
308	regulator-max-microamp = <1000000>;
309	status = "okay";
310};
311
312&pon_pwrkey {
313	status = "okay";
314};
315
316&pon_resin {
317	linux,code = <KEY_VOLUMEDOWN>;
318	status = "okay";
319};
320
321&qupv3_id_0 {
322	status = "okay";
323};
324
325&remoteproc_adsp {
326	firmware-name = "qcom/qrb4210/adsp.mbn";
327
328	status = "okay";
329};
330
331&remoteproc_cdsp {
332	firmware-name = "qcom/qrb4210/cdsp.mbn";
333
334	status = "okay";
335};
336
337&remoteproc_mpss {
338	firmware-name = "qcom/qrb4210/modem.mbn";
339
340	status = "okay";
341};
342
343&rpm_requests {
344	regulators {
345		compatible = "qcom,rpm-pm6125-regulators";
346
347		vdd-s1-supply = <&vph_pwr>;
348		vdd-s2-supply = <&vph_pwr>;
349		vdd-s3-supply = <&vph_pwr>;
350		vdd-s4-supply = <&vph_pwr>;
351		vdd-s5-supply = <&vph_pwr>;
352		vdd-s6-supply = <&vph_pwr>;
353		vdd-s7-supply = <&vph_pwr>;
354		vdd-s8-supply = <&vph_pwr>;
355		vdd-s9-supply = <&vph_pwr>;
356		vdd-s10-supply = <&vph_pwr>;
357
358		vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>;
359		vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>;
360		vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>;
361		vdd-l6-l8-supply = <&vreg_s5a_0p848>;
362		vdd-l9-l11-supply = <&vreg_s7a_2p04>;
363		vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>;
364		vdd-l12-l16-supply = <&vreg_s7a_2p04>;
365		vdd-l23-l24-supply = <&vph_pwr>;
366
367		vreg_s5a_0p848: s5 {
368			regulator-min-microvolt = <920000>;
369			regulator-max-microvolt = <1128000>;
370		};
371
372		vreg_s6a_1p352: s6 {
373			regulator-min-microvolt = <304000>;
374			regulator-max-microvolt = <1456000>;
375		};
376
377		vreg_s7a_2p04: s7 {
378			regulator-min-microvolt = <1280000>;
379			regulator-max-microvolt = <2080000>;
380		};
381
382		vreg_l1a_1p0: l1 {
383			regulator-min-microvolt = <952000>;
384			regulator-max-microvolt = <1152000>;
385		};
386
387		vreg_l4a_0p9: l4 {
388			regulator-min-microvolt = <488000>;
389			regulator-max-microvolt = <1000000>;
390		};
391
392		vreg_l5a_2p96: l5 {
393			regulator-min-microvolt = <1648000>;
394			regulator-max-microvolt = <3056000>;
395			regulator-allow-set-load;
396		};
397
398		vreg_l6a_0p6: l6 {
399			regulator-min-microvolt = <576000>;
400			regulator-max-microvolt = <656000>;
401		};
402
403		vreg_l7a_1p256: l7 {
404			regulator-min-microvolt = <1200000>;
405			regulator-max-microvolt = <1304000>;
406		};
407
408		vreg_l8a_0p664: l8 {
409			regulator-min-microvolt = <640000>;
410			regulator-max-microvolt = <640000>;
411		};
412
413		vreg_l9a_1p8: l9 {
414			regulator-min-microvolt = <1800000>;
415			regulator-max-microvolt = <1800000>;
416			regulator-allow-set-load;
417			regulator-always-on;
418			regulator-boot-on;
419		};
420
421		vreg_l10a_1p8: l10 {
422			regulator-min-microvolt = <1704000>;
423			regulator-max-microvolt = <1904000>;
424		};
425
426		vreg_l11a_1p8: l11 {
427			regulator-min-microvolt = <1704000>;
428			regulator-max-microvolt = <1952000>;
429			regulator-allow-set-load;
430		};
431
432		vreg_l12a_1p8: l12 {
433			regulator-min-microvolt = <1624000>;
434			regulator-max-microvolt = <1984000>;
435		};
436
437		vreg_l13a_1p8: l13 {
438			regulator-min-microvolt = <1504000>;
439			regulator-max-microvolt = <1952000>;
440		};
441
442		vreg_l14a_1p8: l14 {
443			regulator-min-microvolt = <1704000>;
444			regulator-max-microvolt = <1904000>;
445		};
446
447		vreg_l15a_3p128: l15 {
448			regulator-min-microvolt = <2920000>;
449			regulator-max-microvolt = <3232000>;
450		};
451
452		vreg_l16a_1p3: l16 {
453			regulator-min-microvolt = <1704000>;
454			regulator-max-microvolt = <1904000>;
455			regulator-allow-set-load;
456		};
457
458		vreg_l17a_1p3: l17 {
459			regulator-min-microvolt = <1152000>;
460			regulator-max-microvolt = <1384000>;
461			regulator-allow-set-load;
462		};
463
464		vreg_l18a_1p232: l18 {
465			regulator-min-microvolt = <1104000>;
466			regulator-max-microvolt = <1312000>;
467		};
468
469		vreg_l19a_1p8: l19 {
470			regulator-min-microvolt = <1624000>;
471			regulator-max-microvolt = <3304000>;
472		};
473
474		vreg_l20a_1p8: l20 {
475			regulator-min-microvolt = <1624000>;
476			regulator-max-microvolt = <3304000>;
477		};
478
479		vreg_l21a_2p704: l21 {
480			regulator-min-microvolt = <2400000>;
481			regulator-max-microvolt = <3600000>;
482		};
483
484		vreg_l22a_2p96: l22 {
485			regulator-min-microvolt = <2952000>;
486			regulator-max-microvolt = <3304000>;
487			regulator-system-load = <100000>;
488			regulator-allow-set-load;
489		};
490
491		vreg_l23a_3p3: l23 {
492			regulator-min-microvolt = <3312000>;
493			regulator-max-microvolt = <3312000>;
494			regulator-allow-set-load;
495		};
496
497		vreg_l24a_2p96: l24 {
498			regulator-min-microvolt = <2704000>;
499			regulator-max-microvolt = <3600000>;
500			regulator-system-load = <100000>;
501			regulator-allow-set-load;
502		};
503	};
504};
505
506&sdhc_1 {
507	pinctrl-0 = <&sdc1_state_on>;
508	pinctrl-1 = <&sdc1_state_off>;
509	pinctrl-names = "default", "sleep";
510
511	vmmc-supply = <&vreg_l24a_2p96>;
512	vqmmc-supply = <&vreg_l11a_1p8>;
513	no-sdio;
514	non-removable;
515
516	status = "okay";
517};
518
519&sdhc_2 {
520	cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */
521
522	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
523	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
524	pinctrl-names = "default", "sleep";
525
526	vmmc-supply = <&vreg_l22a_2p96>;
527	vqmmc-supply = <&vreg_l5a_2p96>;
528	no-sdio;
529
530	status = "okay";
531};
532
533&spi5 {
534	status = "okay";
535
536	can@0 {
537		compatible = "microchip,mcp2518fd";
538		reg = <0>;
539		interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
540		clocks = <&clk40m>;
541		spi-max-frequency = <10000000>;
542		vdd-supply = <&vdc_5v>;
543		xceiver-supply = <&vdc_5v>;
544	};
545};
546
547&sleep_clk {
548	clock-frequency = <32000>;
549};
550
551&tlmm {
552	gpio-reserved-ranges = <43 2>, <49 1>, <54 1>,
553			       <56 3>, <61 2>, <64 1>,
554			       <68 1>, <72 8>, <96 1>;
555
556	uart3_default: uart3-default-state {
557		cts-pins {
558			pins = "gpio8";
559			function = "qup3";
560			drive-strength = <2>;
561			bias-bus-hold;
562		};
563
564		rts-pins {
565			pins = "gpio9";
566			function = "qup3";
567			drive-strength = <2>;
568			bias-disable;
569		};
570
571		tx-pins {
572			pins = "gpio10";
573			function = "qup3";
574			drive-strength = <2>;
575			bias-disable;
576		};
577
578		rx-pins {
579			pins = "gpio11";
580			function = "qup3";
581			drive-strength = <2>;
582			bias-pull-up;
583		};
584	};
585
586	uart3_sleep: uart3-sleep-state {
587		cts-pins {
588			pins = "gpio8";
589			function = "gpio";
590			drive-strength = <2>;
591			bias-bus-hold;
592		};
593
594		rts-pins {
595			pins = "gpio9";
596			function = "gpio";
597			drive-strength = <2>;
598			bias-pull-down;
599		};
600
601		tx-pins {
602			pins = "gpio10";
603			function = "gpio";
604			drive-strength = <2>;
605			bias-pull-up;
606		};
607
608		rx-pins {
609			pins = "gpio11";
610			function = "gpio";
611			drive-strength = <2>;
612			bias-pull-up;
613		};
614	};
615
616	lt9611_rst_pin: lt9611-rst-state {
617		pins = "gpio41";
618		function = "gpio";
619		input-disable;
620		output-high;
621	};
622
623	lt9611_irq_pin: lt9611-irq-state {
624		pins = "gpio46";
625		function = "gpio";
626		bias-disable;
627	};
628
629	sdc2_card_det_n: sd-card-det-n-state {
630		pins = "gpio88";
631		function = "gpio";
632		drive-strength = <2>;
633		bias-pull-up;
634	};
635};
636
637&uart3 {
638	interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
639			      <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
640	pinctrl-0 = <&uart3_default>;
641	pinctrl-1 = <&uart3_sleep>;
642	pinctrl-names = "default", "sleep";
643	status = "okay";
644
645	bluetooth {
646		compatible = "qcom,wcn3988-bt";
647
648		vddio-supply = <&vreg_l9a_1p8>;
649		vddxo-supply = <&vreg_l16a_1p3>;
650		vddrf-supply = <&vreg_l17a_1p3>;
651		vddch0-supply = <&vreg_l23a_3p3>;
652		enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
653		max-speed = <3200000>;
654	};
655};
656
657&uart4 {
658	status = "okay";
659};
660
661&usb {
662	status = "okay";
663};
664
665&usb_dwc3_hs {
666	remote-endpoint = <&pmi632_hs_in>;
667};
668
669&usb_hsphy {
670	vdd-supply = <&vreg_l4a_0p9>;
671	vdda-pll-supply = <&vreg_l12a_1p8>;
672	vdda-phy-dpdm-supply = <&vreg_l15a_3p128>;
673
674	status = "okay";
675};
676
677&usb_qmpphy {
678	vdda-phy-supply = <&vreg_l4a_0p9>;
679	vdda-pll-supply = <&vreg_l12a_1p8>;
680
681	status = "okay";
682};
683
684&usb_qmpphy_out {
685	remote-endpoint = <&pmi632_ss_in>;
686};
687
688&wifi {
689	vdd-0.8-cx-mx-supply = <&vreg_l8a_0p664>;
690	vdd-1.8-xo-supply = <&vreg_l16a_1p3>;
691	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
692	vdd-3.3-ch0-supply = <&vreg_l23a_3p3>;
693	qcom,ath10k-calibration-variant = "Thundercomm_RB2";
694	firmware-name = "qrb4210";
695
696	status = "okay";
697};
698
699&xo_board {
700	clock-frequency = <19200000>;
701};
702