blob: 94885b9c21c89d0412e071c1e8145d093dfc4097 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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 "pm2250.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 sdhc1 = &sdhc_1;
19 sdhc2 = &sdhc_2;
20 };
21
22 chosen {
23 stdout-path = "serial0:115200n8";
24 };
25
26 gpio-keys {
27 compatible = "gpio-keys";
28 label = "gpio-keys";
29
30 pinctrl-0 = <&key_volp_n>;
31 pinctrl-names = "default";
32
33 key-volume-up {
34 label = "Volume Up";
35 linux,code = <KEY_VOLUMEUP>;
36 gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
37 debounce-interval = <15>;
38 linux,can-disable;
39 wakeup-source;
40 };
41 };
42
43 leds {
44 compatible = "gpio-leds";
45
46 led-bt {
47 label = "blue:bt";
48 function = LED_FUNCTION_BLUETOOTH;
49 color = <LED_COLOR_ID_BLUE>;
50 gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
51 linux,default-trigger = "bluetooth-power";
52 default-state = "off";
53 };
54
55 led-user0 {
56 label = "green:user0";
57 function = LED_FUNCTION_INDICATOR;
58 color = <LED_COLOR_ID_GREEN>;
59 gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
60 linux,default-trigger = "none";
61 default-state = "off";
62 panic-indicator;
63 };
64
65 led-wlan {
66 label = "yellow:wlan";
67 function = LED_FUNCTION_WLAN;
68 color = <LED_COLOR_ID_YELLOW>;
69 gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
70 linux,default-trigger = "phy0tx";
71 default-state = "off";
72 };
73 };
74
75 vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
76 compatible = "regulator-fixed";
77 regulator-name = "VREG_HDMI_OUT_1P2";
78 regulator-min-microvolt = <1200000>;
79 regulator-max-microvolt = <1200000>;
80 vin-supply = <&vdc_1v2>;
81 regulator-always-on;
82 regulator-boot-on;
83 };
84
85 lt9611_3v3: regulator-lt9611-3v3 {
86 compatible = "regulator-fixed";
87 regulator-name = "LT9611_3V3";
88 regulator-min-microvolt = <3300000>;
89 regulator-max-microvolt = <3300000>;
90 vin-supply = <&vdc_3v3>;
91 regulator-always-on;
92 regulator-boot-on;
93 };
94
95 /* Main barrel jack input */
96 vdc_12v: regulator-vdc-12v {
97 compatible = "regulator-fixed";
98 regulator-name = "DC_12V";
99 regulator-min-microvolt = <12000000>;
100 regulator-max-microvolt = <12000000>;
101 regulator-always-on;
102 regulator-boot-on;
103 };
104
105 /* 1.2V supply stepped down from the barrel jack input */
106 vdc_1v2: regulator-vdc-1v2 {
107 compatible = "regulator-fixed";
108 regulator-name = "VDC_1V2";
109 regulator-min-microvolt = <1200000>;
110 regulator-max-microvolt = <1200000>;
111 vin-supply = <&vdc_12v>;
112 regulator-always-on;
113 regulator-boot-on;
114 };
115
116 /* 3.3V supply stepped down from the barrel jack input */
117 vdc_3v3: regulator-vdc-3v3 {
118 compatible = "regulator-fixed";
119 regulator-name = "VDC_3V3";
120 regulator-min-microvolt = <3300000>;
121 regulator-max-microvolt = <3300000>;
122 vin-supply = <&vdc_12v>;
123 regulator-always-on;
124 regulator-boot-on;
125 };
126
127 /* 5V supply stepped down from the barrel jack input */
128 vdc_5v: regulator-vdc-5v {
129 compatible = "regulator-fixed";
130 regulator-name = "VDC_5V";
131
132 regulator-min-microvolt = <5000000>;
133 regulator-max-microvolt = <5000000>;
134 regulator-always-on;
135 regulator-boot-on;
136 };
137
138 /* "Battery" voltage for the SoM, stepped down from the barrel jack input */
139 vdc_vbat_som: regulator-vdc-vbat {
140 compatible = "regulator-fixed";
141 regulator-name = "VBAT_SOM";
142 regulator-min-microvolt = <4200000>;
143 regulator-max-microvolt = <4200000>;
144 regulator-always-on;
145 regulator-boot-on;
146 };
147
148 /* PM2250 charger out, supplied by VBAT */
149 vph_pwr: regulator-vph-pwr {
150 compatible = "regulator-fixed";
151 regulator-name = "vph_pwr";
152 regulator-min-microvolt = <3700000>;
153 regulator-max-microvolt = <3700000>;
154 vin-supply = <&vdc_vbat_som>;
155
156 regulator-always-on;
157 regulator-boot-on;
158 };
159};
160
161&pm2250_resin {
162 linux,code = <KEY_VOLUMEDOWN>;
163 status = "okay";
164};
165
166&qupv3_id_0 {
167 status = "okay";
168};
169
170&remoteproc_adsp {
171 firmware-name = "qcom/qcm2290/adsp.mbn";
172 status = "okay";
173};
174
175&remoteproc_mpss {
176 firmware-name = "qcom/qcm2290/modem.mbn";
177 status = "okay";
178};
179
180&rpm_requests {
181 regulators {
182 compatible = "qcom,rpm-pm2250-regulators";
183 vdd_s3-supply = <&vph_pwr>;
184 vdd_s4-supply = <&vph_pwr>;
185 vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm2250_s3>;
186 vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
187 vdd_l13_l14_l15_l16-supply = <&pm2250_s4>;
188
189 /*
190 * S1 - VDD_APC
191 * S2 - VDD_CX
192 */
193
194 pm2250_s3: s3 {
195 /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
196 regulator-min-microvolt = <1352000>;
197 regulator-max-microvolt = <1352000>;
198 regulator-boot-on;
199 };
200
201 pm2250_s4: s4 {
202 /* 1.2V-2.35V -> 2.05V (Power tree requirements) */
203 regulator-min-microvolt = <2072000>;
204 regulator-max-microvolt = <2072000>;
205 regulator-boot-on;
206 };
207
208 /* L1 - VDD_MX */
209
210 pm2250_l2: l2 {
211 /* LPDDR4X VDD2 */
212 regulator-min-microvolt = <1136000>;
213 regulator-max-microvolt = <1136000>;
214 regulator-always-on;
215 regulator-boot-on;
216 };
217
218 pm2250_l3: l3 {
219 /* LPDDR4X VDDQ */
220 regulator-min-microvolt = <616000>;
221 regulator-max-microvolt = <616000>;
222 regulator-always-on;
223 regulator-boot-on;
224 };
225
226 pm2250_l4: l4 {
227 /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
228 regulator-min-microvolt = <1800000>;
229 regulator-max-microvolt = <2700000>;
230 regulator-allow-set-load;
231 };
232
233 pm2250_l5: l5 {
234 /* CSI/DSI */
235 regulator-min-microvolt = <1232000>;
236 regulator-max-microvolt = <1232000>;
237 regulator-allow-set-load;
238 regulator-boot-on;
239 };
240
241 pm2250_l6: l6 {
242 /* DRAM PLL */
243 regulator-min-microvolt = <928000>;
244 regulator-max-microvolt = <928000>;
245 regulator-always-on;
246 regulator-boot-on;
247 };
248
249 pm2250_l7: l7 {
250 /* Wi-Fi CX/MX */
251 regulator-min-microvolt = <664000>;
252 regulator-max-microvolt = <664000>;
253 };
254
255 /*
256 * L8 - VDD_LPI_CX
257 * L9 - VDD_LPI_MX
258 */
259
260 pm2250_l10: l10 {
261 /* Wi-Fi RFA */
262 regulator-min-microvolt = <1304000>;
263 regulator-max-microvolt = <1304000>;
264 };
265
266 pm2250_l11: l11 {
267 /* GPS RF1 */
268 regulator-min-microvolt = <1000000>;
269 regulator-max-microvolt = <1000000>;
270 regulator-boot-on;
271 };
272
273 pm2250_l12: l12 {
274 /* USB PHYs */
275 regulator-min-microvolt = <928000>;
276 regulator-max-microvolt = <928000>;
277 regulator-allow-set-load;
278 regulator-boot-on;
279 };
280
281 pm2250_l13: l13 {
282 /* USB/QFPROM/PLLs */
283 regulator-min-microvolt = <1800000>;
284 regulator-max-microvolt = <1800000>;
285 regulator-allow-set-load;
286 regulator-boot-on;
287 };
288
289 pm2250_l14: l14 {
290 /* SDHCI1 VQMMC */
291 regulator-min-microvolt = <1800000>;
292 regulator-max-microvolt = <1800000>;
293 regulator-allow-set-load;
294 /* Broken hardware, never turn it off! */
295 regulator-always-on;
296 };
297
298 pm2250_l15: l15 {
299 /* WCD/DSI/BT VDDIO */
300 regulator-min-microvolt = <1800000>;
301 regulator-max-microvolt = <1800000>;
302 regulator-allow-set-load;
303 regulator-always-on;
304 regulator-boot-on;
305 };
306
307 pm2250_l16: l16 {
308 /* GPS RF2 */
309 regulator-min-microvolt = <1800000>;
310 regulator-max-microvolt = <1800000>;
311 regulator-boot-on;
312 };
313
314 pm2250_l17: l17 {
315 regulator-min-microvolt = <3000000>;
316 regulator-max-microvolt = <3000000>;
317 };
318
319 pm2250_l18: l18 {
320 /* VDD_PXn */
321 regulator-min-microvolt = <1800000>;
322 regulator-max-microvolt = <1800000>;
323 };
324
325 pm2250_l19: l19 {
326 /* VDD_PXn */
327 regulator-min-microvolt = <1800000>;
328 regulator-max-microvolt = <1800000>;
329 };
330
331 pm2250_l20: l20 {
332 /* SDHCI1 VMMC */
333 regulator-min-microvolt = <2400000>;
334 regulator-max-microvolt = <3600000>;
335 regulator-allow-set-load;
336 };
337
338 pm2250_l21: l21 {
339 /* SDHCI2 VMMC */
340 regulator-min-microvolt = <2960000>;
341 regulator-max-microvolt = <3300000>;
342 regulator-allow-set-load;
343 regulator-boot-on;
344 };
345
346 pm2250_l22: l22 {
347 /* Wi-Fi */
348 regulator-min-microvolt = <3312000>;
349 regulator-max-microvolt = <3312000>;
350 };
351 };
352};
353
354&sdhc_1 {
355 vmmc-supply = <&pm2250_l20>;
356 vqmmc-supply = <&pm2250_l14>;
357 pinctrl-0 = <&sdc1_state_on>;
358 pinctrl-1 = <&sdc1_state_off>;
359 pinctrl-names = "default", "sleep";
360 non-removable;
361 supports-cqe;
362 no-sdio;
363 no-sd;
364 status = "okay";
365};
366
367&sdhc_2 {
368 vmmc-supply = <&pm2250_l21>;
369 vqmmc-supply = <&pm2250_l4>;
370 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>;
371 pinctrl-0 = <&sdc2_state_on &sd_det_in_on>;
372 pinctrl-1 = <&sdc2_state_off &sd_det_in_off>;
373 pinctrl-names = "default", "sleep";
374 no-sdio;
375 no-mmc;
376 status = "okay";
377};
378
379&tlmm {
380 sd_det_in_on: sd-det-in-on-state {
381 pins = "gpio88";
382 function = "gpio";
383 drive-strength = <2>;
384 bias-pull-up;
385 };
386
387 sd_det_in_off: sd-det-in-off-state {
388 pins = "gpio88";
389 function = "gpio";
390 drive-strength = <2>;
391 bias-disable;
392 };
393
394 key_volp_n: key-volp-n-state {
395 pins = "gpio96";
396 function = "gpio";
397 bias-pull-up;
398 output-disable;
399 };
400};
401
402/* UART connected to the Micro-USB port via a FTDI chip */
403&uart4 {
404 compatible = "qcom,geni-debug-uart";
405 status = "okay";
406};
407
408&usb {
409 status = "okay";
410};
411
412&usb_qmpphy {
413 vdda-phy-supply = <&pm2250_l12>;
414 vdda-pll-supply = <&pm2250_l13>;
415 status = "okay";
416};
417
418&usb_hsphy {
419 vdd-supply = <&pm2250_l12>;
420 vdda-pll-supply = <&pm2250_l13>;
421 vdda-phy-dpdm-supply = <&pm2250_l21>;
422 status = "okay";
423};
424
425&wifi {
426 vdd-0.8-cx-mx-supply = <&pm2250_l7>;
427 vdd-1.8-xo-supply = <&pm2250_l13>;
428 vdd-1.3-rfa-supply = <&pm2250_l10>;
429 vdd-3.3-ch0-supply = <&pm2250_l22>;
430 status = "okay";
431};
432
433&xo_board {
434 clock-frequency = <38400000>;
435};