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