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 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 180&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 198&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 = <<9611_3v3>; 214 215 pinctrl-0 = <<9611_irq_pin <9611_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 { 247 vdda-supply = <&pm4125_l5>; 248 status = "okay"; 249}; 250 251&mdss_dsi0_out { 252 remote-endpoint = <<9611_a>; 253 data-lanes = <0 1 2 3>; 254}; 255 256&mdss_dsi0_phy { 257 status = "okay"; 258}; 259 260&pm4125_resin { 261 linux,code = <KEY_VOLUMEDOWN>; 262 status = "okay"; 263}; 264 265&pm4125_typec { 266 status = "okay"; 267 268 connector { 269 compatible = "usb-c-connector"; 270 271 power-role = "dual"; 272 data-role = "dual"; 273 self-powered; 274 275 typec-power-opmode = "default"; 276 pd-disable; 277 278 ports { 279 #address-cells = <1>; 280 #size-cells = <0>; 281 282 port@0 { 283 reg = <0>; 284 pm4125_hs_in: endpoint { 285 remote-endpoint = <&usb_dwc3_hs>; 286 }; 287 }; 288 289 port@1 { 290 reg = <1>; 291 pm4125_ss_in: endpoint { 292 remote-endpoint = <&usb_qmpphy_out>; 293 }; 294 }; 295 }; 296 }; 297}; 298 299&pm4125_vbus { 300 regulator-min-microamp = <500000>; 301 regulator-max-microamp = <500000>; 302 status = "okay"; 303}; 304 305&qupv3_id_0 { 306 status = "okay"; 307}; 308 309&remoteproc_adsp { 310 firmware-name = "qcom/qcm2290/adsp.mbn"; 311 status = "okay"; 312}; 313 314&remoteproc_mpss { 315 firmware-name = "qcom/qcm2290/modem.mbn"; 316 status = "okay"; 317}; 318 319&rpm_requests { 320 regulators { 321 compatible = "qcom,rpm-pm2250-regulators"; 322 vdd_s3-supply = <&vph_pwr>; 323 vdd_s4-supply = <&vph_pwr>; 324 vdd_l1_l2_l3_l5_l6_l7_l8_l9_l10_l11_l12-supply = <&pm4125_s3>; 325 vdd_l4_l17_l18_l19_l20_l21_l22-supply = <&vph_pwr>; 326 vdd_l13_l14_l15_l16-supply = <&pm4125_s4>; 327 328 /* 329 * S1 - VDD_APC 330 * S2 - VDD_CX 331 */ 332 333 pm4125_s3: s3 { 334 /* 0.4V-1.6625V -> 1.3V (Power tree requirements) */ 335 regulator-min-microvolt = <1352000>; 336 regulator-max-microvolt = <1352000>; 337 regulator-boot-on; 338 }; 339 340 pm4125_s4: s4 { 341 /* 1.2V-2.35V -> 2.05V (Power tree requirements) */ 342 regulator-min-microvolt = <2072000>; 343 regulator-max-microvolt = <2072000>; 344 regulator-boot-on; 345 }; 346 347 /* L1 - VDD_MX */ 348 349 pm4125_l2: l2 { 350 /* LPDDR4X VDD2 */ 351 regulator-min-microvolt = <1136000>; 352 regulator-max-microvolt = <1136000>; 353 regulator-always-on; 354 regulator-boot-on; 355 }; 356 357 pm4125_l3: l3 { 358 /* LPDDR4X VDDQ */ 359 regulator-min-microvolt = <616000>; 360 regulator-max-microvolt = <616000>; 361 regulator-always-on; 362 regulator-boot-on; 363 }; 364 365 pm4125_l4: l4 { 366 /* max = 3.05V -> max = 2.7 to disable 3V signaling (SDHCI2) */ 367 regulator-min-microvolt = <1800000>; 368 regulator-max-microvolt = <2700000>; 369 regulator-allow-set-load; 370 }; 371 372 pm4125_l5: l5 { 373 /* CSI/DSI */ 374 regulator-min-microvolt = <1232000>; 375 regulator-max-microvolt = <1232000>; 376 regulator-allow-set-load; 377 regulator-boot-on; 378 }; 379 380 pm4125_l6: l6 { 381 /* DRAM PLL */ 382 regulator-min-microvolt = <928000>; 383 regulator-max-microvolt = <928000>; 384 regulator-always-on; 385 regulator-boot-on; 386 }; 387 388 pm4125_l7: l7 { 389 /* Wi-Fi CX/MX */ 390 regulator-min-microvolt = <664000>; 391 regulator-max-microvolt = <664000>; 392 }; 393 394 /* 395 * L8 - VDD_LPI_CX 396 * L9 - VDD_LPI_MX 397 */ 398 399 pm4125_l10: l10 { 400 /* Wi-Fi RFA */ 401 regulator-min-microvolt = <1304000>; 402 regulator-max-microvolt = <1304000>; 403 }; 404 405 pm4125_l11: l11 { 406 /* GPS RF1 */ 407 regulator-min-microvolt = <1000000>; 408 regulator-max-microvolt = <1000000>; 409 regulator-boot-on; 410 }; 411 412 pm4125_l12: l12 { 413 /* USB PHYs */ 414 regulator-min-microvolt = <928000>; 415 regulator-max-microvolt = <928000>; 416 regulator-allow-set-load; 417 regulator-boot-on; 418 }; 419 420 pm4125_l13: l13 { 421 /* USB/QFPROM/PLLs */ 422 regulator-min-microvolt = <1800000>; 423 regulator-max-microvolt = <1800000>; 424 regulator-allow-set-load; 425 regulator-boot-on; 426 }; 427 428 pm4125_l14: l14 { 429 /* SDHCI1 VQMMC */ 430 regulator-min-microvolt = <1800000>; 431 regulator-max-microvolt = <1800000>; 432 regulator-allow-set-load; 433 /* Broken hardware, never turn it off! */ 434 regulator-always-on; 435 }; 436 437 pm4125_l15: l15 { 438 /* WCD/DSI/BT VDDIO */ 439 regulator-min-microvolt = <1800000>; 440 regulator-max-microvolt = <1800000>; 441 regulator-allow-set-load; 442 regulator-always-on; 443 regulator-boot-on; 444 }; 445 446 pm4125_l16: l16 { 447 /* GPS RF2 */ 448 regulator-min-microvolt = <1800000>; 449 regulator-max-microvolt = <1800000>; 450 regulator-boot-on; 451 }; 452 453 pm4125_l17: l17 { 454 regulator-min-microvolt = <3000000>; 455 regulator-max-microvolt = <3000000>; 456 }; 457 458 pm4125_l18: l18 { 459 /* VDD_PXn */ 460 regulator-min-microvolt = <1800000>; 461 regulator-max-microvolt = <1800000>; 462 }; 463 464 pm4125_l19: l19 { 465 /* VDD_PXn */ 466 regulator-min-microvolt = <1800000>; 467 regulator-max-microvolt = <1800000>; 468 }; 469 470 pm4125_l20: l20 { 471 /* SDHCI1 VMMC */ 472 regulator-min-microvolt = <2400000>; 473 regulator-max-microvolt = <3600000>; 474 regulator-allow-set-load; 475 }; 476 477 pm4125_l21: l21 { 478 /* SDHCI2 VMMC */ 479 regulator-min-microvolt = <2960000>; 480 regulator-max-microvolt = <3300000>; 481 regulator-allow-set-load; 482 regulator-boot-on; 483 }; 484 485 pm4125_l22: l22 { 486 /* Wi-Fi */ 487 regulator-min-microvolt = <3312000>; 488 regulator-max-microvolt = <3312000>; 489 }; 490 }; 491}; 492 493&sdhc_1 { 494 vmmc-supply = <&pm4125_l20>; 495 vqmmc-supply = <&pm4125_l14>; 496 pinctrl-0 = <&sdc1_state_on>; 497 pinctrl-1 = <&sdc1_state_off>; 498 pinctrl-names = "default", "sleep"; 499 non-removable; 500 supports-cqe; 501 no-sdio; 502 no-sd; 503 status = "okay"; 504}; 505 506&sdhc_2 { 507 vmmc-supply = <&pm4125_l21>; 508 vqmmc-supply = <&pm4125_l4>; 509 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; 510 pinctrl-0 = <&sdc2_state_on &sd_det_in_on>; 511 pinctrl-1 = <&sdc2_state_off &sd_det_in_off>; 512 pinctrl-names = "default", "sleep"; 513 no-sdio; 514 no-mmc; 515 status = "okay"; 516}; 517 518&spi5 { 519 status = "okay"; 520 521 can@0 { 522 compatible = "microchip,mcp2518fd"; 523 reg = <0>; 524 interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>; 525 clocks = <&clk40M>; 526 spi-max-frequency = <10000000>; 527 vdd-supply = <&vdc_5v>; 528 xceiver-supply = <&vdc_5v>; 529 }; 530}; 531 532&tlmm { 533 lt9611_rst_pin: lt9611-rst-state { 534 pins = "gpio41"; 535 function = "gpio"; 536 input-disable; 537 output-high; 538 }; 539 540 lt9611_irq_pin: lt9611-irq-state { 541 pins = "gpio46"; 542 function = "gpio"; 543 bias-disable; 544 }; 545 546 sd_det_in_on: sd-det-in-on-state { 547 pins = "gpio88"; 548 function = "gpio"; 549 drive-strength = <2>; 550 bias-pull-up; 551 }; 552 553 sd_det_in_off: sd-det-in-off-state { 554 pins = "gpio88"; 555 function = "gpio"; 556 drive-strength = <2>; 557 bias-disable; 558 }; 559 560 key_volp_n: key-volp-n-state { 561 pins = "gpio96"; 562 function = "gpio"; 563 bias-pull-up; 564 output-disable; 565 }; 566}; 567 568/* UART connected to the Micro-USB port via a FTDI chip */ 569&uart4 { 570 compatible = "qcom,geni-debug-uart"; 571 status = "okay"; 572}; 573 574&usb { 575 status = "okay"; 576}; 577 578&usb_dwc3_hs { 579 remote-endpoint = <&pm4125_hs_in>; 580}; 581 582&usb_hsphy { 583 vdd-supply = <&pm4125_l12>; 584 vdda-pll-supply = <&pm4125_l13>; 585 vdda-phy-dpdm-supply = <&pm4125_l21>; 586 status = "okay"; 587}; 588 589&usb_qmpphy { 590 vdda-phy-supply = <&pm4125_l12>; 591 vdda-pll-supply = <&pm4125_l13>; 592 status = "okay"; 593}; 594 595&usb_qmpphy_out { 596 remote-endpoint = <&pm4125_ss_in>; 597}; 598 599&wifi { 600 vdd-0.8-cx-mx-supply = <&pm4125_l7>; 601 vdd-1.8-xo-supply = <&pm4125_l13>; 602 vdd-1.3-rfa-supply = <&pm4125_l10>; 603 vdd-3.3-ch0-supply = <&pm4125_l22>; 604 qcom,ath10k-calibration-variant = "Thundercomm_RB1"; 605 firmware-name = "qcm2290"; 606 status = "okay"; 607}; 608 609&xo_board { 610 clock-frequency = <38400000>; 611}; 612