1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023, Linaro Limited
4 */
5
6/dts-v1/;
7
8#include "sm4250.dtsi"
9
10/ {
11	model = "Qualcomm Technologies, Inc. QRB4210 RB2";
12	compatible = "qcom,qrb4210-rb2", "qcom,qrb4210", "qcom,sm4250";
13
14	aliases {
15		serial0 = &uart4;
16	};
17
18	chosen {
19		stdout-path = "serial0:115200n8";
20	};
21
22	hdmi-connector {
23		compatible = "hdmi-connector";
24		type = "a";
25
26		port {
27			hdmi_con: endpoint {
28				remote-endpoint = <&lt9611_out>;
29			};
30		};
31	};
32
33	vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
34		compatible = "regulator-fixed";
35		regulator-name = "VREG_HDMI_OUT_1P2";
36		regulator-min-microvolt = <1200000>;
37		regulator-max-microvolt = <1200000>;
38		vin-supply = <&vdc_1v2>;
39		regulator-always-on;
40		regulator-boot-on;
41	};
42
43	lt9611_3v3: regulator-lt9611-3v3 {
44		compatible = "regulator-fixed";
45		regulator-name = "LT9611_3V3";
46		regulator-min-microvolt = <3300000>;
47		regulator-max-microvolt = <3300000>;
48		vin-supply = <&vdc_3v3>;
49		regulator-always-on;
50		regulator-boot-on;
51	};
52
53	/* Main barrel jack input */
54	vdc_12v: regulator-vdc-12v {
55		compatible = "regulator-fixed";
56		regulator-name = "DC_12V";
57		regulator-min-microvolt = <12000000>;
58		regulator-max-microvolt = <12000000>;
59		regulator-always-on;
60		regulator-boot-on;
61	};
62
63	/* 1.2V supply stepped down from the barrel jack input */
64	vdc_1v2: regulator-vdc-1v2 {
65		compatible = "regulator-fixed";
66		regulator-name = "VDC_1V2";
67		regulator-min-microvolt = <1200000>;
68		regulator-max-microvolt = <1200000>;
69		vin-supply = <&vdc_12v>;
70		regulator-always-on;
71		regulator-boot-on;
72	};
73
74	/* 3.3V supply stepped down from the barrel jack input */
75	vdc_3v3: regulator-vdc-3v3 {
76		compatible = "regulator-fixed";
77		regulator-name = "VDC_3V3";
78		regulator-min-microvolt = <3300000>;
79		regulator-max-microvolt = <3300000>;
80		vin-supply = <&vdc_12v>;
81		regulator-always-on;
82		regulator-boot-on;
83	};
84
85	/* 5V supply stepped down from the barrel jack input */
86	vdc_5v: regulator-vdc-5v {
87		compatible = "regulator-fixed";
88		regulator-name = "VDC_5V";
89
90		regulator-min-microvolt = <5000000>;
91		regulator-max-microvolt = <5000000>;
92		regulator-always-on;
93		regulator-boot-on;
94	};
95
96	/* "Battery" voltage for the SoM, stepped down from the barrel jack input */
97	vdc_vbat_som: regulator-vdc-vbat {
98		compatible = "regulator-fixed";
99		regulator-name = "VBAT_SOM";
100		regulator-min-microvolt = <4200000>;
101		regulator-max-microvolt = <4200000>;
102		regulator-always-on;
103		regulator-boot-on;
104	};
105
106	/* PMI632 charger out, supplied by VBAT */
107	vph_pwr: regulator-vph-pwr {
108		compatible = "regulator-fixed";
109		regulator-name = "vph_pwr";
110		regulator-min-microvolt = <3700000>;
111		regulator-max-microvolt = <3700000>;
112		vin-supply = <&vdc_vbat_som>;
113
114		regulator-always-on;
115		regulator-boot-on;
116	};
117};
118
119&gpi_dma0 {
120	status = "okay";
121};
122
123&i2c2 {
124	clock-frequency = <400000>;
125	status = "okay";
126
127	lt9611_codec: hdmi-bridge@2b {
128		compatible = "lontium,lt9611uxc";
129		reg = <0x2b>;
130		interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
131		reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
132
133		vdd-supply = <&vreg_hdmi_out_1p2>;
134		vcc-supply = <&lt9611_3v3>;
135
136		pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
137		pinctrl-names = "default";
138		#sound-dai-cells = <1>;
139
140		ports {
141			#address-cells = <1>;
142			#size-cells = <0>;
143
144			port@0 {
145				reg = <0>;
146
147				lt9611_a: endpoint {
148					remote-endpoint = <&mdss_dsi0_out>;
149				};
150			};
151
152			port@2 {
153				reg = <2>;
154
155				lt9611_out: endpoint {
156					remote-endpoint = <&hdmi_con>;
157				};
158			};
159		};
160	};
161};
162
163&mdss {
164	status = "okay";
165};
166
167&mdss_dsi0 {
168	vdda-supply = <&vreg_l18a_1p232>;
169	status = "okay";
170};
171
172&mdss_dsi0_out {
173	remote-endpoint = <&lt9611_a>;
174	data-lanes = <0 1 2 3>;
175};
176
177&mdss_dsi0_phy {
178	status = "okay";
179};
180
181&qupv3_id_0 {
182	status = "okay";
183};
184
185&rpm_requests {
186	regulators {
187		compatible = "qcom,rpm-pm6125-regulators";
188
189		vdd-s1-supply = <&vph_pwr>;
190		vdd-s2-supply = <&vph_pwr>;
191		vdd-s3-supply = <&vph_pwr>;
192		vdd-s4-supply = <&vph_pwr>;
193		vdd-s5-supply = <&vph_pwr>;
194		vdd-s6-supply = <&vph_pwr>;
195		vdd-s7-supply = <&vph_pwr>;
196		vdd-s8-supply = <&vph_pwr>;
197		vdd-s9-supply = <&vph_pwr>;
198		vdd-s10-supply = <&vph_pwr>;
199
200		vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>;
201		vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>;
202		vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>;
203		vdd-l6-l8-supply = <&vreg_s5a_0p848>;
204		vdd-l9-l11-supply = <&vreg_s7a_2p04>;
205		vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>;
206		vdd-l12-l16-supply = <&vreg_s7a_2p04>;
207		vdd-l23-l24-supply = <&vph_pwr>;
208
209		vreg_s5a_0p848: s5 {
210			regulator-min-microvolt = <920000>;
211			regulator-max-microvolt = <1128000>;
212		};
213
214		vreg_s6a_1p352: s6 {
215			regulator-min-microvolt = <304000>;
216			regulator-max-microvolt = <1456000>;
217		};
218
219		vreg_s7a_2p04: s7 {
220			regulator-min-microvolt = <1280000>;
221			regulator-max-microvolt = <2080000>;
222		};
223
224		vreg_l1a_1p0: l1 {
225			regulator-min-microvolt = <952000>;
226			regulator-max-microvolt = <1152000>;
227		};
228
229		vreg_l4a_0p9: l4 {
230			regulator-min-microvolt = <488000>;
231			regulator-max-microvolt = <1000000>;
232		};
233
234		vreg_l5a_2p96: l5 {
235			regulator-min-microvolt = <1648000>;
236			regulator-max-microvolt = <3056000>;
237		};
238
239		vreg_l6a_0p6: l6 {
240			regulator-min-microvolt = <576000>;
241			regulator-max-microvolt = <656000>;
242		};
243
244		vreg_l7a_1p256: l7 {
245			regulator-min-microvolt = <1200000>;
246			regulator-max-microvolt = <1304000>;
247		};
248
249		vreg_l8a_0p664: l8 {
250			regulator-min-microvolt = <400000>;
251			regulator-max-microvolt = <728000>;
252		};
253
254		vreg_l9a_1p8: l9 {
255			regulator-min-microvolt = <1800000>;
256			regulator-max-microvolt = <2000000>;
257		};
258
259		vreg_l10a_1p8: l10 {
260			regulator-min-microvolt = <1704000>;
261			regulator-max-microvolt = <1904000>;
262		};
263
264		vreg_l11a_1p8: l11 {
265			regulator-min-microvolt = <1704000>;
266			regulator-max-microvolt = <1952000>;
267		};
268
269		vreg_l12a_1p8: l12 {
270			regulator-min-microvolt = <1624000>;
271			regulator-max-microvolt = <1984000>;
272		};
273
274		vreg_l13a_1p8: l13 {
275			regulator-min-microvolt = <1504000>;
276			regulator-max-microvolt = <1952000>;
277		};
278
279		vreg_l14a_1p8: l14 {
280			regulator-min-microvolt = <1704000>;
281			regulator-max-microvolt = <1904000>;
282		};
283
284		vreg_l15a_3p128: l15 {
285			regulator-min-microvolt = <2920000>;
286			regulator-max-microvolt = <3232000>;
287		};
288
289		vreg_l16a_1p3: l16 {
290			regulator-min-microvolt = <1704000>;
291			regulator-max-microvolt = <1904000>;
292		};
293
294		vreg_l17a_1p3: l17 {
295			regulator-min-microvolt = <1152000>;
296			regulator-max-microvolt = <1384000>;
297		};
298
299		vreg_l18a_1p232: l18 {
300			regulator-min-microvolt = <1104000>;
301			regulator-max-microvolt = <1312000>;
302		};
303
304		vreg_l19a_1p8: l19 {
305			regulator-min-microvolt = <1624000>;
306			regulator-max-microvolt = <3304000>;
307		};
308
309		vreg_l20a_1p8: l20 {
310			regulator-min-microvolt = <1624000>;
311			regulator-max-microvolt = <3304000>;
312		};
313
314		vreg_l21a_2p704: l21 {
315			regulator-min-microvolt = <2400000>;
316			regulator-max-microvolt = <3600000>;
317		};
318
319		vreg_l22a_2p96: l22 {
320			regulator-min-microvolt = <2952000>;
321			regulator-max-microvolt = <3304000>;
322			regulator-system-load = <100000>;
323			regulator-allow-set-load;
324		};
325
326		vreg_l23a_3p3: l23 {
327			regulator-min-microvolt = <3200000>;
328			regulator-max-microvolt = <3400000>;
329		};
330
331		vreg_l24a_2p96: l24 {
332			regulator-min-microvolt = <2704000>;
333			regulator-max-microvolt = <3600000>;
334			regulator-system-load = <100000>;
335			regulator-allow-set-load;
336		};
337	};
338};
339
340&sdhc_1 {
341	vmmc-supply = <&vreg_l24a_2p96>;
342	vqmmc-supply = <&vreg_l11a_1p8>;
343	no-sdio;
344	non-removable;
345
346	status = "okay";
347};
348
349&sdhc_2 {
350	cd-gpios = <&tlmm 88 GPIO_ACTIVE_HIGH>; /* card detect gpio */
351	vmmc-supply = <&vreg_l22a_2p96>;
352	vqmmc-supply = <&vreg_l5a_2p96>;
353	no-sdio;
354
355	status = "okay";
356};
357
358&sleep_clk {
359	clock-frequency = <32000>;
360};
361
362&tlmm {
363	gpio-reserved-ranges = <43 2>, <47 1>,
364			       <49 1>, <52 1>, <54 1>,
365			       <56 3>, <61 2>, <64 1>,
366			       <68 1>, <72 8>, <96 1>;
367
368	lt9611_rst_pin: lt9611-rst-state {
369		pins = "gpio41";
370		function = "gpio";
371		input-disable;
372		output-high;
373	};
374
375	lt9611_irq_pin: lt9611-irq-state {
376		pins = "gpio46";
377		function = "gpio";
378		bias-disable;
379	};
380};
381
382&uart4 {
383	status = "okay";
384};
385
386&xo_board {
387	clock-frequency = <19200000>;
388};
389