xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/qrb2210-rb1.dts (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (c) 2023, Linaro Ltd
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/leds/common.h>
9#include "qcm2290.dtsi"
10#include "pm4125.dtsi"
11
12/ {
13	model = "Qualcomm Technologies, Inc. Robotics RB1";
14	compatible = "qcom,qrb2210-rb1", "qcom,qrb2210", "qcom,qcm2290";
15
16	aliases {
17		serial0 = &uart4;
18		serial1 = &uart3;
19		sdhc1 = &sdhc_1;
20		sdhc2 = &sdhc_2;
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 = <&key_volp_n>;
40		pinctrl-names = "default";
41
42		key-volume-up {
43			label = "Volume Up";
44			linux,code = <KEY_VOLUMEUP>;
45			gpios = <&tlmm 96 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	/* PM2250 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&cpu_pd0 {
193	/delete-property/ power-domains;
194};
195
196&cpu_pd1 {
197	/delete-property/ power-domains;
198};
199
200&cpu_pd2 {
201	/delete-property/ power-domains;
202};
203
204&cpu_pd3 {
205	/delete-property/ power-domains;
206};
207
208/delete-node/ &cluster_pd;
209
210&gpi_dma0 {
211	status = "okay";
212};
213
214&gpu {
215	status = "okay";
216
217	zap-shader {
218		firmware-name = "qcom/qcm2290/a702_zap.mbn";
219	};
220};
221
222&i2c2_gpio {
223	clock-frequency = <400000>;
224	status = "okay";
225
226	lt9611_codec: hdmi-bridge@2b {
227		compatible = "lontium,lt9611uxc";
228		reg = <0x2b>;
229		interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
230		reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
231
232		vdd-supply = <&vreg_hdmi_out_1p2>;
233		vcc-supply = <&lt9611_3v3>;
234
235		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
236		pinctrl-names = "default";
237		#sound-dai-cells = <1>;
238
239		ports {
240			#address-cells = <1>;
241			#size-cells = <0>;
242
243			port@0 {
244				reg = <0>;
245
246				lt9611_a: endpoint {
247					remote-endpoint = <&mdss_dsi0_out>;
248				};
249			};
250
251			port@2 {
252				reg = <2>;
253
254				lt9611_out: endpoint {
255					remote-endpoint = <&hdmi_con>;
256				};
257			};
258		};
259	};
260};
261
262&mdss {
263	status = "okay";
264};
265
266&mdss_dsi0 {
267	vdda-supply = <&pm4125_l5>;
268	status = "okay";
269};
270
271&mdss_dsi0_out {
272	remote-endpoint = <&lt9611_a>;
273	data-lanes = <0 1 2 3>;
274};
275
276&mdss_dsi0_phy {
277	status = "okay";
278};
279
280&pm4125_resin {
281	linux,code = <KEY_VOLUMEDOWN>;
282	status = "okay";
283};
284
285&pm4125_typec {
286	status = "okay";
287
288	connector {
289		compatible = "usb-c-connector";
290
291		power-role = "dual";
292		data-role = "dual";
293		self-powered;
294
295		typec-power-opmode = "default";
296		pd-disable;
297
298		ports {
299			#address-cells = <1>;
300			#size-cells = <0>;
301
302			port@0 {
303				reg = <0>;
304				pm4125_hs_in: endpoint {
305					remote-endpoint = <&usb_dwc3_hs>;
306				};
307			};
308
309			port@1 {
310				reg = <1>;
311				pm4125_ss_in: endpoint {
312					remote-endpoint = <&usb_qmpphy_out>;
313				};
314			};
315		};
316	};
317};
318
319&pm4125_vbus {
320	regulator-min-microamp = <500000>;
321	regulator-max-microamp = <500000>;
322	status = "okay";
323};
324
325&qupv3_id_0 {
326	status = "okay";
327};
328
329&remoteproc_adsp {
330	firmware-name = "qcom/qcm2290/adsp.mbn";
331	status = "okay";
332};
333
334&remoteproc_mpss {
335	firmware-name = "qcom/qcm2290/modem.mbn";
336	status = "okay";
337};
338
339&rpm_requests {
340	regulators {
341		compatible = "qcom,rpm-pm2250-regulators";
342		vdd_s3-supply = <&vph_pwr>;
343		vdd_s4-supply = <&vph_pwr>;
344		vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>;
345		vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
346		vdd_l13_l14_l15_l16-supply = <&pm4125_s4>;
347
348		/*
349		 * S1 - VDD_APC
350		 * S2 - VDD_CX
351		 */
352
353		pm4125_s3: s3 {
354			/* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
355			regulator-min-microvolt = <1352000>;
356			regulator-max-microvolt = <1352000>;
357			regulator-boot-on;
358		};
359
360		pm4125_s4: s4 {
361			/* 1.2V-2.35V -> 2.05V (Power tree requirements) */
362			regulator-min-microvolt = <2072000>;
363			regulator-max-microvolt = <2072000>;
364			regulator-boot-on;
365		};
366
367		/* L1 - VDD_MX */
368
369		pm4125_l2: l2 {
370			/* LPDDR4X VDD2 */
371			regulator-min-microvolt = <1136000>;
372			regulator-max-microvolt = <1136000>;
373			regulator-always-on;
374			regulator-boot-on;
375		};
376
377		pm4125_l3: l3 {
378			/* LPDDR4X VDDQ */
379			regulator-min-microvolt = <616000>;
380			regulator-max-microvolt = <616000>;
381			regulator-always-on;
382			regulator-boot-on;
383		};
384
385		pm4125_l4: l4 {
386			/* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
387			regulator-min-microvolt = <1800000>;
388			regulator-max-microvolt = <2700000>;
389			regulator-allow-set-load;
390		};
391
392		pm4125_l5: l5 {
393			/* CSI/DSI */
394			regulator-min-microvolt = <1232000>;
395			regulator-max-microvolt = <1232000>;
396			regulator-allow-set-load;
397			regulator-boot-on;
398		};
399
400		pm4125_l6: l6 {
401			/* DRAM PLL */
402			regulator-min-microvolt = <928000>;
403			regulator-max-microvolt = <928000>;
404			regulator-always-on;
405			regulator-boot-on;
406		};
407
408		pm4125_l7: l7 {
409			/* Wi-Fi CX/MX */
410			regulator-min-microvolt = <664000>;
411			regulator-max-microvolt = <664000>;
412		};
413
414		/*
415		 * L8 - VDD_LPI_CX
416		 * L9 - VDD_LPI_MX
417		 */
418
419		pm4125_l10: l10 {
420			/* Wi-Fi RFA */
421			regulator-min-microvolt = <1304000>;
422			regulator-max-microvolt = <1304000>;
423		};
424
425		pm4125_l11: l11 {
426			/* GPS RF1 */
427			regulator-min-microvolt = <1000000>;
428			regulator-max-microvolt = <1000000>;
429			regulator-boot-on;
430		};
431
432		pm4125_l12: l12 {
433			/* USB PHYs */
434			regulator-min-microvolt = <928000>;
435			regulator-max-microvolt = <928000>;
436			regulator-allow-set-load;
437			regulator-boot-on;
438		};
439
440		pm4125_l13: l13 {
441			/* USB/QFPROM/PLLs */
442			regulator-min-microvolt = <1800000>;
443			regulator-max-microvolt = <1800000>;
444			regulator-allow-set-load;
445			regulator-boot-on;
446		};
447
448		pm4125_l14: l14 {
449			/* SDHCI1 VQMMC */
450			regulator-min-microvolt = <1800000>;
451			regulator-max-microvolt = <1800000>;
452			regulator-allow-set-load;
453			/* Broken hardware, never turn it off! */
454			regulator-always-on;
455		};
456
457		pm4125_l15: l15 {
458			/* WCD/DSI/BT VDDIO */
459			regulator-min-microvolt = <1800000>;
460			regulator-max-microvolt = <1800000>;
461			regulator-allow-set-load;
462			regulator-always-on;
463			regulator-boot-on;
464		};
465
466		pm4125_l16: l16 {
467			/* GPS RF2 */
468			regulator-min-microvolt = <1800000>;
469			regulator-max-microvolt = <1800000>;
470			regulator-boot-on;
471		};
472
473		pm4125_l17: l17 {
474			regulator-min-microvolt = <3000000>;
475			regulator-max-microvolt = <3000000>;
476		};
477
478		pm4125_l18: l18 {
479			/* VDD_PXn */
480			regulator-min-microvolt = <1800000>;
481			regulator-max-microvolt = <1800000>;
482		};
483
484		pm4125_l19: l19 {
485			/* VDD_PXn */
486			regulator-min-microvolt = <1800000>;
487			regulator-max-microvolt = <1800000>;
488		};
489
490		pm4125_l20: l20 {
491			/* SDHCI1 VMMC */
492			regulator-min-microvolt = <2400000>;
493			regulator-max-microvolt = <3600000>;
494			regulator-allow-set-load;
495		};
496
497		pm4125_l21: l21 {
498			/* SDHCI2 VMMC */
499			regulator-min-microvolt = <2960000>;
500			regulator-max-microvolt = <3300000>;
501			regulator-allow-set-load;
502			regulator-boot-on;
503		};
504
505		pm4125_l22: l22 {
506			/* Wi-Fi */
507			regulator-min-microvolt = <3312000>;
508			regulator-max-microvolt = <3312000>;
509		};
510	};
511};
512
513&sdhc_1 {
514	vmmc-supply = <&pm4125_l20>;
515	vqmmc-supply = <&pm4125_l14>;
516	pinctrl-0 = <&sdc1_state_on>;
517	pinctrl-1 = <&sdc1_state_off>;
518	pinctrl-names = "default", "sleep";
519	non-removable;
520	supports-cqe;
521	no-sdio;
522	no-sd;
523	status = "okay";
524};
525
526&sdhc_2 {
527	vmmc-supply = <&pm4125_l21>;
528	vqmmc-supply = <&pm4125_l4>;
529	cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>;
530	pinctrl-0 = <&sdc2_state_on &sd_det_in_on>;
531	pinctrl-1 = <&sdc2_state_off &sd_det_in_off>;
532	pinctrl-names = "default", "sleep";
533	no-sdio;
534	no-mmc;
535	status = "okay";
536};
537
538&spi5 {
539	status = "okay";
540
541	can@0 {
542		compatible = "microchip,mcp2518fd";
543		reg = <0>;
544		interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
545		clocks = <&clk40m>;
546		spi-max-frequency = <10000000>;
547		vdd-supply = <&vdc_5v>;
548		xceiver-supply = <&vdc_5v>;
549	};
550};
551
552&tlmm {
553	uart3_default: uart3-default-state {
554		cts-pins {
555			pins = "gpio8";
556			function = "qup3";
557			drive-strength = <2>;
558			bias-bus-hold;
559		};
560
561		rts-pins {
562			pins = "gpio9";
563			function = "qup3";
564			drive-strength = <2>;
565			bias-disable;
566		};
567
568		tx-pins {
569			pins = "gpio10";
570			function = "qup3";
571			drive-strength = <2>;
572			bias-disable;
573		};
574
575		rx-pins {
576			pins = "gpio11";
577			function = "qup3";
578			drive-strength = <2>;
579			bias-pull-up;
580		};
581	};
582
583	uart3_sleep: uart3-sleep-state {
584		cts-pins {
585			pins = "gpio8";
586			function = "gpio";
587			drive-strength = <2>;
588			bias-bus-hold;
589		};
590
591		rts-pins {
592			pins = "gpio9";
593			function = "gpio";
594			drive-strength = <2>;
595			bias-pull-down;
596		};
597
598		tx-pins {
599			pins = "gpio10";
600			function = "gpio";
601			drive-strength = <2>;
602			bias-pull-up;
603		};
604
605		rx-pins {
606			pins = "gpio11";
607			function = "gpio";
608			drive-strength = <2>;
609			bias-pull-up;
610		};
611	};
612
613	lt9611_rst_pin: lt9611-rst-state {
614		pins = "gpio41";
615		function = "gpio";
616		input-disable;
617		output-high;
618	};
619
620	lt9611_irq_pin: lt9611-irq-state {
621		pins = "gpio46";
622		function = "gpio";
623		bias-disable;
624	};
625
626	sd_det_in_on: sd-det-in-on-state {
627		pins = "gpio88";
628		function = "gpio";
629		drive-strength = <2>;
630		bias-pull-up;
631	};
632
633	sd_det_in_off: sd-det-in-off-state {
634		pins = "gpio88";
635		function = "gpio";
636		drive-strength = <2>;
637		bias-disable;
638	};
639
640	key_volp_n: key-volp-n-state {
641		pins = "gpio96";
642		function = "gpio";
643		bias-pull-up;
644		output-disable;
645	};
646};
647
648&uart3 {
649	/delete-property/ interrupts;
650	interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
651			      <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>;
652	pinctrl-0 = <&uart3_default>;
653	pinctrl-1 = <&uart3_sleep>;
654	pinctrl-names = "default", "sleep";
655
656	status = "okay";
657
658	bluetooth {
659		compatible = "qcom,wcn3950-bt";
660
661		vddio-supply = <&pm4125_l15>;
662		vddxo-supply = <&pm4125_l13>;
663		vddrf-supply = <&pm4125_l10>;
664		vddch0-supply = <&pm4125_l22>;
665		enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>;
666		max-speed = <3200000>;
667	};
668};
669
670/* UART connected to the Micro-USB port via a FTDI chip */
671&uart4 {
672	compatible = "qcom,geni-debug-uart";
673	status = "okay";
674};
675
676&usb {
677	status = "okay";
678};
679
680&usb_dwc3_hs {
681	remote-endpoint = <&pm4125_hs_in>;
682};
683
684&usb_hsphy {
685	vdd-supply = <&pm4125_l12>;
686	vdda-pll-supply = <&pm4125_l13>;
687	vdda-phy-dpdm-supply = <&pm4125_l21>;
688	status = "okay";
689};
690
691&usb_qmpphy {
692	vdda-phy-supply = <&pm4125_l12>;
693	vdda-pll-supply = <&pm4125_l13>;
694	status = "okay";
695};
696
697&usb_qmpphy_out {
698	remote-endpoint = <&pm4125_ss_in>;
699};
700
701&wifi {
702	vdd-0.8-cx-mx-supply = <&pm4125_l7>;
703	vdd-1.8-xo-supply = <&pm4125_l13>;
704	vdd-1.3-rfa-supply = <&pm4125_l10>;
705	vdd-3.3-ch0-supply = <&pm4125_l22>;
706	qcom,calibration-variant = "Thundercomm_RB1";
707	firmware-name = "qcm2290";
708	status = "okay";
709};
710
711&xo_board {
712	clock-frequency = <38400000>;
713};
714