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 leds { 64 compatible = "gpio-leds"; 65 66 led-bt { 67 label = "blue:bt"; 68 function = LED_FUNCTION_BLUETOOTH; 69 color = <LED_COLOR_ID_BLUE>; 70 gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; 71 linux,default-trigger = "bluetooth-power"; 72 default-state = "off"; 73 }; 74 75 led-user0 { 76 label = "green:user0"; 77 function = LED_FUNCTION_INDICATOR; 78 color = <LED_COLOR_ID_GREEN>; 79 gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; 80 linux,default-trigger = "none"; 81 default-state = "off"; 82 panic-indicator; 83 }; 84 85 led-wlan { 86 label = "yellow:wlan"; 87 function = LED_FUNCTION_WLAN; 88 color = <LED_COLOR_ID_YELLOW>; 89 gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>; 90 linux,default-trigger = "phy0tx"; 91 default-state = "off"; 92 }; 93 }; 94 95 vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 { 96 compatible = "regulator-fixed"; 97 regulator-name = "VREG_HDMI_OUT_1P2"; 98 regulator-min-microvolt = <1200000>; 99 regulator-max-microvolt = <1200000>; 100 vin-supply = <&vdc_1v2>; 101 regulator-always-on; 102 regulator-boot-on; 103 }; 104 105 lt9611_3v3: regulator-lt9611-3v3 { 106 compatible = "regulator-fixed"; 107 regulator-name = "LT9611_3V3"; 108 regulator-min-microvolt = <3300000>; 109 regulator-max-microvolt = <3300000>; 110 vin-supply = <&vdc_3v3>; 111 regulator-always-on; 112 regulator-boot-on; 113 }; 114 115 /* Main barrel jack input */ 116 vdc_12v: regulator-vdc-12v { 117 compatible = "regulator-fixed"; 118 regulator-name = "DC_12V"; 119 regulator-min-microvolt = <12000000>; 120 regulator-max-microvolt = <12000000>; 121 regulator-always-on; 122 regulator-boot-on; 123 }; 124 125 /* 1.2V supply stepped down from the barrel jack input */ 126 vdc_1v2: regulator-vdc-1v2 { 127 compatible = "regulator-fixed"; 128 regulator-name = "VDC_1V2"; 129 regulator-min-microvolt = <1200000>; 130 regulator-max-microvolt = <1200000>; 131 vin-supply = <&vdc_12v>; 132 regulator-always-on; 133 regulator-boot-on; 134 }; 135 136 /* 3.3V supply stepped down from the barrel jack input */ 137 vdc_3v3: regulator-vdc-3v3 { 138 compatible = "regulator-fixed"; 139 regulator-name = "VDC_3V3"; 140 regulator-min-microvolt = <3300000>; 141 regulator-max-microvolt = <3300000>; 142 vin-supply = <&vdc_12v>; 143 regulator-always-on; 144 regulator-boot-on; 145 }; 146 147 /* 5V supply stepped down from the barrel jack input */ 148 vdc_5v: regulator-vdc-5v { 149 compatible = "regulator-fixed"; 150 regulator-name = "VDC_5V"; 151 152 regulator-min-microvolt = <5000000>; 153 regulator-max-microvolt = <5000000>; 154 regulator-always-on; 155 regulator-boot-on; 156 }; 157 158 /* "Battery" voltage for the SoM, stepped down from the barrel jack input */ 159 vdc_vbat_som: regulator-vdc-vbat { 160 compatible = "regulator-fixed"; 161 regulator-name = "VBAT_SOM"; 162 regulator-min-microvolt = <4200000>; 163 regulator-max-microvolt = <4200000>; 164 regulator-always-on; 165 regulator-boot-on; 166 }; 167 168 /* PMI632 charger out, supplied by VBAT */ 169 vph_pwr: regulator-vph-pwr { 170 compatible = "regulator-fixed"; 171 regulator-name = "vph_pwr"; 172 regulator-min-microvolt = <3700000>; 173 regulator-max-microvolt = <3700000>; 174 vin-supply = <&vdc_vbat_som>; 175 176 regulator-always-on; 177 regulator-boot-on; 178 }; 179}; 180 181&gpi_dma0 { 182 status = "okay"; 183}; 184 185&gpu { 186 status = "okay"; 187 188 zap-shader { 189 firmware-name = "qcom/qrb4210/a610_zap.mbn"; 190 }; 191}; 192 193&i2c2 { 194 clock-frequency = <400000>; 195 status = "okay"; 196 197 lt9611_codec: hdmi-bridge@2b { 198 compatible = "lontium,lt9611uxc"; 199 reg = <0x2b>; 200 interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>; 201 reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>; 202 203 vdd-supply = <&vreg_hdmi_out_1p2>; 204 vcc-supply = <<9611_3v3>; 205 206 pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; 207 pinctrl-names = "default"; 208 #sound-dai-cells = <1>; 209 210 ports { 211 #address-cells = <1>; 212 #size-cells = <0>; 213 214 port@0 { 215 reg = <0>; 216 217 lt9611_a: endpoint { 218 remote-endpoint = <&mdss_dsi0_out>; 219 }; 220 }; 221 222 port@2 { 223 reg = <2>; 224 225 lt9611_out: endpoint { 226 remote-endpoint = <&hdmi_con>; 227 }; 228 }; 229 }; 230 }; 231}; 232 233&mdss { 234 status = "okay"; 235}; 236 237&mdss_dsi0 { 238 vdda-supply = <&vreg_l18a_1p232>; 239 status = "okay"; 240}; 241 242&mdss_dsi0_out { 243 remote-endpoint = <<9611_a>; 244 data-lanes = <0 1 2 3>; 245}; 246 247&mdss_dsi0_phy { 248 status = "okay"; 249}; 250 251&pm6125_gpios { 252 kypd_vol_up_n: kypd-vol-up-n-state { 253 pins = "gpio5"; 254 function = "normal"; 255 power-source = <0>; 256 bias-pull-up; 257 input-enable; 258 }; 259}; 260 261&pmi632_typec { 262 status = "okay"; 263 264 connector { 265 compatible = "usb-c-connector"; 266 267 power-role = "dual"; 268 data-role = "dual"; 269 self-powered; 270 271 typec-power-opmode = "default"; 272 pd-disable; 273 274 ports { 275 #address-cells = <1>; 276 #size-cells = <0>; 277 278 port@0 { 279 reg = <0>; 280 pmi632_hs_in: endpoint { 281 remote-endpoint = <&usb_dwc3_hs>; 282 }; 283 }; 284 285 port@1 { 286 reg = <1>; 287 pmi632_ss_in: endpoint { 288 remote-endpoint = <&usb_qmpphy_out>; 289 }; 290 }; 291 }; 292 }; 293}; 294 295&pmi632_vbus { 296 regulator-min-microamp = <500000>; 297 regulator-max-microamp = <3000000>; 298 status = "okay"; 299}; 300 301&pon_pwrkey { 302 status = "okay"; 303}; 304 305&pon_resin { 306 linux,code = <KEY_VOLUMEDOWN>; 307 status = "okay"; 308}; 309 310&qupv3_id_0 { 311 status = "okay"; 312}; 313 314&remoteproc_adsp { 315 firmware-name = "qcom/qrb4210/adsp.mbn"; 316 317 status = "okay"; 318}; 319 320&remoteproc_cdsp { 321 firmware-name = "qcom/qrb4210/cdsp.mbn"; 322 323 status = "okay"; 324}; 325 326&remoteproc_mpss { 327 firmware-name = "qcom/qrb4210/modem.mbn"; 328 329 status = "okay"; 330}; 331 332&rpm_requests { 333 regulators { 334 compatible = "qcom,rpm-pm6125-regulators"; 335 336 vdd-s1-supply = <&vph_pwr>; 337 vdd-s2-supply = <&vph_pwr>; 338 vdd-s3-supply = <&vph_pwr>; 339 vdd-s4-supply = <&vph_pwr>; 340 vdd-s5-supply = <&vph_pwr>; 341 vdd-s6-supply = <&vph_pwr>; 342 vdd-s7-supply = <&vph_pwr>; 343 vdd-s8-supply = <&vph_pwr>; 344 vdd-s9-supply = <&vph_pwr>; 345 vdd-s10-supply = <&vph_pwr>; 346 347 vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>; 348 vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>; 349 vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>; 350 vdd-l6-l8-supply = <&vreg_s5a_0p848>; 351 vdd-l9-l11-supply = <&vreg_s7a_2p04>; 352 vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>; 353 vdd-l12-l16-supply = <&vreg_s7a_2p04>; 354 vdd-l23-l24-supply = <&vph_pwr>; 355 356 vreg_s5a_0p848: s5 { 357 regulator-min-microvolt = <920000>; 358 regulator-max-microvolt = <1128000>; 359 }; 360 361 vreg_s6a_1p352: s6 { 362 regulator-min-microvolt = <304000>; 363 regulator-max-microvolt = <1456000>; 364 }; 365 366 vreg_s7a_2p04: s7 { 367 regulator-min-microvolt = <1280000>; 368 regulator-max-microvolt = <2080000>; 369 }; 370 371 vreg_l1a_1p0: l1 { 372 regulator-min-microvolt = <952000>; 373 regulator-max-microvolt = <1152000>; 374 }; 375 376 vreg_l4a_0p9: l4 { 377 regulator-min-microvolt = <488000>; 378 regulator-max-microvolt = <1000000>; 379 }; 380 381 vreg_l5a_2p96: l5 { 382 regulator-min-microvolt = <1648000>; 383 regulator-max-microvolt = <3056000>; 384 regulator-allow-set-load; 385 }; 386 387 vreg_l6a_0p6: l6 { 388 regulator-min-microvolt = <576000>; 389 regulator-max-microvolt = <656000>; 390 }; 391 392 vreg_l7a_1p256: l7 { 393 regulator-min-microvolt = <1200000>; 394 regulator-max-microvolt = <1304000>; 395 }; 396 397 vreg_l8a_0p664: l8 { 398 regulator-min-microvolt = <640000>; 399 regulator-max-microvolt = <640000>; 400 }; 401 402 vreg_l9a_1p8: l9 { 403 regulator-min-microvolt = <1800000>; 404 regulator-max-microvolt = <1800000>; 405 regulator-allow-set-load; 406 }; 407 408 vreg_l10a_1p8: l10 { 409 regulator-min-microvolt = <1704000>; 410 regulator-max-microvolt = <1904000>; 411 }; 412 413 vreg_l11a_1p8: l11 { 414 regulator-min-microvolt = <1704000>; 415 regulator-max-microvolt = <1952000>; 416 regulator-allow-set-load; 417 }; 418 419 vreg_l12a_1p8: l12 { 420 regulator-min-microvolt = <1624000>; 421 regulator-max-microvolt = <1984000>; 422 }; 423 424 vreg_l13a_1p8: l13 { 425 regulator-min-microvolt = <1504000>; 426 regulator-max-microvolt = <1952000>; 427 }; 428 429 vreg_l14a_1p8: l14 { 430 regulator-min-microvolt = <1704000>; 431 regulator-max-microvolt = <1904000>; 432 }; 433 434 vreg_l15a_3p128: l15 { 435 regulator-min-microvolt = <2920000>; 436 regulator-max-microvolt = <3232000>; 437 }; 438 439 vreg_l16a_1p3: l16 { 440 regulator-min-microvolt = <1704000>; 441 regulator-max-microvolt = <1904000>; 442 regulator-allow-set-load; 443 }; 444 445 vreg_l17a_1p3: l17 { 446 regulator-min-microvolt = <1152000>; 447 regulator-max-microvolt = <1384000>; 448 regulator-allow-set-load; 449 }; 450 451 vreg_l18a_1p232: l18 { 452 regulator-min-microvolt = <1104000>; 453 regulator-max-microvolt = <1312000>; 454 }; 455 456 vreg_l19a_1p8: l19 { 457 regulator-min-microvolt = <1624000>; 458 regulator-max-microvolt = <3304000>; 459 }; 460 461 vreg_l20a_1p8: l20 { 462 regulator-min-microvolt = <1624000>; 463 regulator-max-microvolt = <3304000>; 464 }; 465 466 vreg_l21a_2p704: l21 { 467 regulator-min-microvolt = <2400000>; 468 regulator-max-microvolt = <3600000>; 469 }; 470 471 vreg_l22a_2p96: l22 { 472 regulator-min-microvolt = <2952000>; 473 regulator-max-microvolt = <3304000>; 474 regulator-system-load = <100000>; 475 regulator-allow-set-load; 476 }; 477 478 vreg_l23a_3p3: l23 { 479 regulator-min-microvolt = <3312000>; 480 regulator-max-microvolt = <3312000>; 481 regulator-allow-set-load; 482 }; 483 484 vreg_l24a_2p96: l24 { 485 regulator-min-microvolt = <2704000>; 486 regulator-max-microvolt = <3600000>; 487 regulator-system-load = <100000>; 488 regulator-allow-set-load; 489 }; 490 }; 491}; 492 493&sdhc_1 { 494 pinctrl-0 = <&sdc1_state_on>; 495 pinctrl-1 = <&sdc1_state_off>; 496 pinctrl-names = "default", "sleep"; 497 498 vmmc-supply = <&vreg_l24a_2p96>; 499 vqmmc-supply = <&vreg_l11a_1p8>; 500 no-sdio; 501 non-removable; 502 503 status = "okay"; 504}; 505 506&sdhc_2 { 507 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */ 508 509 pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>; 510 pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>; 511 pinctrl-names = "default", "sleep"; 512 513 vmmc-supply = <&vreg_l22a_2p96>; 514 vqmmc-supply = <&vreg_l5a_2p96>; 515 no-sdio; 516 517 status = "okay"; 518}; 519 520&spi5 { 521 status = "okay"; 522 523 can@0 { 524 compatible = "microchip,mcp2518fd"; 525 reg = <0>; 526 interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>; 527 clocks = <&clk40M>; 528 spi-max-frequency = <10000000>; 529 vdd-supply = <&vdc_5v>; 530 xceiver-supply = <&vdc_5v>; 531 }; 532}; 533 534&sleep_clk { 535 clock-frequency = <32000>; 536}; 537 538&tlmm { 539 gpio-reserved-ranges = <43 2>, <49 1>, <54 1>, 540 <56 3>, <61 2>, <64 1>, 541 <68 1>, <72 8>, <96 1>; 542 543 uart3_default: uart3-default-state { 544 cts-pins { 545 pins = "gpio8"; 546 function = "qup3"; 547 drive-strength = <2>; 548 bias-bus-hold; 549 }; 550 551 rts-pins { 552 pins = "gpio9"; 553 function = "qup3"; 554 drive-strength = <2>; 555 bias-disable; 556 }; 557 558 tx-pins { 559 pins = "gpio10"; 560 function = "qup3"; 561 drive-strength = <2>; 562 bias-disable; 563 }; 564 565 rx-pins { 566 pins = "gpio11"; 567 function = "qup3"; 568 drive-strength = <2>; 569 bias-pull-up; 570 }; 571 }; 572 573 uart3_sleep: uart3-sleep-state { 574 cts-pins { 575 pins = "gpio8"; 576 function = "gpio"; 577 drive-strength = <2>; 578 bias-bus-hold; 579 }; 580 581 rts-pins { 582 pins = "gpio9"; 583 function = "gpio"; 584 drive-strength = <2>; 585 bias-pull-down; 586 }; 587 588 tx-pins { 589 pins = "gpio10"; 590 function = "gpio"; 591 drive-strength = <2>; 592 bias-pull-up; 593 }; 594 595 rx-pins { 596 pins = "gpio11"; 597 function = "gpio"; 598 drive-strength = <2>; 599 bias-pull-up; 600 }; 601 }; 602 603 lt9611_rst_pin: lt9611-rst-state { 604 pins = "gpio41"; 605 function = "gpio"; 606 input-disable; 607 output-high; 608 }; 609 610 lt9611_irq_pin: lt9611-irq-state { 611 pins = "gpio46"; 612 function = "gpio"; 613 bias-disable; 614 }; 615 616 sdc2_card_det_n: sd-card-det-n-state { 617 pins = "gpio88"; 618 function = "gpio"; 619 drive-strength = <2>; 620 bias-pull-up; 621 }; 622}; 623 624&uart3 { 625 interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, 626 <&tlmm 11 IRQ_TYPE_LEVEL_HIGH>; 627 pinctrl-0 = <&uart3_default>; 628 pinctrl-1 = <&uart3_sleep>; 629 pinctrl-names = "default", "sleep"; 630 status = "okay"; 631 632 bluetooth { 633 compatible = "qcom,wcn3988-bt"; 634 635 vddio-supply = <&vreg_l9a_1p8>; 636 vddxo-supply = <&vreg_l16a_1p3>; 637 vddrf-supply = <&vreg_l17a_1p3>; 638 vddch0-supply = <&vreg_l23a_3p3>; 639 enable-gpios = <&tlmm 87 GPIO_ACTIVE_HIGH>; 640 max-speed = <3200000>; 641 }; 642}; 643 644&uart4 { 645 status = "okay"; 646}; 647 648&usb { 649 status = "okay"; 650}; 651 652&usb_dwc3_hs { 653 remote-endpoint = <&pmi632_hs_in>; 654}; 655 656&usb_hsphy { 657 vdd-supply = <&vreg_l4a_0p9>; 658 vdda-pll-supply = <&vreg_l12a_1p8>; 659 vdda-phy-dpdm-supply = <&vreg_l15a_3p128>; 660 661 status = "okay"; 662}; 663 664&usb_qmpphy { 665 vdda-phy-supply = <&vreg_l4a_0p9>; 666 vdda-pll-supply = <&vreg_l12a_1p8>; 667 668 status = "okay"; 669}; 670 671&usb_qmpphy_out { 672 remote-endpoint = <&pmi632_ss_in>; 673}; 674 675&wifi { 676 vdd-0.8-cx-mx-supply = <&vreg_l8a_0p664>; 677 vdd-1.8-xo-supply = <&vreg_l16a_1p3>; 678 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 679 vdd-3.3-ch0-supply = <&vreg_l23a_3p3>; 680 qcom,ath10k-calibration-variant = "Thundercomm_RB2"; 681 firmware-name = "qrb4210"; 682 683 status = "okay"; 684}; 685 686&xo_board { 687 clock-frequency = <19200000>; 688}; 689