1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023, Linaro Limited 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/leds/common.h> 9#include <dt-bindings/usb/pd.h> 10#include "sm4250.dtsi" 11#include "pm6125.dtsi" 12#include "pmi632.dtsi" 13 14/ { 15 model = "Qualcomm Technologies, Inc. QRB4210 RB2"; 16 compatible = "qcom,qrb4210-rb2", "qcom,qrb4210", "qcom,sm4250"; 17 18 aliases { 19 serial0 = &uart4; 20 serial1 = &uart3; 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 = <&kypd_vol_up_n>; 40 pinctrl-names = "default"; 41 42 key-volume-up { 43 label = "Volume Up"; 44 linux,code = <KEY_VOLUMEUP>; 45 gpios = <&pm6125_gpios 5 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 /* PMI632 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&gpi_dma0 { 193 status = "okay"; 194}; 195 196&gpu { 197 status = "okay"; 198 199 zap-shader { 200 firmware-name = "qcom/qrb4210/a610_zap.mbn"; 201 }; 202}; 203 204&i2c2_gpio { 205 clock-frequency = <400000>; 206 status = "okay"; 207 208 lt9611_codec: hdmi-bridge@2b { 209 compatible = "lontium,lt9611uxc"; 210 reg = <0x2b>; 211 interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>; 212 reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>; 213 214 vdd-supply = <&vreg_hdmi_out_1p2>; 215 vcc-supply = <<9611_3v3>; 216 217 pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; 218 pinctrl-names = "default"; 219 #sound-dai-cells = <1>; 220 221 ports { 222 #address-cells = <1>; 223 #size-cells = <0>; 224 225 port@0 { 226 reg = <0>; 227 228 lt9611_a: endpoint { 229 remote-endpoint = <&mdss_dsi0_out>; 230 }; 231 }; 232 233 port@2 { 234 reg = <2>; 235 236 lt9611_out: endpoint { 237 remote-endpoint = <&hdmi_con>; 238 }; 239 }; 240 }; 241 }; 242}; 243 244&mdss { 245 status = "okay"; 246}; 247 248&mdss_dsi0 { 249 vdda-supply = <&vreg_l18a_1p232>; 250 status = "okay"; 251}; 252 253&mdss_dsi0_out { 254 remote-endpoint = <<9611_a>; 255 data-lanes = <0 1 2 3>; 256}; 257 258&mdss_dsi0_phy { 259 status = "okay"; 260}; 261 262&pm6125_gpios { 263 kypd_vol_up_n: kypd-vol-up-n-state { 264 pins = "gpio5"; 265 function = "normal"; 266 power-source = <0>; 267 bias-pull-up; 268 input-enable; 269 }; 270}; 271 272&pmi632_typec { 273 status = "okay"; 274 275 connector { 276 compatible = "usb-c-connector"; 277 278 power-role = "dual"; 279 data-role = "dual"; 280 self-powered; 281 282 typec-power-opmode = "default"; 283 pd-disable; 284 285 ports { 286 #address-cells = <1>; 287 #size-cells = <0>; 288 289 port@0 { 290 reg = <0>; 291 pmi632_hs_in: endpoint { 292 remote-endpoint = <&usb_dwc3_hs>; 293 }; 294 }; 295 296 port@1 { 297 reg = <1>; 298 pmi632_ss_in: endpoint { 299 remote-endpoint = <&usb_qmpphy_out>; 300 }; 301 }; 302 }; 303 }; 304}; 305 306&pmi632_vbus { 307 regulator-min-microamp = <500000>; 308 regulator-max-microamp = <1000000>; 309 status = "okay"; 310}; 311 312&pon_pwrkey { 313 status = "okay"; 314}; 315 316&pon_resin { 317 linux,code = <KEY_VOLUMEDOWN>; 318 status = "okay"; 319}; 320 321&qupv3_id_0 { 322 status = "okay"; 323}; 324 325&remoteproc_adsp { 326 firmware-name = "qcom/qrb4210/adsp.mbn"; 327 328 status = "okay"; 329}; 330 331&remoteproc_cdsp { 332 firmware-name = "qcom/qrb4210/cdsp.mbn"; 333 334 status = "okay"; 335}; 336 337&remoteproc_mpss { 338 firmware-name = "qcom/qrb4210/modem.mbn"; 339 340 status = "okay"; 341}; 342 343&rpm_requests { 344 regulators { 345 compatible = "qcom,rpm-pm6125-regulators"; 346 347 vdd-s1-supply = <&vph_pwr>; 348 vdd-s2-supply = <&vph_pwr>; 349 vdd-s3-supply = <&vph_pwr>; 350 vdd-s4-supply = <&vph_pwr>; 351 vdd-s5-supply = <&vph_pwr>; 352 vdd-s6-supply = <&vph_pwr>; 353 vdd-s7-supply = <&vph_pwr>; 354 vdd-s8-supply = <&vph_pwr>; 355 vdd-s9-supply = <&vph_pwr>; 356 vdd-s10-supply = <&vph_pwr>; 357 358 vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>; 359 vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>; 360 vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>; 361 vdd-l6-l8-supply = <&vreg_s5a_0p848>; 362 vdd-l9-l11-supply = <&vreg_s7a_2p04>; 363 vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>; 364 vdd-l12-l16-supply = <&vreg_s7a_2p04>; 365 vdd-l23-l24-supply = <&vph_pwr>; 366 367 vreg_s5a_0p848: s5 { 368 regulator-min-microvolt = <920000>; 369 regulator-max-microvolt = <1128000>; 370 }; 371 372 vreg_s6a_1p352: s6 { 373 regulator-min-microvolt = <304000>; 374 regulator-max-microvolt = <1456000>; 375 }; 376 377 vreg_s7a_2p04: s7 { 378 regulator-min-microvolt = <1280000>; 379 regulator-max-microvolt = <2080000>; 380 }; 381 382 vreg_l1a_1p0: l1 { 383 regulator-min-microvolt = <952000>; 384 regulator-max-microvolt = <1152000>; 385 }; 386 387 vreg_l4a_0p9: l4 { 388 regulator-min-microvolt = <488000>; 389 regulator-max-microvolt = <1000000>; 390 }; 391 392 vreg_l5a_2p96: l5 { 393 regulator-min-microvolt = <1648000>; 394 regulator-max-microvolt = <3056000>; 395 regulator-allow-set-load; 396 }; 397 398 vreg_l6a_0p6: l6 { 399 regulator-min-microvolt = <576000>; 400 regulator-max-microvolt = <656000>; 401 }; 402 403 vreg_l7a_1p256: l7 { 404 regulator-min-microvolt = <1200000>; 405 regulator-max-microvolt = <1304000>; 406 }; 407 408 vreg_l8a_0p664: l8 { 409 regulator-min-microvolt = <640000>; 410 regulator-max-microvolt = <640000>; 411 }; 412 413 vreg_l9a_1p8: l9 { 414 regulator-min-microvolt = <1800000>; 415 regulator-max-microvolt = <1800000>; 416 regulator-allow-set-load; 417 regulator-always-on; 418 regulator-boot-on; 419 }; 420 421 vreg_l10a_1p8: l10 { 422 regulator-min-microvolt = <1704000>; 423 regulator-max-microvolt = <1904000>; 424 }; 425 426 vreg_l11a_1p8: l11 { 427 regulator-min-microvolt = <1704000>; 428 regulator-max-microvolt = <1952000>; 429 regulator-allow-set-load; 430 }; 431 432 vreg_l12a_1p8: l12 { 433 regulator-min-microvolt = <1624000>; 434 regulator-max-microvolt = <1984000>; 435 }; 436 437 vreg_l13a_1p8: l13 { 438 regulator-min-microvolt = <1504000>; 439 regulator-max-microvolt = <1952000>; 440 }; 441 442 vreg_l14a_1p8: l14 { 443 regulator-min-microvolt = <1704000>; 444 regulator-max-microvolt = <1904000>; 445 }; 446 447 vreg_l15a_3p128: l15 { 448 regulator-min-microvolt = <2920000>; 449 regulator-max-microvolt = <3232000>; 450 }; 451 452 vreg_l16a_1p3: l16 { 453 regulator-min-microvolt = <1704000>; 454 regulator-max-microvolt = <1904000>; 455 regulator-allow-set-load; 456 }; 457 458 vreg_l17a_1p3: l17 { 459 regulator-min-microvolt = <1152000>; 460 regulator-max-microvolt = <1384000>; 461 regulator-allow-set-load; 462 }; 463 464 vreg_l18a_1p232: l18 { 465 regulator-min-microvolt = <1104000>; 466 regulator-max-microvolt = <1312000>; 467 }; 468 469 vreg_l19a_1p8: l19 { 470 regulator-min-microvolt = <1624000>; 471 regulator-max-microvolt = <3304000>; 472 }; 473 474 vreg_l20a_1p8: l20 { 475 regulator-min-microvolt = <1624000>; 476 regulator-max-microvolt = <3304000>; 477 }; 478 479 vreg_l21a_2p704: l21 { 480 regulator-min-microvolt = <2400000>; 481 regulator-max-microvolt = <3600000>; 482 }; 483 484 vreg_l22a_2p96: l22 { 485 regulator-min-microvolt = <2952000>; 486 regulator-max-microvolt = <3304000>; 487 regulator-system-load = <100000>; 488 regulator-allow-set-load; 489 }; 490 491 vreg_l23a_3p3: l23 { 492 regulator-min-microvolt = <3312000>; 493 regulator-max-microvolt = <3312000>; 494 regulator-allow-set-load; 495 }; 496 497 vreg_l24a_2p96: l24 { 498 regulator-min-microvolt = <2704000>; 499 regulator-max-microvolt = <3600000>; 500 regulator-system-load = <100000>; 501 regulator-allow-set-load; 502 }; 503 }; 504}; 505 506&sdhc_1 { 507 pinctrl-0 = <&sdc1_state_on>; 508 pinctrl-1 = <&sdc1_state_off>; 509 pinctrl-names = "default", "sleep"; 510 511 vmmc-supply = <&vreg_l24a_2p96>; 512 vqmmc-supply = <&vreg_l11a_1p8>; 513 no-sdio; 514 non-removable; 515 516 status = "okay"; 517}; 518 519&sdhc_2 { 520 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */ 521 522 pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>; 523 pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>; 524 pinctrl-names = "default", "sleep"; 525 526 vmmc-supply = <&vreg_l22a_2p96>; 527 vqmmc-supply = <&vreg_l5a_2p96>; 528 no-sdio; 529 530 status = "okay"; 531}; 532 533&spi5 { 534 status = "okay"; 535 536 can@0 { 537 compatible = "microchip,mcp2518fd"; 538 reg = <0>; 539 interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>; 540 clocks = <&clk40M>; 541 spi-max-frequency = <10000000>; 542 vdd-supply = <&vdc_5v>; 543 xceiver-supply = <&vdc_5v>; 544 }; 545}; 546 547&sleep_clk { 548 clock-frequency = <32000>; 549}; 550 551&tlmm { 552 gpio-reserved-ranges = <43 2>, <49 1>, <54 1>, 553 <56 3>, <61 2>, <64 1>, 554 <68 1>, <72 8>, <96 1>; 555 556 uart3_default: uart3-default-state { 557 cts-pins { 558 pins = "gpio8"; 559 function = "qup3"; 560 drive-strength = <2>; 561 bias-bus-hold; 562 }; 563 564 rts-pins { 565 pins = "gpio9"; 566 function = "qup3"; 567 drive-strength = <2>; 568 bias-disable; 569 }; 570 571 tx-pins { 572 pins = "gpio10"; 573 function = "qup3"; 574 drive-strength = <2>; 575 bias-disable; 576 }; 577 578 rx-pins { 579 pins = "gpio11"; 580 function = "qup3"; 581 drive-strength = <2>; 582 bias-pull-up; 583 }; 584 }; 585 586 uart3_sleep: uart3-sleep-state { 587 cts-pins { 588 pins = "gpio8"; 589 function = "gpio"; 590 drive-strength = <2>; 591 bias-bus-hold; 592 }; 593 594 rts-pins { 595 pins = "gpio9"; 596 function = "gpio"; 597 drive-strength = <2>; 598 bias-pull-down; 599 }; 600 601 tx-pins { 602 pins = "gpio10"; 603 function = "gpio"; 604 drive-strength = <2>; 605 bias-pull-up; 606 }; 607 608 rx-pins { 609 pins = "gpio11"; 610 function = "gpio"; 611 drive-strength = <2>; 612 bias-pull-up; 613 }; 614 }; 615 616 lt9611_rst_pin: lt9611-rst-state { 617 pins = "gpio41"; 618 function = "gpio"; 619 input-disable; 620 output-high; 621 }; 622 623 lt9611_irq_pin: lt9611-irq-state { 624 pins = "gpio46"; 625 function = "gpio"; 626 bias-disable; 627 }; 628 629 sdc2_card_det_n: sd-card-det-n-state { 630 pins = "gpio88"; 631 function = "gpio"; 632 drive-strength = <2>; 633 bias-pull-up; 634 }; 635}; 636 637&uart3 { 638 interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, 639 <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>; 640 pinctrl-0 = <&uart3_default>; 641 pinctrl-1 = <&uart3_sleep>; 642 pinctrl-names = "default", "sleep"; 643 status = "okay"; 644 645 bluetooth { 646 compatible = "qcom,wcn3988-bt"; 647 648 vddio-supply = <&vreg_l9a_1p8>; 649 vddxo-supply = <&vreg_l16a_1p3>; 650 vddrf-supply = <&vreg_l17a_1p3>; 651 vddch0-supply = <&vreg_l23a_3p3>; 652 enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>; 653 max-speed = <3200000>; 654 }; 655}; 656 657&uart4 { 658 status = "okay"; 659}; 660 661&usb { 662 status = "okay"; 663}; 664 665&usb_dwc3_hs { 666 remote-endpoint = <&pmi632_hs_in>; 667}; 668 669&usb_hsphy { 670 vdd-supply = <&vreg_l4a_0p9>; 671 vdda-pll-supply = <&vreg_l12a_1p8>; 672 vdda-phy-dpdm-supply = <&vreg_l15a_3p128>; 673 674 status = "okay"; 675}; 676 677&usb_qmpphy { 678 vdda-phy-supply = <&vreg_l4a_0p9>; 679 vdda-pll-supply = <&vreg_l12a_1p8>; 680 681 status = "okay"; 682}; 683 684&usb_qmpphy_out { 685 remote-endpoint = <&pmi632_ss_in>; 686}; 687 688&wifi { 689 vdd-0.8-cx-mx-supply = <&vreg_l8a_0p664>; 690 vdd-1.8-xo-supply = <&vreg_l16a_1p3>; 691 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 692 vdd-3.3-ch0-supply = <&vreg_l23a_3p3>; 693 qcom,ath10k-calibration-variant = "Thundercomm_RB2"; 694 firmware-name = "qrb4210"; 695 696 status = "okay"; 697}; 698 699&xo_board { 700 clock-frequency = <19200000>; 701}; 702