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 "sm4250.dtsi"
10
11/ {
12	model = "Qualcomm Technologies, Inc. QRB4210 RB2";
13	compatible = "qcom,qrb4210-rb2", "qcom,qrb4210", "qcom,sm4250";
14
15	aliases {
16		serial0 = &uart4;
17	};
18
19	chosen {
20		stdout-path = "serial0:115200n8";
21	};
22
23	clocks {
24		clk40M: can-clk {
25			compatible = "fixed-clock";
26			clock-frequency = <40000000>;
27			#clock-cells = <0>;
28		};
29	};
30
31	hdmi-connector {
32		compatible = "hdmi-connector";
33		type = "a";
34
35		port {
36			hdmi_con: endpoint {
37				remote-endpoint = <&lt9611_out>;
38			};
39		};
40	};
41
42	leds {
43		compatible = "gpio-leds";
44
45		led-bt {
46			label = "blue:bt";
47			function = LED_FUNCTION_BLUETOOTH;
48			color = <LED_COLOR_ID_BLUE>;
49			gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
50			linux,default-trigger = "bluetooth-power";
51			default-state = "off";
52		};
53
54		led-user0 {
55			label = "green:user0";
56			function = LED_FUNCTION_INDICATOR;
57			color = <LED_COLOR_ID_GREEN>;
58			gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
59			linux,default-trigger = "none";
60			default-state = "off";
61			panic-indicator;
62		};
63
64		led-wlan {
65			label = "yellow:wlan";
66			function = LED_FUNCTION_WLAN;
67			color = <LED_COLOR_ID_YELLOW>;
68			gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
69			linux,default-trigger = "phy0tx";
70			default-state = "off";
71		};
72	};
73
74	vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
75		compatible = "regulator-fixed";
76		regulator-name = "VREG_HDMI_OUT_1P2";
77		regulator-min-microvolt = <1200000>;
78		regulator-max-microvolt = <1200000>;
79		vin-supply = <&vdc_1v2>;
80		regulator-always-on;
81		regulator-boot-on;
82	};
83
84	lt9611_3v3: regulator-lt9611-3v3 {
85		compatible = "regulator-fixed";
86		regulator-name = "LT9611_3V3";
87		regulator-min-microvolt = <3300000>;
88		regulator-max-microvolt = <3300000>;
89		vin-supply = <&vdc_3v3>;
90		regulator-always-on;
91		regulator-boot-on;
92	};
93
94	/* Main barrel jack input */
95	vdc_12v: regulator-vdc-12v {
96		compatible = "regulator-fixed";
97		regulator-name = "DC_12V";
98		regulator-min-microvolt = <12000000>;
99		regulator-max-microvolt = <12000000>;
100		regulator-always-on;
101		regulator-boot-on;
102	};
103
104	/* 1.2V supply stepped down from the barrel jack input */
105	vdc_1v2: regulator-vdc-1v2 {
106		compatible = "regulator-fixed";
107		regulator-name = "VDC_1V2";
108		regulator-min-microvolt = <1200000>;
109		regulator-max-microvolt = <1200000>;
110		vin-supply = <&vdc_12v>;
111		regulator-always-on;
112		regulator-boot-on;
113	};
114
115	/* 3.3V supply stepped down from the barrel jack input */
116	vdc_3v3: regulator-vdc-3v3 {
117		compatible = "regulator-fixed";
118		regulator-name = "VDC_3V3";
119		regulator-min-microvolt = <3300000>;
120		regulator-max-microvolt = <3300000>;
121		vin-supply = <&vdc_12v>;
122		regulator-always-on;
123		regulator-boot-on;
124	};
125
126	/* 5V supply stepped down from the barrel jack input */
127	vdc_5v: regulator-vdc-5v {
128		compatible = "regulator-fixed";
129		regulator-name = "VDC_5V";
130
131		regulator-min-microvolt = <5000000>;
132		regulator-max-microvolt = <5000000>;
133		regulator-always-on;
134		regulator-boot-on;
135	};
136
137	/* "Battery" voltage for the SoM, stepped down from the barrel jack input */
138	vdc_vbat_som: regulator-vdc-vbat {
139		compatible = "regulator-fixed";
140		regulator-name = "VBAT_SOM";
141		regulator-min-microvolt = <4200000>;
142		regulator-max-microvolt = <4200000>;
143		regulator-always-on;
144		regulator-boot-on;
145	};
146
147	/* PMI632 charger out, supplied by VBAT */
148	vph_pwr: regulator-vph-pwr {
149		compatible = "regulator-fixed";
150		regulator-name = "vph_pwr";
151		regulator-min-microvolt = <3700000>;
152		regulator-max-microvolt = <3700000>;
153		vin-supply = <&vdc_vbat_som>;
154
155		regulator-always-on;
156		regulator-boot-on;
157	};
158};
159
160&gpi_dma0 {
161	status = "okay";
162};
163
164&i2c2 {
165	clock-frequency = <400000>;
166	status = "okay";
167
168	lt9611_codec: hdmi-bridge@2b {
169		compatible = "lontium,lt9611uxc";
170		reg = <0x2b>;
171		interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
172		reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
173
174		vdd-supply = <&vreg_hdmi_out_1p2>;
175		vcc-supply = <&lt9611_3v3>;
176
177		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
178		pinctrl-names = "default";
179		#sound-dai-cells = <1>;
180
181		ports {
182			#address-cells = <1>;
183			#size-cells = <0>;
184
185			port@0 {
186				reg = <0>;
187
188				lt9611_a: endpoint {
189					remote-endpoint = <&mdss_dsi0_out>;
190				};
191			};
192
193			port@2 {
194				reg = <2>;
195
196				lt9611_out: endpoint {
197					remote-endpoint = <&hdmi_con>;
198				};
199			};
200		};
201	};
202};
203
204&mdss {
205	status = "okay";
206};
207
208&mdss_dsi0 {
209	vdda-supply = <&vreg_l18a_1p232>;
210	status = "okay";
211};
212
213&mdss_dsi0_out {
214	remote-endpoint = <&lt9611_a>;
215	data-lanes = <0 1 2 3>;
216};
217
218&mdss_dsi0_phy {
219	status = "okay";
220};
221
222&qupv3_id_0 {
223	status = "okay";
224};
225
226&remoteproc_adsp {
227	firmware-name = "qcom/qrb4210/adsp.mbn";
228
229	status = "okay";
230};
231
232&remoteproc_cdsp {
233	firmware-name = "qcom/qrb4210/cdsp.mbn";
234
235	status = "okay";
236};
237
238&rpm_requests {
239	regulators {
240		compatible = "qcom,rpm-pm6125-regulators";
241
242		vdd-s1-supply = <&vph_pwr>;
243		vdd-s2-supply = <&vph_pwr>;
244		vdd-s3-supply = <&vph_pwr>;
245		vdd-s4-supply = <&vph_pwr>;
246		vdd-s5-supply = <&vph_pwr>;
247		vdd-s6-supply = <&vph_pwr>;
248		vdd-s7-supply = <&vph_pwr>;
249		vdd-s8-supply = <&vph_pwr>;
250		vdd-s9-supply = <&vph_pwr>;
251		vdd-s10-supply = <&vph_pwr>;
252
253		vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>;
254		vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>;
255		vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>;
256		vdd-l6-l8-supply = <&vreg_s5a_0p848>;
257		vdd-l9-l11-supply = <&vreg_s7a_2p04>;
258		vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>;
259		vdd-l12-l16-supply = <&vreg_s7a_2p04>;
260		vdd-l23-l24-supply = <&vph_pwr>;
261
262		vreg_s5a_0p848: s5 {
263			regulator-min-microvolt = <920000>;
264			regulator-max-microvolt = <1128000>;
265		};
266
267		vreg_s6a_1p352: s6 {
268			regulator-min-microvolt = <304000>;
269			regulator-max-microvolt = <1456000>;
270		};
271
272		vreg_s7a_2p04: s7 {
273			regulator-min-microvolt = <1280000>;
274			regulator-max-microvolt = <2080000>;
275		};
276
277		vreg_l1a_1p0: l1 {
278			regulator-min-microvolt = <952000>;
279			regulator-max-microvolt = <1152000>;
280		};
281
282		vreg_l4a_0p9: l4 {
283			regulator-min-microvolt = <488000>;
284			regulator-max-microvolt = <1000000>;
285		};
286
287		vreg_l5a_2p96: l5 {
288			regulator-min-microvolt = <1648000>;
289			regulator-max-microvolt = <3056000>;
290			regulator-allow-set-load;
291		};
292
293		vreg_l6a_0p6: l6 {
294			regulator-min-microvolt = <576000>;
295			regulator-max-microvolt = <656000>;
296		};
297
298		vreg_l7a_1p256: l7 {
299			regulator-min-microvolt = <1200000>;
300			regulator-max-microvolt = <1304000>;
301		};
302
303		vreg_l8a_0p664: l8 {
304			regulator-min-microvolt = <400000>;
305			regulator-max-microvolt = <728000>;
306		};
307
308		vreg_l9a_1p8: l9 {
309			regulator-min-microvolt = <1800000>;
310			regulator-max-microvolt = <2000000>;
311		};
312
313		vreg_l10a_1p8: l10 {
314			regulator-min-microvolt = <1704000>;
315			regulator-max-microvolt = <1904000>;
316		};
317
318		vreg_l11a_1p8: l11 {
319			regulator-min-microvolt = <1704000>;
320			regulator-max-microvolt = <1952000>;
321			regulator-allow-set-load;
322		};
323
324		vreg_l12a_1p8: l12 {
325			regulator-min-microvolt = <1624000>;
326			regulator-max-microvolt = <1984000>;
327		};
328
329		vreg_l13a_1p8: l13 {
330			regulator-min-microvolt = <1504000>;
331			regulator-max-microvolt = <1952000>;
332		};
333
334		vreg_l14a_1p8: l14 {
335			regulator-min-microvolt = <1704000>;
336			regulator-max-microvolt = <1904000>;
337		};
338
339		vreg_l15a_3p128: l15 {
340			regulator-min-microvolt = <2920000>;
341			regulator-max-microvolt = <3232000>;
342		};
343
344		vreg_l16a_1p3: l16 {
345			regulator-min-microvolt = <1704000>;
346			regulator-max-microvolt = <1904000>;
347		};
348
349		vreg_l17a_1p3: l17 {
350			regulator-min-microvolt = <1152000>;
351			regulator-max-microvolt = <1384000>;
352		};
353
354		vreg_l18a_1p232: l18 {
355			regulator-min-microvolt = <1104000>;
356			regulator-max-microvolt = <1312000>;
357		};
358
359		vreg_l19a_1p8: l19 {
360			regulator-min-microvolt = <1624000>;
361			regulator-max-microvolt = <3304000>;
362		};
363
364		vreg_l20a_1p8: l20 {
365			regulator-min-microvolt = <1624000>;
366			regulator-max-microvolt = <3304000>;
367		};
368
369		vreg_l21a_2p704: l21 {
370			regulator-min-microvolt = <2400000>;
371			regulator-max-microvolt = <3600000>;
372		};
373
374		vreg_l22a_2p96: l22 {
375			regulator-min-microvolt = <2952000>;
376			regulator-max-microvolt = <3304000>;
377			regulator-system-load = <100000>;
378			regulator-allow-set-load;
379		};
380
381		vreg_l23a_3p3: l23 {
382			regulator-min-microvolt = <3200000>;
383			regulator-max-microvolt = <3400000>;
384		};
385
386		vreg_l24a_2p96: l24 {
387			regulator-min-microvolt = <2704000>;
388			regulator-max-microvolt = <3600000>;
389			regulator-system-load = <100000>;
390			regulator-allow-set-load;
391		};
392	};
393};
394
395&sdhc_1 {
396	pinctrl-0 = <&sdc1_state_on>;
397	pinctrl-1 = <&sdc1_state_off>;
398	pinctrl-names = "default", "sleep";
399
400	vmmc-supply = <&vreg_l24a_2p96>;
401	vqmmc-supply = <&vreg_l11a_1p8>;
402	no-sdio;
403	non-removable;
404
405	status = "okay";
406};
407
408&sdhc_2 {
409	cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */
410
411	pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>;
412	pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>;
413	pinctrl-names = "default", "sleep";
414
415	vmmc-supply = <&vreg_l22a_2p96>;
416	vqmmc-supply = <&vreg_l5a_2p96>;
417	no-sdio;
418
419	status = "okay";
420};
421
422&spi5 {
423	status = "okay";
424
425	can@0 {
426		compatible = "microchip,mcp2518fd";
427		reg = <0>;
428		interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
429		clocks = <&clk40M>;
430		spi-max-frequency = <10000000>;
431		vdd-supply = <&vdc_5v>;
432		xceiver-supply = <&vdc_5v>;
433	};
434};
435
436&sleep_clk {
437	clock-frequency = <32000>;
438};
439
440&tlmm {
441	gpio-reserved-ranges = <43 2>, <49 1>, <54 1>,
442			       <56 3>, <61 2>, <64 1>,
443			       <68 1>, <72 8>, <96 1>;
444
445	lt9611_rst_pin: lt9611-rst-state {
446		pins = "gpio41";
447		function = "gpio";
448		input-disable;
449		output-high;
450	};
451
452	lt9611_irq_pin: lt9611-irq-state {
453		pins = "gpio46";
454		function = "gpio";
455		bias-disable;
456	};
457
458	sdc2_card_det_n: sd-card-det-n-state {
459		pins = "gpio88";
460		function = "gpio";
461		drive-strength = <2>;
462		bias-pull-up;
463	};
464};
465
466&uart4 {
467	status = "okay";
468};
469
470&usb {
471	status = "okay";
472};
473
474&usb_dwc3 {
475	maximum-speed = "super-speed";
476	dr_mode = "peripheral";
477};
478
479&usb_hsphy {
480	vdd-supply = <&vreg_l4a_0p9>;
481	vdda-pll-supply = <&vreg_l12a_1p8>;
482	vdda-phy-dpdm-supply = <&vreg_l15a_3p128>;
483
484	status = "okay";
485};
486
487&usb_qmpphy {
488	vdda-phy-supply = <&vreg_l4a_0p9>;
489	vdda-pll-supply = <&vreg_l12a_1p8>;
490
491	status = "okay";
492};
493
494&xo_board {
495	clock-frequency = <19200000>;
496};
497