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 "sm4250.dtsi" 10#include "pm6125.dtsi" 11 12/ { 13 model = "Qualcomm Technologies, Inc. QRB4210 RB2"; 14 compatible = "qcom,qrb4210-rb2", "qcom,qrb4210", "qcom,sm4250"; 15 16 aliases { 17 serial0 = &uart4; 18 }; 19 20 chosen { 21 stdout-path = "serial0:115200n8"; 22 }; 23 24 clocks { 25 clk40M: can-clk { 26 compatible = "fixed-clock"; 27 clock-frequency = <40000000>; 28 #clock-cells = <0>; 29 }; 30 }; 31 32 gpio-keys { 33 compatible = "gpio-keys"; 34 label = "gpio-keys"; 35 36 pinctrl-0 = <&kypd_vol_up_n>; 37 pinctrl-names = "default"; 38 39 key-volume-up { 40 label = "Volume Up"; 41 linux,code = <KEY_VOLUMEUP>; 42 gpios = <&pm6125_gpios 5 GPIO_ACTIVE_LOW>; 43 debounce-interval = <15>; 44 linux,can-disable; 45 wakeup-source; 46 }; 47 }; 48 49 hdmi-connector { 50 compatible = "hdmi-connector"; 51 type = "a"; 52 53 port { 54 hdmi_con: endpoint { 55 remote-endpoint = <<9611_out>; 56 }; 57 }; 58 }; 59 60 leds { 61 compatible = "gpio-leds"; 62 63 led-bt { 64 label = "blue:bt"; 65 function = LED_FUNCTION_BLUETOOTH; 66 color = <LED_COLOR_ID_BLUE>; 67 gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; 68 linux,default-trigger = "bluetooth-power"; 69 default-state = "off"; 70 }; 71 72 led-user0 { 73 label = "green:user0"; 74 function = LED_FUNCTION_INDICATOR; 75 color = <LED_COLOR_ID_GREEN>; 76 gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; 77 linux,default-trigger = "none"; 78 default-state = "off"; 79 panic-indicator; 80 }; 81 82 led-wlan { 83 label = "yellow:wlan"; 84 function = LED_FUNCTION_WLAN; 85 color = <LED_COLOR_ID_YELLOW>; 86 gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>; 87 linux,default-trigger = "phy0tx"; 88 default-state = "off"; 89 }; 90 }; 91 92 vreg_hdmi_out_1p2: regulator-hdmi-out-1p2 { 93 compatible = "regulator-fixed"; 94 regulator-name = "VREG_HDMI_OUT_1P2"; 95 regulator-min-microvolt = <1200000>; 96 regulator-max-microvolt = <1200000>; 97 vin-supply = <&vdc_1v2>; 98 regulator-always-on; 99 regulator-boot-on; 100 }; 101 102 lt9611_3v3: regulator-lt9611-3v3 { 103 compatible = "regulator-fixed"; 104 regulator-name = "LT9611_3V3"; 105 regulator-min-microvolt = <3300000>; 106 regulator-max-microvolt = <3300000>; 107 vin-supply = <&vdc_3v3>; 108 regulator-always-on; 109 regulator-boot-on; 110 }; 111 112 /* Main barrel jack input */ 113 vdc_12v: regulator-vdc-12v { 114 compatible = "regulator-fixed"; 115 regulator-name = "DC_12V"; 116 regulator-min-microvolt = <12000000>; 117 regulator-max-microvolt = <12000000>; 118 regulator-always-on; 119 regulator-boot-on; 120 }; 121 122 /* 1.2V supply stepped down from the barrel jack input */ 123 vdc_1v2: regulator-vdc-1v2 { 124 compatible = "regulator-fixed"; 125 regulator-name = "VDC_1V2"; 126 regulator-min-microvolt = <1200000>; 127 regulator-max-microvolt = <1200000>; 128 vin-supply = <&vdc_12v>; 129 regulator-always-on; 130 regulator-boot-on; 131 }; 132 133 /* 3.3V supply stepped down from the barrel jack input */ 134 vdc_3v3: regulator-vdc-3v3 { 135 compatible = "regulator-fixed"; 136 regulator-name = "VDC_3V3"; 137 regulator-min-microvolt = <3300000>; 138 regulator-max-microvolt = <3300000>; 139 vin-supply = <&vdc_12v>; 140 regulator-always-on; 141 regulator-boot-on; 142 }; 143 144 /* 5V supply stepped down from the barrel jack input */ 145 vdc_5v: regulator-vdc-5v { 146 compatible = "regulator-fixed"; 147 regulator-name = "VDC_5V"; 148 149 regulator-min-microvolt = <5000000>; 150 regulator-max-microvolt = <5000000>; 151 regulator-always-on; 152 regulator-boot-on; 153 }; 154 155 /* "Battery" voltage for the SoM, stepped down from the barrel jack input */ 156 vdc_vbat_som: regulator-vdc-vbat { 157 compatible = "regulator-fixed"; 158 regulator-name = "VBAT_SOM"; 159 regulator-min-microvolt = <4200000>; 160 regulator-max-microvolt = <4200000>; 161 regulator-always-on; 162 regulator-boot-on; 163 }; 164 165 /* PMI632 charger out, supplied by VBAT */ 166 vph_pwr: regulator-vph-pwr { 167 compatible = "regulator-fixed"; 168 regulator-name = "vph_pwr"; 169 regulator-min-microvolt = <3700000>; 170 regulator-max-microvolt = <3700000>; 171 vin-supply = <&vdc_vbat_som>; 172 173 regulator-always-on; 174 regulator-boot-on; 175 }; 176}; 177 178&gpi_dma0 { 179 status = "okay"; 180}; 181 182&gpu { 183 status = "okay"; 184 185 zap-shader { 186 firmware-name = "qcom/qrb4210/a610_zap.mbn"; 187 }; 188}; 189 190&i2c2 { 191 clock-frequency = <400000>; 192 status = "okay"; 193 194 lt9611_codec: hdmi-bridge@2b { 195 compatible = "lontium,lt9611uxc"; 196 reg = <0x2b>; 197 interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>; 198 reset-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>; 199 200 vdd-supply = <&vreg_hdmi_out_1p2>; 201 vcc-supply = <<9611_3v3>; 202 203 pinctrl-0 = <<9611_irq_pin <9611_rst_pin>; 204 pinctrl-names = "default"; 205 #sound-dai-cells = <1>; 206 207 ports { 208 #address-cells = <1>; 209 #size-cells = <0>; 210 211 port@0 { 212 reg = <0>; 213 214 lt9611_a: endpoint { 215 remote-endpoint = <&mdss_dsi0_out>; 216 }; 217 }; 218 219 port@2 { 220 reg = <2>; 221 222 lt9611_out: endpoint { 223 remote-endpoint = <&hdmi_con>; 224 }; 225 }; 226 }; 227 }; 228}; 229 230&mdss { 231 status = "okay"; 232}; 233 234&mdss_dsi0 { 235 vdda-supply = <&vreg_l18a_1p232>; 236 status = "okay"; 237}; 238 239&mdss_dsi0_out { 240 remote-endpoint = <<9611_a>; 241 data-lanes = <0 1 2 3>; 242}; 243 244&mdss_dsi0_phy { 245 status = "okay"; 246}; 247 248&pm6125_gpios { 249 kypd_vol_up_n: kypd-vol-up-n-state { 250 pins = "gpio5"; 251 function = "normal"; 252 power-source = <0>; 253 bias-pull-up; 254 input-enable; 255 }; 256}; 257 258&pon_pwrkey { 259 status = "okay"; 260}; 261 262&pon_resin { 263 linux,code = <KEY_VOLUMEDOWN>; 264 status = "okay"; 265}; 266 267&qupv3_id_0 { 268 status = "okay"; 269}; 270 271&remoteproc_adsp { 272 firmware-name = "qcom/qrb4210/adsp.mbn"; 273 274 status = "okay"; 275}; 276 277&remoteproc_cdsp { 278 firmware-name = "qcom/qrb4210/cdsp.mbn"; 279 280 status = "okay"; 281}; 282 283&rpm_requests { 284 regulators { 285 compatible = "qcom,rpm-pm6125-regulators"; 286 287 vdd-s1-supply = <&vph_pwr>; 288 vdd-s2-supply = <&vph_pwr>; 289 vdd-s3-supply = <&vph_pwr>; 290 vdd-s4-supply = <&vph_pwr>; 291 vdd-s5-supply = <&vph_pwr>; 292 vdd-s6-supply = <&vph_pwr>; 293 vdd-s7-supply = <&vph_pwr>; 294 vdd-s8-supply = <&vph_pwr>; 295 vdd-s9-supply = <&vph_pwr>; 296 vdd-s10-supply = <&vph_pwr>; 297 298 vdd-l1-l7-l17-l18-supply = <&vreg_s6a_1p352>; 299 vdd-l2-l3-l4-supply = <&vreg_s6a_1p352>; 300 vdd-l5-l15-l19-l20-l21-l22-supply = <&vph_pwr>; 301 vdd-l6-l8-supply = <&vreg_s5a_0p848>; 302 vdd-l9-l11-supply = <&vreg_s7a_2p04>; 303 vdd-l10-l13-l14-supply = <&vreg_s7a_2p04>; 304 vdd-l12-l16-supply = <&vreg_s7a_2p04>; 305 vdd-l23-l24-supply = <&vph_pwr>; 306 307 vreg_s5a_0p848: s5 { 308 regulator-min-microvolt = <920000>; 309 regulator-max-microvolt = <1128000>; 310 }; 311 312 vreg_s6a_1p352: s6 { 313 regulator-min-microvolt = <304000>; 314 regulator-max-microvolt = <1456000>; 315 }; 316 317 vreg_s7a_2p04: s7 { 318 regulator-min-microvolt = <1280000>; 319 regulator-max-microvolt = <2080000>; 320 }; 321 322 vreg_l1a_1p0: l1 { 323 regulator-min-microvolt = <952000>; 324 regulator-max-microvolt = <1152000>; 325 }; 326 327 vreg_l4a_0p9: l4 { 328 regulator-min-microvolt = <488000>; 329 regulator-max-microvolt = <1000000>; 330 }; 331 332 vreg_l5a_2p96: l5 { 333 regulator-min-microvolt = <1648000>; 334 regulator-max-microvolt = <3056000>; 335 regulator-allow-set-load; 336 }; 337 338 vreg_l6a_0p6: l6 { 339 regulator-min-microvolt = <576000>; 340 regulator-max-microvolt = <656000>; 341 }; 342 343 vreg_l7a_1p256: l7 { 344 regulator-min-microvolt = <1200000>; 345 regulator-max-microvolt = <1304000>; 346 }; 347 348 vreg_l8a_0p664: l8 { 349 regulator-min-microvolt = <400000>; 350 regulator-max-microvolt = <728000>; 351 }; 352 353 vreg_l9a_1p8: l9 { 354 regulator-min-microvolt = <1800000>; 355 regulator-max-microvolt = <2000000>; 356 }; 357 358 vreg_l10a_1p8: l10 { 359 regulator-min-microvolt = <1704000>; 360 regulator-max-microvolt = <1904000>; 361 }; 362 363 vreg_l11a_1p8: l11 { 364 regulator-min-microvolt = <1704000>; 365 regulator-max-microvolt = <1952000>; 366 regulator-allow-set-load; 367 }; 368 369 vreg_l12a_1p8: l12 { 370 regulator-min-microvolt = <1624000>; 371 regulator-max-microvolt = <1984000>; 372 }; 373 374 vreg_l13a_1p8: l13 { 375 regulator-min-microvolt = <1504000>; 376 regulator-max-microvolt = <1952000>; 377 }; 378 379 vreg_l14a_1p8: l14 { 380 regulator-min-microvolt = <1704000>; 381 regulator-max-microvolt = <1904000>; 382 }; 383 384 vreg_l15a_3p128: l15 { 385 regulator-min-microvolt = <2920000>; 386 regulator-max-microvolt = <3232000>; 387 }; 388 389 vreg_l16a_1p3: l16 { 390 regulator-min-microvolt = <1704000>; 391 regulator-max-microvolt = <1904000>; 392 }; 393 394 vreg_l17a_1p3: l17 { 395 regulator-min-microvolt = <1152000>; 396 regulator-max-microvolt = <1384000>; 397 }; 398 399 vreg_l18a_1p232: l18 { 400 regulator-min-microvolt = <1104000>; 401 regulator-max-microvolt = <1312000>; 402 }; 403 404 vreg_l19a_1p8: l19 { 405 regulator-min-microvolt = <1624000>; 406 regulator-max-microvolt = <3304000>; 407 }; 408 409 vreg_l20a_1p8: l20 { 410 regulator-min-microvolt = <1624000>; 411 regulator-max-microvolt = <3304000>; 412 }; 413 414 vreg_l21a_2p704: l21 { 415 regulator-min-microvolt = <2400000>; 416 regulator-max-microvolt = <3600000>; 417 }; 418 419 vreg_l22a_2p96: l22 { 420 regulator-min-microvolt = <2952000>; 421 regulator-max-microvolt = <3304000>; 422 regulator-system-load = <100000>; 423 regulator-allow-set-load; 424 }; 425 426 vreg_l23a_3p3: l23 { 427 regulator-min-microvolt = <3200000>; 428 regulator-max-microvolt = <3400000>; 429 }; 430 431 vreg_l24a_2p96: l24 { 432 regulator-min-microvolt = <2704000>; 433 regulator-max-microvolt = <3600000>; 434 regulator-system-load = <100000>; 435 regulator-allow-set-load; 436 }; 437 }; 438}; 439 440&sdhc_1 { 441 pinctrl-0 = <&sdc1_state_on>; 442 pinctrl-1 = <&sdc1_state_off>; 443 pinctrl-names = "default", "sleep"; 444 445 vmmc-supply = <&vreg_l24a_2p96>; 446 vqmmc-supply = <&vreg_l11a_1p8>; 447 no-sdio; 448 non-removable; 449 450 status = "okay"; 451}; 452 453&sdhc_2 { 454 cd-gpios = <&tlmm 88 GPIO_ACTIVE_LOW>; /* card detect gpio */ 455 456 pinctrl-0 = <&sdc2_state_on &sdc2_card_det_n>; 457 pinctrl-1 = <&sdc2_state_off &sdc2_card_det_n>; 458 pinctrl-names = "default", "sleep"; 459 460 vmmc-supply = <&vreg_l22a_2p96>; 461 vqmmc-supply = <&vreg_l5a_2p96>; 462 no-sdio; 463 464 status = "okay"; 465}; 466 467&spi5 { 468 status = "okay"; 469 470 can@0 { 471 compatible = "microchip,mcp2518fd"; 472 reg = <0>; 473 interrupts-extended = <&tlmm 39 IRQ_TYPE_LEVEL_LOW>; 474 clocks = <&clk40M>; 475 spi-max-frequency = <10000000>; 476 vdd-supply = <&vdc_5v>; 477 xceiver-supply = <&vdc_5v>; 478 }; 479}; 480 481&sleep_clk { 482 clock-frequency = <32000>; 483}; 484 485&tlmm { 486 gpio-reserved-ranges = <43 2>, <49 1>, <54 1>, 487 <56 3>, <61 2>, <64 1>, 488 <68 1>, <72 8>, <96 1>; 489 490 lt9611_rst_pin: lt9611-rst-state { 491 pins = "gpio41"; 492 function = "gpio"; 493 input-disable; 494 output-high; 495 }; 496 497 lt9611_irq_pin: lt9611-irq-state { 498 pins = "gpio46"; 499 function = "gpio"; 500 bias-disable; 501 }; 502 503 sdc2_card_det_n: sd-card-det-n-state { 504 pins = "gpio88"; 505 function = "gpio"; 506 drive-strength = <2>; 507 bias-pull-up; 508 }; 509}; 510 511&uart4 { 512 status = "okay"; 513}; 514 515&usb { 516 status = "okay"; 517}; 518 519&usb_dwc3 { 520 maximum-speed = "super-speed"; 521 dr_mode = "peripheral"; 522}; 523 524&usb_hsphy { 525 vdd-supply = <&vreg_l4a_0p9>; 526 vdda-pll-supply = <&vreg_l12a_1p8>; 527 vdda-phy-dpdm-supply = <&vreg_l15a_3p128>; 528 529 status = "okay"; 530}; 531 532&usb_qmpphy { 533 vdda-phy-supply = <&vreg_l4a_0p9>; 534 vdda-pll-supply = <&vreg_l12a_1p8>; 535 536 status = "okay"; 537}; 538 539&xo_board { 540 clock-frequency = <19200000>; 541}; 542