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 sdhc1 = &sdhc_1; 19 sdhc2 = &sdhc_2; 20 }; 21 22 chosen { 23 stdout-path = "serial0:115200n8"; 24 }; 25 26 clocks { 27 clk40m: can-clk { 28 compatible = "fixed-clock"; 29 clock-frequency = <40000000>; 30 #clock-cells = <0>; 31 }; 32 }; 33 34 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 51 hdmi-connector { 52 compatible = "hdmi-connector"; 53 type = "a"; 54 55 port { 56 hdmi_con: endpoint { 57 remote-endpoint = <<9611_out>; 58 }; 59 }; 60 }; 61 62 i2c2_gpio: i2c { 63 compatible = "i2c-gpio"; 64 65 sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; 66 scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>; 67 #address-cells = <1>; 68 #size-cells = <0>; 69 70 status = "disabled"; 71 }; 72 73 leds { 74 compatible = "gpio-leds"; 75 76 led-bt { 77 label = "blue:bt"; 78 function = LED_FUNCTION_BLUETOOTH; 79 color = <LED_COLOR_ID_BLUE>; 80 gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; 81 linux,default-trigger = "bluetooth-power"; 82 default-state = "off"; 83 }; 84 85 led-user0 { 86 label = "green:user0"; 87 function = LED_FUNCTION_INDICATOR; 88 color = <LED_COLOR_ID_GREEN>; 89 gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; 90 linux,default-trigger = "none"; 91 default-state = "off"; 92 panic-indicator; 93 }; 94 95 led-wlan { 96 label = "yellow:wlan"; 97 function = LED_FUNCTION_WLAN; 98 color = <LED_COLOR_ID_YELLOW>; 99 gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>; 100 linux,default-trigger = "phy0tx"; 101 default-state = "off"; 102 }; 103 }; 104 105 vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 { 106 compatible = "regulator-fixed"; 107 regulator-name = "VREG_HDMI_OUT_1P2"; 108 regulator-min-microvolt = <1200000>; 109 regulator-max-microvolt = <1200000>; 110 vin-supply = <&vdc_1v2>; 111 regulator-always-on; 112 regulator-boot-on; 113 }; 114 115 lt9611_3v3: regulator-lt9611-3v3 { 116 compatible = "regulator-fixed"; 117 regulator-name = "LT9611_3V3"; 118 regulator-min-microvolt = <3300000>; 119 regulator-max-microvolt = <3300000>; 120 vin-supply = <&vdc_3v3>; 121 regulator-always-on; 122 regulator-boot-on; 123 }; 124 125 /* Main barrel jack input */ 126 vdc_12v: regulator-vdc-12v { 127 compatible = "regulator-fixed"; 128 regulator-name = "DC_12V"; 129 regulator-min-microvolt = <12000000>; 130 regulator-max-microvolt = <12000000>; 131 regulator-always-on; 132 regulator-boot-on; 133 }; 134 135 /* 1.2V supply stepped down from the barrel jack input */ 136 vdc_1v2: regulator-vdc-1v2 { 137 compatible = "regulator-fixed"; 138 regulator-name = "VDC_1V2"; 139 regulator-min-microvolt = <1200000>; 140 regulator-max-microvolt = <1200000>; 141 vin-supply = <&vdc_12v>; 142 regulator-always-on; 143 regulator-boot-on; 144 }; 145 146 /* 3.3V supply stepped down from the barrel jack input */ 147 vdc_3v3: regulator-vdc-3v3 { 148 compatible = "regulator-fixed"; 149 regulator-name = "VDC_3V3"; 150 regulator-min-microvolt = <3300000>; 151 regulator-max-microvolt = <3300000>; 152 vin-supply = <&vdc_12v>; 153 regulator-always-on; 154 regulator-boot-on; 155 }; 156 157 /* 5V supply stepped down from the barrel jack input */ 158 vdc_5v: regulator-vdc-5v { 159 compatible = "regulator-fixed"; 160 regulator-name = "VDC_5V"; 161 162 regulator-min-microvolt = <5000000>; 163 regulator-max-microvolt = <5000000>; 164 regulator-always-on; 165 regulator-boot-on; 166 }; 167 168 /* "Battery" voltage for the SoM, stepped down from the barrel jack input */ 169 vdc_vbat_som: regulator-vdc-vbat { 170 compatible = "regulator-fixed"; 171 regulator-name = "VBAT_SOM"; 172 regulator-min-microvolt = <4200000>; 173 regulator-max-microvolt = <4200000>; 174 regulator-always-on; 175 regulator-boot-on; 176 }; 177 178 /* PM2250 charger out, supplied by VBAT */ 179 vph_pwr: regulator-vph-pwr { 180 compatible = "regulator-fixed"; 181 regulator-name = "vph_pwr"; 182 regulator-min-microvolt = <3700000>; 183 regulator-max-microvolt = <3700000>; 184 vin-supply = <&vdc_vbat_som>; 185 186 regulator-always-on; 187 regulator-boot-on; 188 }; 189}; 190 191&cpu_pd0 { 192 /delete-property/ power-domains; 193}; 194 195&cpu_pd1 { 196 /delete-property/ power-domains; 197}; 198 199&cpu_pd2 { 200 /delete-property/ power-domains; 201}; 202 203&cpu_pd3 { 204 /delete-property/ power-domains; 205}; 206 207/delete-node/ &cluster_pd; 208 209&gpi_dma0 { 210 status = "okay"; 211}; 212 213&gpu { 214 status = "okay"; 215 216 zap-shader { 217 firmware-name = "qcom/qcm2290/a702_zap.mbn"; 218 }; 219}; 220 221&i2c2_gpio { 222 clock-frequency = <400000>; 223 status = "okay"; 224 225 lt9611_codec: hdmi-bridge@2b { 226 compatible = "lontium,lt9611uxc"; 227 reg = <0x2b>; 228 interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>; 229 reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>; 230 231 vdd-supply = <&vreg_hdmi_out_1p2>; 232 vcc-supply = <<9611_3v3>; 233 234 pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; 235 pinctrl-names = "default"; 236 #sound-dai-cells = <1>; 237 238 ports { 239 #address-cells = <1>; 240 #size-cells = <0>; 241 242 port@0 { 243 reg = <0>; 244 245 lt9611_a: endpoint { 246 remote-endpoint = <&mdss_dsi0_out>; 247 }; 248 }; 249 250 port@2 { 251 reg = <2>; 252 253 lt9611_out: endpoint { 254 remote-endpoint = <&hdmi_con>; 255 }; 256 }; 257 }; 258 }; 259}; 260 261&mdss { 262 status = "okay"; 263}; 264 265&mdss_dsi0 { 266 vdda-supply = <&pm4125_l5>; 267 status = "okay"; 268}; 269 270&mdss_dsi0_out { 271 remote-endpoint = <<9611_a>; 272 data-lanes = <0 1 2 3>; 273}; 274 275&mdss_dsi0_phy { 276 status = "okay"; 277}; 278 279&pm4125_resin { 280 linux,code = <KEY_VOLUMEDOWN>; 281 status = "okay"; 282}; 283 284&pm4125_typec { 285 status = "okay"; 286 287 connector { 288 compatible = "usb-c-connector"; 289 290 power-role = "dual"; 291 data-role = "dual"; 292 self-powered; 293 294 typec-power-opmode = "default"; 295 pd-disable; 296 297 ports { 298 #address-cells = <1>; 299 #size-cells = <0>; 300 301 port@0 { 302 reg = <0>; 303 pm4125_hs_in: endpoint { 304 remote-endpoint = <&usb_dwc3_hs>; 305 }; 306 }; 307 308 port@1 { 309 reg = <1>; 310 pm4125_ss_in: endpoint { 311 remote-endpoint = <&usb_qmpphy_out>; 312 }; 313 }; 314 }; 315 }; 316}; 317 318&pm4125_vbus { 319 regulator-min-microamp = <500000>; 320 regulator-max-microamp = <500000>; 321 status = "okay"; 322}; 323 324&qupv3_id_0 { 325 status = "okay"; 326}; 327 328&remoteproc_adsp { 329 firmware-name = "qcom/qcm2290/adsp.mbn"; 330 status = "okay"; 331}; 332 333&remoteproc_mpss { 334 firmware-name = "qcom/qcm2290/modem.mbn"; 335 status = "okay"; 336}; 337 338&rpm_requests { 339 regulators { 340 compatible = "qcom,rpm-pm2250-regulators"; 341 vdd_s3-supply = <&vph_pwr>; 342 vdd_s4-supply = <&vph_pwr>; 343 vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>; 344 vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>; 345 vdd_l13_l14_l15_l16-supply = <&pm4125_s4>; 346 347 /* 348 * S1 - VDD_APC 349 * S2 - VDD_CX 350 */ 351 352 pm4125_s3: s3 { 353 /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */ 354 regulator-min-microvolt = <1352000>; 355 regulator-max-microvolt = <1352000>; 356 regulator-boot-on; 357 }; 358 359 pm4125_s4: s4 { 360 /* 1.2V-2.35V -> 2.05V (Power tree requirements) */ 361 regulator-min-microvolt = <2072000>; 362 regulator-max-microvolt = <2072000>; 363 regulator-boot-on; 364 }; 365 366 /* L1 - VDD_MX */ 367 368 pm4125_l2: l2 { 369 /* LPDDR4X VDD2 */ 370 regulator-min-microvolt = <1136000>; 371 regulator-max-microvolt = <1136000>; 372 regulator-always-on; 373 regulator-boot-on; 374 }; 375 376 pm4125_l3: l3 { 377 /* LPDDR4X VDDQ */ 378 regulator-min-microvolt = <616000>; 379 regulator-max-microvolt = <616000>; 380 regulator-always-on; 381 regulator-boot-on; 382 }; 383 384 pm4125_l4: l4 { 385 /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */ 386 regulator-min-microvolt = <1800000>; 387 regulator-max-microvolt = <2700000>; 388 regulator-allow-set-load; 389 }; 390 391 pm4125_l5: l5 { 392 /* CSI/DSI */ 393 regulator-min-microvolt = <1232000>; 394 regulator-max-microvolt = <1232000>; 395 regulator-allow-set-load; 396 regulator-boot-on; 397 }; 398 399 pm4125_l6: l6 { 400 /* DRAM PLL */ 401 regulator-min-microvolt = <928000>; 402 regulator-max-microvolt = <928000>; 403 regulator-always-on; 404 regulator-boot-on; 405 }; 406 407 pm4125_l7: l7 { 408 /* Wi-Fi CX/MX */ 409 regulator-min-microvolt = <664000>; 410 regulator-max-microvolt = <664000>; 411 }; 412 413 /* 414 * L8 - VDD_LPI_CX 415 * L9 - VDD_LPI_MX 416 */ 417 418 pm4125_l10: l10 { 419 /* Wi-Fi RFA */ 420 regulator-min-microvolt = <1304000>; 421 regulator-max-microvolt = <1304000>; 422 }; 423 424 pm4125_l11: l11 { 425 /* GPS RF1 */ 426 regulator-min-microvolt = <1000000>; 427 regulator-max-microvolt = <1000000>; 428 regulator-boot-on; 429 }; 430 431 pm4125_l12: l12 { 432 /* USB PHYs */ 433 regulator-min-microvolt = <928000>; 434 regulator-max-microvolt = <928000>; 435 regulator-allow-set-load; 436 regulator-boot-on; 437 }; 438 439 pm4125_l13: l13 { 440 /* USB/QFPROM/PLLs */ 441 regulator-min-microvolt = <1800000>; 442 regulator-max-microvolt = <1800000>; 443 regulator-allow-set-load; 444 regulator-boot-on; 445 }; 446 447 pm4125_l14: l14 { 448 /* SDHCI1 VQMMC */ 449 regulator-min-microvolt = <1800000>; 450 regulator-max-microvolt = <1800000>; 451 regulator-allow-set-load; 452 /* Broken hardware, never turn it off! */ 453 regulator-always-on; 454 }; 455 456 pm4125_l15: l15 { 457 /* WCD/DSI/BT VDDIO */ 458 regulator-min-microvolt = <1800000>; 459 regulator-max-microvolt = <1800000>; 460 regulator-allow-set-load; 461 regulator-always-on; 462 regulator-boot-on; 463 }; 464 465 pm4125_l16: l16 { 466 /* GPS RF2 */ 467 regulator-min-microvolt = <1800000>; 468 regulator-max-microvolt = <1800000>; 469 regulator-boot-on; 470 }; 471 472 pm4125_l17: l17 { 473 regulator-min-microvolt = <3000000>; 474 regulator-max-microvolt = <3000000>; 475 }; 476 477 pm4125_l18: l18 { 478 /* VDD_PXn */ 479 regulator-min-microvolt = <1800000>; 480 regulator-max-microvolt = <1800000>; 481 }; 482 483 pm4125_l19: l19 { 484 /* VDD_PXn */ 485 regulator-min-microvolt = <1800000>; 486 regulator-max-microvolt = <1800000>; 487 }; 488 489 pm4125_l20: l20 { 490 /* SDHCI1 VMMC */ 491 regulator-min-microvolt = <2400000>; 492 regulator-max-microvolt = <3600000>; 493 regulator-allow-set-load; 494 }; 495 496 pm4125_l21: l21 { 497 /* SDHCI2 VMMC */ 498 regulator-min-microvolt = <2960000>; 499 regulator-max-microvolt = <3300000>; 500 regulator-allow-set-load; 501 regulator-boot-on; 502 }; 503 504 pm4125_l22: l22 { 505 /* Wi-Fi */ 506 regulator-min-microvolt = <3312000>; 507 regulator-max-microvolt = <3312000>; 508 }; 509 }; 510}; 511 512&sdhc_1 { 513 vmmc-supply = <&pm4125_l20>; 514 vqmmc-supply = <&pm4125_l14>; 515 pinctrl-0 = <&sdc1_state_on>; 516 pinctrl-1 = <&sdc1_state_off>; 517 pinctrl-names = "default", "sleep"; 518 non-removable; 519 supports-cqe; 520 no-sdio; 521 no-sd; 522 status = "okay"; 523}; 524 525&sdhc_2 { 526 vmmc-supply = <&pm4125_l21>; 527 vqmmc-supply = <&pm4125_l4>; 528 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; 529 pinctrl-0 = <&sdc2_state_on &sd_det_in_on>; 530 pinctrl-1 = <&sdc2_state_off &sd_det_in_off>; 531 pinctrl-names = "default", "sleep"; 532 no-sdio; 533 no-mmc; 534 status = "okay"; 535}; 536 537&spi5 { 538 status = "okay"; 539 540 can@0 { 541 compatible = "microchip,mcp2518fd"; 542 reg = <0>; 543 interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>; 544 clocks = <&clk40m>; 545 spi-max-frequency = <10000000>; 546 vdd-supply = <&vdc_5v>; 547 xceiver-supply = <&vdc_5v>; 548 }; 549}; 550 551&tlmm { 552 lt9611_rst_pin: lt9611-rst-state { 553 pins = "gpio41"; 554 function = "gpio"; 555 input-disable; 556 output-high; 557 }; 558 559 lt9611_irq_pin: lt9611-irq-state { 560 pins = "gpio46"; 561 function = "gpio"; 562 bias-disable; 563 }; 564 565 sd_det_in_on: sd-det-in-on-state { 566 pins = "gpio88"; 567 function = "gpio"; 568 drive-strength = <2>; 569 bias-pull-up; 570 }; 571 572 sd_det_in_off: sd-det-in-off-state { 573 pins = "gpio88"; 574 function = "gpio"; 575 drive-strength = <2>; 576 bias-disable; 577 }; 578 579 key_volp_n: key-volp-n-state { 580 pins = "gpio96"; 581 function = "gpio"; 582 bias-pull-up; 583 output-disable; 584 }; 585}; 586 587/* UART connected to the Micro-USB port via a FTDI chip */ 588&uart4 { 589 compatible = "qcom,geni-debug-uart"; 590 status = "okay"; 591}; 592 593&usb { 594 status = "okay"; 595}; 596 597&usb_dwc3_hs { 598 remote-endpoint = <&pm4125_hs_in>; 599}; 600 601&usb_hsphy { 602 vdd-supply = <&pm4125_l12>; 603 vdda-pll-supply = <&pm4125_l13>; 604 vdda-phy-dpdm-supply = <&pm4125_l21>; 605 status = "okay"; 606}; 607 608&usb_qmpphy { 609 vdda-phy-supply = <&pm4125_l12>; 610 vdda-pll-supply = <&pm4125_l13>; 611 status = "okay"; 612}; 613 614&usb_qmpphy_out { 615 remote-endpoint = <&pm4125_ss_in>; 616}; 617 618&wifi { 619 vdd-0.8-cx-mx-supply = <&pm4125_l7>; 620 vdd-1.8-xo-supply = <&pm4125_l13>; 621 vdd-1.3-rfa-supply = <&pm4125_l10>; 622 vdd-3.3-ch0-supply = <&pm4125_l22>; 623 qcom,ath10k-calibration-variant = "Thundercomm_RB1"; 624 firmware-name = "qcm2290"; 625 status = "okay"; 626}; 627 628&xo_board { 629 clock-frequency = <38400000>; 630}; 631