blob: 6e9dd0312adc5d369136fedbbd6166f7a6f7390c [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"
Tom Rini6bb92fc2024-05-20 09:54:58 -060010#include "pm4125.dtsi"
Tom Rini53633a82024-02-29 12:33:36 -050011
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
Tom Rini93743d22024-04-01 09:08:13 -040026 clocks {
27 clk40M: can-clk {
28 compatible = "fixed-clock";
29 clock-frequency = <40000000>;
30 #clock-cells = <0>;
31 };
32 };
33
Tom Rini53633a82024-02-29 12:33:36 -050034 gpio-keys {
35 compatible = "gpio-keys";
36 label = "gpio-keys";
37
38 pinctrl-0 = <&key_volp_n>;
39 pinctrl-names = "default";
40
41 key-volume-up {
42 label = "Volume Up";
43 linux,code = <KEY_VOLUMEUP>;
44 gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
45 debounce-interval = <15>;
46 linux,can-disable;
47 wakeup-source;
48 };
49 };
50
Tom Rini93743d22024-04-01 09:08:13 -040051 hdmi-connector {
52 compatible = "hdmi-connector";
53 type = "a";
54
55 port {
56 hdmi_con: endpoint {
57 remote-endpoint = <&lt9611_out>;
58 };
59 };
60 };
61
Tom Rini53633a82024-02-29 12:33:36 -050062 leds {
63 compatible = "gpio-leds";
64
65 led-bt {
66 label = "blue:bt";
67 function = LED_FUNCTION_BLUETOOTH;
68 color = <LED_COLOR_ID_BLUE>;
69 gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
70 linux,default-trigger = "bluetooth-power";
71 default-state = "off";
72 };
73
74 led-user0 {
75 label = "green:user0";
76 function = LED_FUNCTION_INDICATOR;
77 color = <LED_COLOR_ID_GREEN>;
78 gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>;
79 linux,default-trigger = "none";
80 default-state = "off";
81 panic-indicator;
82 };
83
84 led-wlan {
85 label = "yellow:wlan";
86 function = LED_FUNCTION_WLAN;
87 color = <LED_COLOR_ID_YELLOW>;
88 gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
89 linux,default-trigger = "phy0tx";
90 default-state = "off";
91 };
92 };
93
94 vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 {
95 compatible = "regulator-fixed";
96 regulator-name = "VREG_HDMI_OUT_1P2";
97 regulator-min-microvolt = <1200000>;
98 regulator-max-microvolt = <1200000>;
99 vin-supply = <&vdc_1v2>;
100 regulator-always-on;
101 regulator-boot-on;
102 };
103
104 lt9611_3v3: regulator-lt9611-3v3 {
105 compatible = "regulator-fixed";
106 regulator-name = "LT9611_3V3";
107 regulator-min-microvolt = <3300000>;
108 regulator-max-microvolt = <3300000>;
109 vin-supply = <&vdc_3v3>;
110 regulator-always-on;
111 regulator-boot-on;
112 };
113
114 /* Main barrel jack input */
115 vdc_12v: regulator-vdc-12v {
116 compatible = "regulator-fixed";
117 regulator-name = "DC_12V";
118 regulator-min-microvolt = <12000000>;
119 regulator-max-microvolt = <12000000>;
120 regulator-always-on;
121 regulator-boot-on;
122 };
123
124 /* 1.2V supply stepped down from the barrel jack input */
125 vdc_1v2: regulator-vdc-1v2 {
126 compatible = "regulator-fixed";
127 regulator-name = "VDC_1V2";
128 regulator-min-microvolt = <1200000>;
129 regulator-max-microvolt = <1200000>;
130 vin-supply = <&vdc_12v>;
131 regulator-always-on;
132 regulator-boot-on;
133 };
134
135 /* 3.3V supply stepped down from the barrel jack input */
136 vdc_3v3: regulator-vdc-3v3 {
137 compatible = "regulator-fixed";
138 regulator-name = "VDC_3V3";
139 regulator-min-microvolt = <3300000>;
140 regulator-max-microvolt = <3300000>;
141 vin-supply = <&vdc_12v>;
142 regulator-always-on;
143 regulator-boot-on;
144 };
145
146 /* 5V supply stepped down from the barrel jack input */
147 vdc_5v: regulator-vdc-5v {
148 compatible = "regulator-fixed";
149 regulator-name = "VDC_5V";
150
151 regulator-min-microvolt = <5000000>;
152 regulator-max-microvolt = <5000000>;
153 regulator-always-on;
154 regulator-boot-on;
155 };
156
157 /* "Battery" voltage for the SoM, stepped down from the barrel jack input */
158 vdc_vbat_som: regulator-vdc-vbat {
159 compatible = "regulator-fixed";
160 regulator-name = "VBAT_SOM";
161 regulator-min-microvolt = <4200000>;
162 regulator-max-microvolt = <4200000>;
163 regulator-always-on;
164 regulator-boot-on;
165 };
166
167 /* PM2250 charger out, supplied by VBAT */
168 vph_pwr: regulator-vph-pwr {
169 compatible = "regulator-fixed";
170 regulator-name = "vph_pwr";
171 regulator-min-microvolt = <3700000>;
172 regulator-max-microvolt = <3700000>;
173 vin-supply = <&vdc_vbat_som>;
174
175 regulator-always-on;
176 regulator-boot-on;
177 };
178};
179
Tom Rini6bb92fc2024-05-20 09:54:58 -0600180&CPU_PD0 {
181 /delete-property/ power-domains;
182};
183
184&CPU_PD1 {
185 /delete-property/ power-domains;
186};
187
188&CPU_PD2 {
189 /delete-property/ power-domains;
190};
191
192&CPU_PD3 {
193 /delete-property/ power-domains;
194};
195
196/delete-node/ &CLUSTER_PD;
197
Tom Rini93743d22024-04-01 09:08:13 -0400198&gpi_dma0 {
199 status = "okay";
200};
201
202&i2c2 {
203 clock-frequency = <400000>;
204 status = "okay";
205
206 lt9611_codec: hdmi-bridge@2b {
207 compatible = "lontium,lt9611uxc";
208 reg = <0x2b>;
209 interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
210 reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
211
212 vdd-supply = <&vreg_hdmi_out_1p2>;
213 vcc-supply = <&lt9611_3v3>;
214
215 pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
216 pinctrl-names = "default";
217 #sound-dai-cells = <1>;
218
219 ports {
220 #address-cells = <1>;
221 #size-cells = <0>;
222
223 port@0 {
224 reg = <0>;
225
226 lt9611_a: endpoint {
227 remote-endpoint = <&mdss_dsi0_out>;
228 };
229 };
230
231 port@2 {
232 reg = <2>;
233
234 lt9611_out: endpoint {
235 remote-endpoint = <&hdmi_con>;
236 };
237 };
238 };
239 };
240};
241
242&mdss {
243 status = "okay";
244};
245
246&mdss_dsi0 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600247 vdda-supply = <&pm4125_l5>;
Tom Rini93743d22024-04-01 09:08:13 -0400248 status = "okay";
249};
250
251&mdss_dsi0_out {
252 remote-endpoint = <&lt9611_a>;
253 data-lanes = <0 1 2 3>;
254};
255
256&mdss_dsi0_phy {
257 status = "okay";
258};
259
Tom Rini6bb92fc2024-05-20 09:54:58 -0600260&pm4125_resin {
Tom Rini53633a82024-02-29 12:33:36 -0500261 linux,code = <KEY_VOLUMEDOWN>;
262 status = "okay";
263};
264
265&qupv3_id_0 {
266 status = "okay";
267};
268
269&remoteproc_adsp {
270 firmware-name = "qcom/qcm2290/adsp.mbn";
271 status = "okay";
272};
273
274&remoteproc_mpss {
275 firmware-name = "qcom/qcm2290/modem.mbn";
276 status = "okay";
277};
278
279&rpm_requests {
280 regulators {
281 compatible = "qcom,rpm-pm2250-regulators";
282 vdd_s3-supply = <&vph_pwr>;
283 vdd_s4-supply = <&vph_pwr>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600284 vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>;
Tom Rini53633a82024-02-29 12:33:36 -0500285 vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600286 vdd_l13_l14_l15_l16-supply = <&pm4125_s4>;
Tom Rini53633a82024-02-29 12:33:36 -0500287
288 /*
289 * S1 - VDD_APC
290 * S2 - VDD_CX
291 */
292
Tom Rini6bb92fc2024-05-20 09:54:58 -0600293 pm4125_s3: s3 {
Tom Rini53633a82024-02-29 12:33:36 -0500294 /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */
295 regulator-min-microvolt = <1352000>;
296 regulator-max-microvolt = <1352000>;
297 regulator-boot-on;
298 };
299
Tom Rini6bb92fc2024-05-20 09:54:58 -0600300 pm4125_s4: s4 {
Tom Rini53633a82024-02-29 12:33:36 -0500301 /* 1.2V-2.35V -> 2.05V (Power tree requirements) */
302 regulator-min-microvolt = <2072000>;
303 regulator-max-microvolt = <2072000>;
304 regulator-boot-on;
305 };
306
307 /* L1 - VDD_MX */
308
Tom Rini6bb92fc2024-05-20 09:54:58 -0600309 pm4125_l2: l2 {
Tom Rini53633a82024-02-29 12:33:36 -0500310 /* LPDDR4X VDD2 */
311 regulator-min-microvolt = <1136000>;
312 regulator-max-microvolt = <1136000>;
313 regulator-always-on;
314 regulator-boot-on;
315 };
316
Tom Rini6bb92fc2024-05-20 09:54:58 -0600317 pm4125_l3: l3 {
Tom Rini53633a82024-02-29 12:33:36 -0500318 /* LPDDR4X VDDQ */
319 regulator-min-microvolt = <616000>;
320 regulator-max-microvolt = <616000>;
321 regulator-always-on;
322 regulator-boot-on;
323 };
324
Tom Rini6bb92fc2024-05-20 09:54:58 -0600325 pm4125_l4: l4 {
Tom Rini53633a82024-02-29 12:33:36 -0500326 /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */
327 regulator-min-microvolt = <1800000>;
328 regulator-max-microvolt = <2700000>;
329 regulator-allow-set-load;
330 };
331
Tom Rini6bb92fc2024-05-20 09:54:58 -0600332 pm4125_l5: l5 {
Tom Rini53633a82024-02-29 12:33:36 -0500333 /* CSI/DSI */
334 regulator-min-microvolt = <1232000>;
335 regulator-max-microvolt = <1232000>;
336 regulator-allow-set-load;
337 regulator-boot-on;
338 };
339
Tom Rini6bb92fc2024-05-20 09:54:58 -0600340 pm4125_l6: l6 {
Tom Rini53633a82024-02-29 12:33:36 -0500341 /* DRAM PLL */
342 regulator-min-microvolt = <928000>;
343 regulator-max-microvolt = <928000>;
344 regulator-always-on;
345 regulator-boot-on;
346 };
347
Tom Rini6bb92fc2024-05-20 09:54:58 -0600348 pm4125_l7: l7 {
Tom Rini53633a82024-02-29 12:33:36 -0500349 /* Wi-Fi CX/MX */
350 regulator-min-microvolt = <664000>;
351 regulator-max-microvolt = <664000>;
352 };
353
354 /*
355 * L8 - VDD_LPI_CX
356 * L9 - VDD_LPI_MX
357 */
358
Tom Rini6bb92fc2024-05-20 09:54:58 -0600359 pm4125_l10: l10 {
Tom Rini53633a82024-02-29 12:33:36 -0500360 /* Wi-Fi RFA */
361 regulator-min-microvolt = <1304000>;
362 regulator-max-microvolt = <1304000>;
363 };
364
Tom Rini6bb92fc2024-05-20 09:54:58 -0600365 pm4125_l11: l11 {
Tom Rini53633a82024-02-29 12:33:36 -0500366 /* GPS RF1 */
367 regulator-min-microvolt = <1000000>;
368 regulator-max-microvolt = <1000000>;
369 regulator-boot-on;
370 };
371
Tom Rini6bb92fc2024-05-20 09:54:58 -0600372 pm4125_l12: l12 {
Tom Rini53633a82024-02-29 12:33:36 -0500373 /* USB PHYs */
374 regulator-min-microvolt = <928000>;
375 regulator-max-microvolt = <928000>;
376 regulator-allow-set-load;
377 regulator-boot-on;
378 };
379
Tom Rini6bb92fc2024-05-20 09:54:58 -0600380 pm4125_l13: l13 {
Tom Rini53633a82024-02-29 12:33:36 -0500381 /* USB/QFPROM/PLLs */
382 regulator-min-microvolt = <1800000>;
383 regulator-max-microvolt = <1800000>;
384 regulator-allow-set-load;
385 regulator-boot-on;
386 };
387
Tom Rini6bb92fc2024-05-20 09:54:58 -0600388 pm4125_l14: l14 {
Tom Rini53633a82024-02-29 12:33:36 -0500389 /* SDHCI1 VQMMC */
390 regulator-min-microvolt = <1800000>;
391 regulator-max-microvolt = <1800000>;
392 regulator-allow-set-load;
393 /* Broken hardware, never turn it off! */
394 regulator-always-on;
395 };
396
Tom Rini6bb92fc2024-05-20 09:54:58 -0600397 pm4125_l15: l15 {
Tom Rini53633a82024-02-29 12:33:36 -0500398 /* WCD/DSI/BT VDDIO */
399 regulator-min-microvolt = <1800000>;
400 regulator-max-microvolt = <1800000>;
401 regulator-allow-set-load;
402 regulator-always-on;
403 regulator-boot-on;
404 };
405
Tom Rini6bb92fc2024-05-20 09:54:58 -0600406 pm4125_l16: l16 {
Tom Rini53633a82024-02-29 12:33:36 -0500407 /* GPS RF2 */
408 regulator-min-microvolt = <1800000>;
409 regulator-max-microvolt = <1800000>;
410 regulator-boot-on;
411 };
412
Tom Rini6bb92fc2024-05-20 09:54:58 -0600413 pm4125_l17: l17 {
Tom Rini53633a82024-02-29 12:33:36 -0500414 regulator-min-microvolt = <3000000>;
415 regulator-max-microvolt = <3000000>;
416 };
417
Tom Rini6bb92fc2024-05-20 09:54:58 -0600418 pm4125_l18: l18 {
Tom Rini53633a82024-02-29 12:33:36 -0500419 /* VDD_PXn */
420 regulator-min-microvolt = <1800000>;
421 regulator-max-microvolt = <1800000>;
422 };
423
Tom Rini6bb92fc2024-05-20 09:54:58 -0600424 pm4125_l19: l19 {
Tom Rini53633a82024-02-29 12:33:36 -0500425 /* VDD_PXn */
426 regulator-min-microvolt = <1800000>;
427 regulator-max-microvolt = <1800000>;
428 };
429
Tom Rini6bb92fc2024-05-20 09:54:58 -0600430 pm4125_l20: l20 {
Tom Rini53633a82024-02-29 12:33:36 -0500431 /* SDHCI1 VMMC */
432 regulator-min-microvolt = <2400000>;
433 regulator-max-microvolt = <3600000>;
434 regulator-allow-set-load;
435 };
436
Tom Rini6bb92fc2024-05-20 09:54:58 -0600437 pm4125_l21: l21 {
Tom Rini53633a82024-02-29 12:33:36 -0500438 /* SDHCI2 VMMC */
439 regulator-min-microvolt = <2960000>;
440 regulator-max-microvolt = <3300000>;
441 regulator-allow-set-load;
442 regulator-boot-on;
443 };
444
Tom Rini6bb92fc2024-05-20 09:54:58 -0600445 pm4125_l22: l22 {
Tom Rini53633a82024-02-29 12:33:36 -0500446 /* Wi-Fi */
447 regulator-min-microvolt = <3312000>;
448 regulator-max-microvolt = <3312000>;
449 };
450 };
451};
452
453&sdhc_1 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600454 vmmc-supply = <&pm4125_l20>;
455 vqmmc-supply = <&pm4125_l14>;
Tom Rini53633a82024-02-29 12:33:36 -0500456 pinctrl-0 = <&sdc1_state_on>;
457 pinctrl-1 = <&sdc1_state_off>;
458 pinctrl-names = "default", "sleep";
459 non-removable;
460 supports-cqe;
461 no-sdio;
462 no-sd;
463 status = "okay";
464};
465
466&sdhc_2 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600467 vmmc-supply = <&pm4125_l21>;
468 vqmmc-supply = <&pm4125_l4>;
Tom Rini53633a82024-02-29 12:33:36 -0500469 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>;
470 pinctrl-0 = <&sdc2_state_on &sd_det_in_on>;
471 pinctrl-1 = <&sdc2_state_off &sd_det_in_off>;
472 pinctrl-names = "default", "sleep";
473 no-sdio;
474 no-mmc;
475 status = "okay";
Tom Rini93743d22024-04-01 09:08:13 -0400476};
477
478&spi5 {
479 status = "okay";
480
481 can@0 {
482 compatible = "microchip,mcp2518fd";
483 reg = <0>;
484 interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>;
485 clocks = <&clk40M>;
486 spi-max-frequency = <10000000>;
487 vdd-supply = <&vdc_5v>;
488 xceiver-supply = <&vdc_5v>;
489 };
Tom Rini53633a82024-02-29 12:33:36 -0500490};
491
492&tlmm {
Tom Rini93743d22024-04-01 09:08:13 -0400493 lt9611_rst_pin: lt9611-rst-state {
494 pins = "gpio41";
495 function = "gpio";
496 input-disable;
497 output-high;
498 };
499
500 lt9611_irq_pin: lt9611-irq-state {
501 pins = "gpio46";
502 function = "gpio";
503 bias-disable;
504 };
505
Tom Rini53633a82024-02-29 12:33:36 -0500506 sd_det_in_on: sd-det-in-on-state {
507 pins = "gpio88";
508 function = "gpio";
509 drive-strength = <2>;
510 bias-pull-up;
511 };
512
513 sd_det_in_off: sd-det-in-off-state {
514 pins = "gpio88";
515 function = "gpio";
516 drive-strength = <2>;
517 bias-disable;
518 };
519
520 key_volp_n: key-volp-n-state {
521 pins = "gpio96";
522 function = "gpio";
523 bias-pull-up;
524 output-disable;
525 };
526};
527
528/* UART connected to the Micro-USB port via a FTDI chip */
529&uart4 {
530 compatible = "qcom,geni-debug-uart";
531 status = "okay";
532};
533
534&usb {
535 status = "okay";
536};
537
538&usb_qmpphy {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600539 vdda-phy-supply = <&pm4125_l12>;
540 vdda-pll-supply = <&pm4125_l13>;
Tom Rini53633a82024-02-29 12:33:36 -0500541 status = "okay";
542};
543
Tom Rini93743d22024-04-01 09:08:13 -0400544&usb_dwc3 {
545 dr_mode = "host";
546};
547
Tom Rini53633a82024-02-29 12:33:36 -0500548&usb_hsphy {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600549 vdd-supply = <&pm4125_l12>;
550 vdda-pll-supply = <&pm4125_l13>;
551 vdda-phy-dpdm-supply = <&pm4125_l21>;
Tom Rini53633a82024-02-29 12:33:36 -0500552 status = "okay";
553};
554
555&wifi {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600556 vdd-0.8-cx-mx-supply = <&pm4125_l7>;
557 vdd-1.8-xo-supply = <&pm4125_l13>;
558 vdd-1.3-rfa-supply = <&pm4125_l10>;
559 vdd-3.3-ch0-supply = <&pm4125_l22>;
Tom Rini93743d22024-04-01 09:08:13 -0400560 qcom,ath10k-calibration-variant = "Thundercomm_RB1";
Tom Rini53633a82024-02-29 12:33:36 -0500561 status = "okay";
562};
563
564&xo_board {
565 clock-frequency = <38400000>;
566};