qcom-ipq8064.dtsi (28321B)
1// SPDX-License-Identifier: GPL-2.0 2/dts-v1/; 3 4#include <dt-bindings/interrupt-controller/arm-gic.h> 5#include <dt-bindings/mfd/qcom-rpm.h> 6#include <dt-bindings/clock/qcom,rpmcc.h> 7#include <dt-bindings/clock/qcom,gcc-ipq806x.h> 8#include <dt-bindings/clock/qcom,lcc-ipq806x.h> 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/reset/qcom,gcc-ipq806x.h> 11#include <dt-bindings/soc/qcom,gsbi.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h> 13 14/ { 15 #address-cells = <1>; 16 #size-cells = <1>; 17 model = "Qualcomm IPQ8064"; 18 compatible = "qcom,ipq8064"; 19 interrupt-parent = <&intc>; 20 21 cpus { 22 #address-cells = <1>; 23 #size-cells = <0>; 24 25 cpu0: cpu@0 { 26 compatible = "qcom,krait"; 27 enable-method = "qcom,kpss-acc-v1"; 28 device_type = "cpu"; 29 reg = <0>; 30 next-level-cache = <&L2>; 31 qcom,acc = <&acc0>; 32 qcom,saw = <&saw0>; 33 }; 34 35 cpu1: cpu@1 { 36 compatible = "qcom,krait"; 37 enable-method = "qcom,kpss-acc-v1"; 38 device_type = "cpu"; 39 reg = <1>; 40 next-level-cache = <&L2>; 41 qcom,acc = <&acc1>; 42 qcom,saw = <&saw1>; 43 }; 44 45 L2: l2-cache { 46 compatible = "cache"; 47 cache-level = <2>; 48 }; 49 }; 50 51 thermal-zones { 52 sensor0-thermal { 53 polling-delay-passive = <0>; 54 polling-delay = <0>; 55 thermal-sensors = <&tsens 0>; 56 57 trips { 58 cpu-critical { 59 temperature = <105000>; 60 hysteresis = <2000>; 61 type = "critical"; 62 }; 63 64 cpu-hot { 65 temperature = <95000>; 66 hysteresis = <2000>; 67 type = "hot"; 68 }; 69 }; 70 }; 71 72 sensor1-thermal { 73 polling-delay-passive = <0>; 74 polling-delay = <0>; 75 thermal-sensors = <&tsens 1>; 76 77 trips { 78 cpu-critical { 79 temperature = <105000>; 80 hysteresis = <2000>; 81 type = "critical"; 82 }; 83 84 cpu-hot { 85 temperature = <95000>; 86 hysteresis = <2000>; 87 type = "hot"; 88 }; 89 }; 90 }; 91 92 sensor2-thermal { 93 polling-delay-passive = <0>; 94 polling-delay = <0>; 95 thermal-sensors = <&tsens 2>; 96 97 trips { 98 cpu-critical { 99 temperature = <105000>; 100 hysteresis = <2000>; 101 type = "critical"; 102 }; 103 104 cpu-hot { 105 temperature = <95000>; 106 hysteresis = <2000>; 107 type = "hot"; 108 }; 109 }; 110 }; 111 112 sensor3-thermal { 113 polling-delay-passive = <0>; 114 polling-delay = <0>; 115 thermal-sensors = <&tsens 3>; 116 117 trips { 118 cpu-critical { 119 temperature = <105000>; 120 hysteresis = <2000>; 121 type = "critical"; 122 }; 123 124 cpu-hot { 125 temperature = <95000>; 126 hysteresis = <2000>; 127 type = "hot"; 128 }; 129 }; 130 }; 131 132 sensor4-thermal { 133 polling-delay-passive = <0>; 134 polling-delay = <0>; 135 thermal-sensors = <&tsens 4>; 136 137 trips { 138 cpu-critical { 139 temperature = <105000>; 140 hysteresis = <2000>; 141 type = "critical"; 142 }; 143 144 cpu-hot { 145 temperature = <95000>; 146 hysteresis = <2000>; 147 type = "hot"; 148 }; 149 }; 150 }; 151 152 sensor5-thermal { 153 polling-delay-passive = <0>; 154 polling-delay = <0>; 155 thermal-sensors = <&tsens 5>; 156 157 trips { 158 cpu-critical { 159 temperature = <105000>; 160 hysteresis = <2000>; 161 type = "critical"; 162 }; 163 164 cpu-hot { 165 temperature = <95000>; 166 hysteresis = <2000>; 167 type = "hot"; 168 }; 169 }; 170 }; 171 172 sensor6-thermal { 173 polling-delay-passive = <0>; 174 polling-delay = <0>; 175 thermal-sensors = <&tsens 6>; 176 177 trips { 178 cpu-critical { 179 temperature = <105000>; 180 hysteresis = <2000>; 181 type = "critical"; 182 }; 183 184 cpu-hot { 185 temperature = <95000>; 186 hysteresis = <2000>; 187 type = "hot"; 188 }; 189 }; 190 }; 191 192 sensor7-thermal { 193 polling-delay-passive = <0>; 194 polling-delay = <0>; 195 thermal-sensors = <&tsens 7>; 196 197 trips { 198 cpu-critical { 199 temperature = <105000>; 200 hysteresis = <2000>; 201 type = "critical"; 202 }; 203 204 cpu-hot { 205 temperature = <95000>; 206 hysteresis = <2000>; 207 type = "hot"; 208 }; 209 }; 210 }; 211 212 sensor8-thermal { 213 polling-delay-passive = <0>; 214 polling-delay = <0>; 215 thermal-sensors = <&tsens 8>; 216 217 trips { 218 cpu-critical { 219 temperature = <105000>; 220 hysteresis = <2000>; 221 type = "critical"; 222 }; 223 224 cpu-hot { 225 temperature = <95000>; 226 hysteresis = <2000>; 227 type = "hot"; 228 }; 229 }; 230 }; 231 232 sensor9-thermal { 233 polling-delay-passive = <0>; 234 polling-delay = <0>; 235 thermal-sensors = <&tsens 9>; 236 237 trips { 238 cpu-critical { 239 temperature = <105000>; 240 hysteresis = <2000>; 241 type = "critical"; 242 }; 243 244 cpu-hot { 245 temperature = <95000>; 246 hysteresis = <2000>; 247 type = "hot"; 248 }; 249 }; 250 }; 251 252 sensor10-thermal { 253 polling-delay-passive = <0>; 254 polling-delay = <0>; 255 thermal-sensors = <&tsens 10>; 256 257 trips { 258 cpu-critical { 259 temperature = <105000>; 260 hysteresis = <2000>; 261 type = "critical"; 262 }; 263 264 cpu-hot { 265 temperature = <95000>; 266 hysteresis = <2000>; 267 type = "hot"; 268 }; 269 }; 270 }; 271 }; 272 273 memory { 274 device_type = "memory"; 275 reg = <0x0 0x0>; 276 }; 277 278 cpu-pmu { 279 compatible = "qcom,krait-pmu"; 280 interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | 281 IRQ_TYPE_LEVEL_HIGH)>; 282 }; 283 284 reserved-memory { 285 #address-cells = <1>; 286 #size-cells = <1>; 287 ranges; 288 289 nss@40000000 { 290 reg = <0x40000000 0x1000000>; 291 no-map; 292 }; 293 294 smem: smem@41000000 { 295 reg = <0x41000000 0x200000>; 296 no-map; 297 }; 298 }; 299 300 clocks { 301 cxo_board: cxo_board { 302 compatible = "fixed-clock"; 303 #clock-cells = <0>; 304 clock-frequency = <25000000>; 305 }; 306 307 pxo_board: pxo_board { 308 compatible = "fixed-clock"; 309 #clock-cells = <0>; 310 clock-frequency = <25000000>; 311 }; 312 313 sleep_clk: sleep_clk { 314 compatible = "fixed-clock"; 315 clock-frequency = <32768>; 316 #clock-cells = <0>; 317 }; 318 }; 319 320 firmware { 321 scm { 322 compatible = "qcom,scm-ipq806x", "qcom,scm"; 323 }; 324 }; 325 326 soc: soc { 327 #address-cells = <1>; 328 #size-cells = <1>; 329 ranges; 330 compatible = "simple-bus"; 331 332 lpass@28100000 { 333 compatible = "qcom,lpass-cpu"; 334 status = "disabled"; 335 clocks = <&lcc AHBIX_CLK>, 336 <&lcc MI2S_OSR_CLK>, 337 <&lcc MI2S_BIT_CLK>; 338 clock-names = "ahbix-clk", 339 "mi2s-osr-clk", 340 "mi2s-bit-clk"; 341 interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>; 342 interrupt-names = "lpass-irq-lpaif"; 343 reg = <0x28100000 0x10000>; 344 reg-names = "lpass-lpaif"; 345 }; 346 347 qcom_pinmux: pinmux@800000 { 348 compatible = "qcom,ipq8064-pinctrl"; 349 reg = <0x800000 0x4000>; 350 351 gpio-controller; 352 gpio-ranges = <&qcom_pinmux 0 0 69>; 353 #gpio-cells = <2>; 354 interrupt-controller; 355 #interrupt-cells = <2>; 356 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 357 358 pcie0_pins: pcie0_pinmux { 359 mux { 360 pins = "gpio3"; 361 function = "pcie1_rst"; 362 drive-strength = <12>; 363 bias-disable; 364 }; 365 }; 366 367 pcie1_pins: pcie1_pinmux { 368 mux { 369 pins = "gpio48"; 370 function = "pcie2_rst"; 371 drive-strength = <12>; 372 bias-disable; 373 }; 374 }; 375 376 pcie2_pins: pcie2_pinmux { 377 mux { 378 pins = "gpio63"; 379 function = "pcie3_rst"; 380 drive-strength = <12>; 381 bias-disable; 382 }; 383 }; 384 385 spi_pins: spi_pins { 386 mux { 387 pins = "gpio18", "gpio19", "gpio21"; 388 function = "gsbi5"; 389 drive-strength = <10>; 390 bias-none; 391 }; 392 }; 393 394 leds_pins: leds_pins { 395 mux { 396 pins = "gpio7", "gpio8", "gpio9", 397 "gpio26", "gpio53"; 398 function = "gpio"; 399 drive-strength = <2>; 400 bias-pull-down; 401 output-low; 402 }; 403 }; 404 405 buttons_pins: buttons_pins { 406 mux { 407 pins = "gpio54"; 408 drive-strength = <2>; 409 bias-pull-up; 410 }; 411 }; 412 413 nand_pins: nand_pins { 414 mux { 415 pins = "gpio34", "gpio35", "gpio36", 416 "gpio37", "gpio38", "gpio39", 417 "gpio40", "gpio41", "gpio42", 418 "gpio43", "gpio44", "gpio45", 419 "gpio46", "gpio47"; 420 function = "nand"; 421 drive-strength = <10>; 422 bias-disable; 423 }; 424 425 pullups { 426 pins = "gpio39"; 427 bias-pull-up; 428 }; 429 430 hold { 431 pins = "gpio40", "gpio41", "gpio42", 432 "gpio43", "gpio44", "gpio45", 433 "gpio46", "gpio47"; 434 bias-bus-hold; 435 }; 436 }; 437 }; 438 439 intc: interrupt-controller@2000000 { 440 compatible = "qcom,msm-qgic2"; 441 interrupt-controller; 442 #interrupt-cells = <3>; 443 reg = <0x02000000 0x1000>, 444 <0x02002000 0x1000>; 445 }; 446 447 timer@200a000 { 448 compatible = "qcom,kpss-timer", 449 "qcom,kpss-wdt-ipq8064", "qcom,msm-timer"; 450 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) | 451 IRQ_TYPE_EDGE_RISING)>, 452 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) | 453 IRQ_TYPE_EDGE_RISING)>, 454 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) | 455 IRQ_TYPE_EDGE_RISING)>, 456 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) | 457 IRQ_TYPE_EDGE_RISING)>, 458 <GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) | 459 IRQ_TYPE_EDGE_RISING)>; 460 reg = <0x0200a000 0x100>; 461 clock-frequency = <25000000>, 462 <32768>; 463 clocks = <&sleep_clk>; 464 clock-names = "sleep"; 465 cpu-offset = <0x80000>; 466 }; 467 468 acc0: clock-controller@2088000 { 469 compatible = "qcom,kpss-acc-v1"; 470 reg = <0x02088000 0x1000>, <0x02008000 0x1000>; 471 }; 472 473 acc1: clock-controller@2098000 { 474 compatible = "qcom,kpss-acc-v1"; 475 reg = <0x02098000 0x1000>, <0x02008000 0x1000>; 476 }; 477 478 adm_dma: dma-controller@18300000 { 479 compatible = "qcom,adm"; 480 reg = <0x18300000 0x100000>; 481 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 482 #dma-cells = <1>; 483 484 clocks = <&gcc ADM0_CLK>, <&gcc ADM0_PBUS_CLK>; 485 clock-names = "core", "iface"; 486 487 resets = <&gcc ADM0_RESET>, 488 <&gcc ADM0_PBUS_RESET>, 489 <&gcc ADM0_C0_RESET>, 490 <&gcc ADM0_C1_RESET>, 491 <&gcc ADM0_C2_RESET>; 492 reset-names = "clk", "pbus", "c0", "c1", "c2"; 493 qcom,ee = <0>; 494 495 status = "disabled"; 496 }; 497 498 saw0: regulator@2089000 { 499 compatible = "qcom,saw2"; 500 reg = <0x02089000 0x1000>, <0x02009000 0x1000>; 501 regulator; 502 }; 503 504 saw1: regulator@2099000 { 505 compatible = "qcom,saw2"; 506 reg = <0x02099000 0x1000>, <0x02009000 0x1000>; 507 regulator; 508 }; 509 510 gsbi2: gsbi@12480000 { 511 compatible = "qcom,gsbi-v1.0.0"; 512 cell-index = <2>; 513 reg = <0x12480000 0x100>; 514 clocks = <&gcc GSBI2_H_CLK>; 515 clock-names = "iface"; 516 #address-cells = <1>; 517 #size-cells = <1>; 518 ranges; 519 status = "disabled"; 520 521 syscon-tcsr = <&tcsr>; 522 523 gsbi2_serial: serial@12490000 { 524 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 525 reg = <0x12490000 0x1000>, 526 <0x12480000 0x1000>; 527 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; 528 clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>; 529 clock-names = "core", "iface"; 530 status = "disabled"; 531 }; 532 533 i2c@124a0000 { 534 compatible = "qcom,i2c-qup-v1.1.1"; 535 reg = <0x124a0000 0x1000>; 536 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; 537 538 clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>; 539 clock-names = "core", "iface"; 540 status = "disabled"; 541 542 #address-cells = <1>; 543 #size-cells = <0>; 544 }; 545 }; 546 547 gsbi4: gsbi@16300000 { 548 compatible = "qcom,gsbi-v1.0.0"; 549 cell-index = <4>; 550 reg = <0x16300000 0x100>; 551 clocks = <&gcc GSBI4_H_CLK>; 552 clock-names = "iface"; 553 #address-cells = <1>; 554 #size-cells = <1>; 555 ranges; 556 status = "disabled"; 557 558 syscon-tcsr = <&tcsr>; 559 560 gsbi4_serial: serial@16340000 { 561 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 562 reg = <0x16340000 0x1000>, 563 <0x16300000 0x1000>; 564 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 565 clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>; 566 clock-names = "core", "iface"; 567 status = "disabled"; 568 }; 569 570 i2c@16380000 { 571 compatible = "qcom,i2c-qup-v1.1.1"; 572 reg = <0x16380000 0x1000>; 573 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; 574 575 clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>; 576 clock-names = "core", "iface"; 577 status = "disabled"; 578 579 #address-cells = <1>; 580 #size-cells = <0>; 581 }; 582 }; 583 584 gsbi5: gsbi@1a200000 { 585 compatible = "qcom,gsbi-v1.0.0"; 586 cell-index = <5>; 587 reg = <0x1a200000 0x100>; 588 clocks = <&gcc GSBI5_H_CLK>; 589 clock-names = "iface"; 590 #address-cells = <1>; 591 #size-cells = <1>; 592 ranges; 593 status = "disabled"; 594 595 syscon-tcsr = <&tcsr>; 596 597 gsbi5_serial: serial@1a240000 { 598 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 599 reg = <0x1a240000 0x1000>, 600 <0x1a200000 0x1000>; 601 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 602 clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>; 603 clock-names = "core", "iface"; 604 status = "disabled"; 605 }; 606 607 i2c@1a280000 { 608 compatible = "qcom,i2c-qup-v1.1.1"; 609 reg = <0x1a280000 0x1000>; 610 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 611 612 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>; 613 clock-names = "core", "iface"; 614 status = "disabled"; 615 616 #address-cells = <1>; 617 #size-cells = <0>; 618 }; 619 620 spi@1a280000 { 621 compatible = "qcom,spi-qup-v1.1.1"; 622 reg = <0x1a280000 0x1000>; 623 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 624 625 clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>; 626 clock-names = "core", "iface"; 627 status = "disabled"; 628 629 #address-cells = <1>; 630 #size-cells = <0>; 631 }; 632 }; 633 634 gsbi7: gsbi@16600000 { 635 status = "disabled"; 636 compatible = "qcom,gsbi-v1.0.0"; 637 cell-index = <7>; 638 reg = <0x16600000 0x100>; 639 clocks = <&gcc GSBI7_H_CLK>; 640 clock-names = "iface"; 641 #address-cells = <1>; 642 #size-cells = <1>; 643 ranges; 644 syscon-tcsr = <&tcsr>; 645 646 gsbi7_serial: serial@16640000 { 647 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 648 reg = <0x16640000 0x1000>, 649 <0x16600000 0x1000>; 650 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 651 clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>; 652 clock-names = "core", "iface"; 653 status = "disabled"; 654 }; 655 }; 656 657 rng@1a500000 { 658 compatible = "qcom,prng"; 659 reg = <0x1a500000 0x200>; 660 clocks = <&gcc PRNG_CLK>; 661 clock-names = "core"; 662 }; 663 664 sata_phy: sata-phy@1b400000 { 665 compatible = "qcom,ipq806x-sata-phy"; 666 reg = <0x1b400000 0x200>; 667 668 clocks = <&gcc SATA_PHY_CFG_CLK>; 669 clock-names = "cfg"; 670 671 #phy-cells = <0>; 672 status = "disabled"; 673 }; 674 675 nand: nand-controller@1ac00000 { 676 compatible = "qcom,ipq806x-nand"; 677 reg = <0x1ac00000 0x800>; 678 679 pinctrl-0 = <&nand_pins>; 680 pinctrl-names = "default"; 681 682 clocks = <&gcc EBI2_CLK>, 683 <&gcc EBI2_AON_CLK>; 684 clock-names = "core", "aon"; 685 686 dmas = <&adm_dma 3>; 687 dma-names = "rxtx"; 688 qcom,cmd-crci = <15>; 689 qcom,data-crci = <3>; 690 691 #address-cells = <1>; 692 #size-cells = <0>; 693 694 status = "disabled"; 695 }; 696 697 sata: sata@29000000 { 698 compatible = "qcom,ipq806x-ahci", "generic-ahci"; 699 reg = <0x29000000 0x180>; 700 701 interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>; 702 703 clocks = <&gcc SFAB_SATA_S_H_CLK>, 704 <&gcc SATA_H_CLK>, 705 <&gcc SATA_A_CLK>, 706 <&gcc SATA_RXOOB_CLK>, 707 <&gcc SATA_PMALIVE_CLK>; 708 clock-names = "slave_face", "iface", "core", 709 "rxoob", "pmalive"; 710 711 assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>; 712 assigned-clock-rates = <100000000>, <100000000>; 713 714 phys = <&sata_phy>; 715 phy-names = "sata-phy"; 716 status = "disabled"; 717 }; 718 719 qcom,ssbi@500000 { 720 compatible = "qcom,ssbi"; 721 reg = <0x00500000 0x1000>; 722 qcom,controller-type = "pmic-arbiter"; 723 }; 724 725 qfprom: qfprom@700000 { 726 compatible = "qcom,qfprom"; 727 reg = <0x00700000 0x1000>; 728 #address-cells = <1>; 729 #size-cells = <1>; 730 tsens_calib: calib@400 { 731 reg = <0x400 0xb>; 732 }; 733 tsens_calib_backup: calib_backup@410 { 734 reg = <0x410 0xb>; 735 }; 736 }; 737 738 gcc: clock-controller@900000 { 739 compatible = "qcom,gcc-ipq8064", "syscon"; 740 clocks = <&pxo_board>, <&cxo_board>; 741 clock-names = "pxo", "cxo"; 742 reg = <0x00900000 0x4000>; 743 #clock-cells = <1>; 744 #reset-cells = <1>; 745 #power-domain-cells = <1>; 746 747 tsens: thermal-sensor@900000 { 748 compatible = "qcom,ipq8064-tsens"; 749 750 nvmem-cells = <&tsens_calib>, <&tsens_calib_backup>; 751 nvmem-cell-names = "calib", "calib_backup"; 752 interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>; 753 interrupt-names = "uplow"; 754 755 #qcom,sensors = <11>; 756 #thermal-sensor-cells = <1>; 757 }; 758 }; 759 760 rpm: rpm@108000 { 761 compatible = "qcom,rpm-ipq8064"; 762 reg = <0x108000 0x1000>; 763 qcom,ipc = <&l2cc 0x8 2>; 764 765 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 766 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 767 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 768 interrupt-names = "ack", "err", "wakeup"; 769 770 clocks = <&gcc RPM_MSG_RAM_H_CLK>; 771 clock-names = "ram"; 772 773 rpmcc: clock-controller { 774 compatible = "qcom,rpmcc-ipq806x", "qcom,rpmcc"; 775 #clock-cells = <1>; 776 }; 777 }; 778 779 tcsr: syscon@1a400000 { 780 compatible = "qcom,tcsr-ipq8064", "syscon"; 781 reg = <0x1a400000 0x100>; 782 }; 783 784 l2cc: clock-controller@2011000 { 785 compatible = "qcom,kpss-gcc", "syscon"; 786 reg = <0x2011000 0x1000>; 787 clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>; 788 clock-names = "pll8_vote", "pxo"; 789 clock-output-names = "acpu_l2_aux"; 790 }; 791 792 lcc: clock-controller@28000000 { 793 compatible = "qcom,lcc-ipq8064"; 794 reg = <0x28000000 0x1000>; 795 #clock-cells = <1>; 796 #reset-cells = <1>; 797 }; 798 799 pcie0: pci@1b500000 { 800 compatible = "qcom,pcie-ipq8064"; 801 reg = <0x1b500000 0x1000 802 0x1b502000 0x80 803 0x1b600000 0x100 804 0x0ff00000 0x100000>; 805 reg-names = "dbi", "elbi", "parf", "config"; 806 device_type = "pci"; 807 linux,pci-domain = <0>; 808 bus-range = <0x00 0xff>; 809 num-lanes = <1>; 810 #address-cells = <3>; 811 #size-cells = <2>; 812 813 ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */ 814 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */ 815 816 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 817 interrupt-names = "msi"; 818 #interrupt-cells = <1>; 819 interrupt-map-mask = <0 0 0 0x7>; 820 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 821 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 822 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 823 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 824 825 clocks = <&gcc PCIE_A_CLK>, 826 <&gcc PCIE_H_CLK>, 827 <&gcc PCIE_PHY_CLK>, 828 <&gcc PCIE_AUX_CLK>, 829 <&gcc PCIE_ALT_REF_CLK>; 830 clock-names = "core", "iface", "phy", "aux", "ref"; 831 832 assigned-clocks = <&gcc PCIE_ALT_REF_CLK>; 833 assigned-clock-rates = <100000000>; 834 835 resets = <&gcc PCIE_ACLK_RESET>, 836 <&gcc PCIE_HCLK_RESET>, 837 <&gcc PCIE_POR_RESET>, 838 <&gcc PCIE_PCI_RESET>, 839 <&gcc PCIE_PHY_RESET>, 840 <&gcc PCIE_EXT_RESET>; 841 reset-names = "axi", "ahb", "por", "pci", "phy", "ext"; 842 843 pinctrl-0 = <&pcie0_pins>; 844 pinctrl-names = "default"; 845 846 status = "disabled"; 847 perst-gpio = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>; 848 }; 849 850 pcie1: pci@1b700000 { 851 compatible = "qcom,pcie-ipq8064"; 852 reg = <0x1b700000 0x1000 853 0x1b702000 0x80 854 0x1b800000 0x100 855 0x31f00000 0x100000>; 856 reg-names = "dbi", "elbi", "parf", "config"; 857 device_type = "pci"; 858 linux,pci-domain = <1>; 859 bus-range = <0x00 0xff>; 860 num-lanes = <1>; 861 #address-cells = <3>; 862 #size-cells = <2>; 863 864 ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */ 865 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */ 866 867 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 868 interrupt-names = "msi"; 869 #interrupt-cells = <1>; 870 interrupt-map-mask = <0 0 0 0x7>; 871 interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 872 <0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 873 <0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 874 <0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 875 876 clocks = <&gcc PCIE_1_A_CLK>, 877 <&gcc PCIE_1_H_CLK>, 878 <&gcc PCIE_1_PHY_CLK>, 879 <&gcc PCIE_1_AUX_CLK>, 880 <&gcc PCIE_1_ALT_REF_CLK>; 881 clock-names = "core", "iface", "phy", "aux", "ref"; 882 883 assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>; 884 assigned-clock-rates = <100000000>; 885 886 resets = <&gcc PCIE_1_ACLK_RESET>, 887 <&gcc PCIE_1_HCLK_RESET>, 888 <&gcc PCIE_1_POR_RESET>, 889 <&gcc PCIE_1_PCI_RESET>, 890 <&gcc PCIE_1_PHY_RESET>, 891 <&gcc PCIE_1_EXT_RESET>; 892 reset-names = "axi", "ahb", "por", "pci", "phy", "ext"; 893 894 pinctrl-0 = <&pcie1_pins>; 895 pinctrl-names = "default"; 896 897 status = "disabled"; 898 perst-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>; 899 }; 900 901 pcie2: pci@1b900000 { 902 compatible = "qcom,pcie-ipq8064"; 903 reg = <0x1b900000 0x1000 904 0x1b902000 0x80 905 0x1ba00000 0x100 906 0x35f00000 0x100000>; 907 reg-names = "dbi", "elbi", "parf", "config"; 908 device_type = "pci"; 909 linux,pci-domain = <2>; 910 bus-range = <0x00 0xff>; 911 num-lanes = <1>; 912 #address-cells = <3>; 913 #size-cells = <2>; 914 915 ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */ 916 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */ 917 918 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 919 interrupt-names = "msi"; 920 #interrupt-cells = <1>; 921 interrupt-map-mask = <0 0 0 0x7>; 922 interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 923 <0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 924 <0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 925 <0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 926 927 clocks = <&gcc PCIE_2_A_CLK>, 928 <&gcc PCIE_2_H_CLK>, 929 <&gcc PCIE_2_PHY_CLK>, 930 <&gcc PCIE_2_AUX_CLK>, 931 <&gcc PCIE_2_ALT_REF_CLK>; 932 clock-names = "core", "iface", "phy", "aux", "ref"; 933 934 assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>; 935 assigned-clock-rates = <100000000>; 936 937 resets = <&gcc PCIE_2_ACLK_RESET>, 938 <&gcc PCIE_2_HCLK_RESET>, 939 <&gcc PCIE_2_POR_RESET>, 940 <&gcc PCIE_2_PCI_RESET>, 941 <&gcc PCIE_2_PHY_RESET>, 942 <&gcc PCIE_2_EXT_RESET>; 943 reset-names = "axi", "ahb", "por", "pci", "phy", "ext"; 944 945 pinctrl-0 = <&pcie2_pins>; 946 pinctrl-names = "default"; 947 948 status = "disabled"; 949 perst-gpio = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>; 950 }; 951 952 nss_common: syscon@03000000 { 953 compatible = "syscon"; 954 reg = <0x03000000 0x0000FFFF>; 955 }; 956 957 qsgmii_csr: syscon@1bb00000 { 958 compatible = "syscon"; 959 reg = <0x1bb00000 0x000001FF>; 960 }; 961 962 stmmac_axi_setup: stmmac-axi-config { 963 snps,wr_osr_lmt = <7>; 964 snps,rd_osr_lmt = <7>; 965 snps,blen = <16 0 0 0 0 0 0>; 966 }; 967 968 gmac0: ethernet@37000000 { 969 device_type = "network"; 970 compatible = "qcom,ipq806x-gmac"; 971 reg = <0x37000000 0x200000>; 972 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; 973 interrupt-names = "macirq"; 974 975 snps,axi-config = <&stmmac_axi_setup>; 976 snps,pbl = <32>; 977 snps,aal; 978 979 qcom,nss-common = <&nss_common>; 980 qcom,qsgmii-csr = <&qsgmii_csr>; 981 982 clocks = <&gcc GMAC_CORE1_CLK>; 983 clock-names = "stmmaceth"; 984 985 resets = <&gcc GMAC_CORE1_RESET>, 986 <&gcc GMAC_AHB_RESET>; 987 reset-names = "stmmaceth", "ahb"; 988 989 status = "disabled"; 990 }; 991 992 gmac1: ethernet@37200000 { 993 device_type = "network"; 994 compatible = "qcom,ipq806x-gmac"; 995 reg = <0x37200000 0x200000>; 996 interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>; 997 interrupt-names = "macirq"; 998 999 snps,axi-config = <&stmmac_axi_setup>; 1000 snps,pbl = <32>; 1001 snps,aal; 1002 1003 qcom,nss-common = <&nss_common>; 1004 qcom,qsgmii-csr = <&qsgmii_csr>; 1005 1006 clocks = <&gcc GMAC_CORE2_CLK>; 1007 clock-names = "stmmaceth"; 1008 1009 resets = <&gcc GMAC_CORE2_RESET>, 1010 <&gcc GMAC_AHB_RESET>; 1011 reset-names = "stmmaceth", "ahb"; 1012 1013 status = "disabled"; 1014 }; 1015 1016 gmac2: ethernet@37400000 { 1017 device_type = "network"; 1018 compatible = "qcom,ipq806x-gmac"; 1019 reg = <0x37400000 0x200000>; 1020 interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; 1021 interrupt-names = "macirq"; 1022 1023 snps,axi-config = <&stmmac_axi_setup>; 1024 snps,pbl = <32>; 1025 snps,aal; 1026 1027 qcom,nss-common = <&nss_common>; 1028 qcom,qsgmii-csr = <&qsgmii_csr>; 1029 1030 clocks = <&gcc GMAC_CORE3_CLK>; 1031 clock-names = "stmmaceth"; 1032 1033 resets = <&gcc GMAC_CORE3_RESET>, 1034 <&gcc GMAC_AHB_RESET>; 1035 reset-names = "stmmaceth", "ahb"; 1036 1037 status = "disabled"; 1038 }; 1039 1040 gmac3: ethernet@37600000 { 1041 device_type = "network"; 1042 compatible = "qcom,ipq806x-gmac"; 1043 reg = <0x37600000 0x200000>; 1044 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; 1045 interrupt-names = "macirq"; 1046 1047 snps,axi-config = <&stmmac_axi_setup>; 1048 snps,pbl = <32>; 1049 snps,aal; 1050 1051 qcom,nss-common = <&nss_common>; 1052 qcom,qsgmii-csr = <&qsgmii_csr>; 1053 1054 clocks = <&gcc GMAC_CORE4_CLK>; 1055 clock-names = "stmmaceth"; 1056 1057 resets = <&gcc GMAC_CORE4_RESET>, 1058 <&gcc GMAC_AHB_RESET>; 1059 reset-names = "stmmaceth", "ahb"; 1060 1061 status = "disabled"; 1062 }; 1063 1064 hs_phy_0: phy@100f8800 { 1065 compatible = "qcom,ipq806x-usb-phy-hs"; 1066 reg = <0x100f8800 0x30>; 1067 clocks = <&gcc USB30_0_UTMI_CLK>; 1068 clock-names = "ref"; 1069 #phy-cells = <0>; 1070 1071 status = "disabled"; 1072 }; 1073 1074 ss_phy_0: phy@100f8830 { 1075 compatible = "qcom,ipq806x-usb-phy-ss"; 1076 reg = <0x100f8830 0x30>; 1077 clocks = <&gcc USB30_0_MASTER_CLK>; 1078 clock-names = "ref"; 1079 #phy-cells = <0>; 1080 1081 status = "disabled"; 1082 }; 1083 1084 usb3_0: usb3@100f8800 { 1085 compatible = "qcom,ipq8064-dwc3", "qcom,dwc3"; 1086 #address-cells = <1>; 1087 #size-cells = <1>; 1088 reg = <0x100f8800 0x8000>; 1089 clocks = <&gcc USB30_0_MASTER_CLK>; 1090 clock-names = "core"; 1091 1092 ranges; 1093 1094 resets = <&gcc USB30_0_MASTER_RESET>; 1095 reset-names = "master"; 1096 1097 status = "disabled"; 1098 1099 dwc3_0: dwc3@10000000 { 1100 compatible = "snps,dwc3"; 1101 reg = <0x10000000 0xcd00>; 1102 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; 1103 phys = <&hs_phy_0>, <&ss_phy_0>; 1104 phy-names = "usb2-phy", "usb3-phy"; 1105 dr_mode = "host"; 1106 snps,dis_u3_susphy_quirk; 1107 }; 1108 }; 1109 1110 hs_phy_1: phy@110f8800 { 1111 compatible = "qcom,ipq806x-usb-phy-hs"; 1112 reg = <0x110f8800 0x30>; 1113 clocks = <&gcc USB30_1_UTMI_CLK>; 1114 clock-names = "ref"; 1115 #phy-cells = <0>; 1116 }; 1117 1118 ss_phy_1: phy@110f8830 { 1119 compatible = "qcom,ipq806x-usb-phy-ss"; 1120 reg = <0x110f8830 0x30>; 1121 clocks = <&gcc USB30_1_MASTER_CLK>; 1122 clock-names = "ref"; 1123 #phy-cells = <0>; 1124 }; 1125 1126 usb3_1: usb3@110f8800 { 1127 compatible = "qcom,ipq8064-dwc3", "qcom,dwc3"; 1128 #address-cells = <1>; 1129 #size-cells = <1>; 1130 reg = <0x110f8800 0x8000>; 1131 clocks = <&gcc USB30_1_MASTER_CLK>; 1132 clock-names = "core"; 1133 1134 ranges; 1135 1136 resets = <&gcc USB30_1_MASTER_RESET>; 1137 reset-names = "master"; 1138 1139 status = "disabled"; 1140 1141 dwc3_1: dwc3@11000000 { 1142 compatible = "snps,dwc3"; 1143 reg = <0x11000000 0xcd00>; 1144 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 1145 phys = <&hs_phy_1>, <&ss_phy_1>; 1146 phy-names = "usb2-phy", "usb3-phy"; 1147 dr_mode = "host"; 1148 snps,dis_u3_susphy_quirk; 1149 }; 1150 }; 1151 1152 vsdcc_fixed: vsdcc-regulator { 1153 compatible = "regulator-fixed"; 1154 regulator-name = "SDCC Power"; 1155 regulator-min-microvolt = <3300000>; 1156 regulator-max-microvolt = <3300000>; 1157 regulator-always-on; 1158 }; 1159 1160 sdcc1bam: dma-controller@12402000 { 1161 compatible = "qcom,bam-v1.3.0"; 1162 reg = <0x12402000 0x8000>; 1163 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1164 clocks = <&gcc SDC1_H_CLK>; 1165 clock-names = "bam_clk"; 1166 #dma-cells = <1>; 1167 qcom,ee = <0>; 1168 }; 1169 1170 sdcc3bam: dma-controller@12182000 { 1171 compatible = "qcom,bam-v1.3.0"; 1172 reg = <0x12182000 0x8000>; 1173 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 1174 clocks = <&gcc SDC3_H_CLK>; 1175 clock-names = "bam_clk"; 1176 #dma-cells = <1>; 1177 qcom,ee = <0>; 1178 }; 1179 1180 amba: amba { 1181 compatible = "simple-bus"; 1182 #address-cells = <1>; 1183 #size-cells = <1>; 1184 ranges; 1185 1186 sdcc1: mmc@12400000 { 1187 status = "disabled"; 1188 compatible = "arm,pl18x", "arm,primecell"; 1189 arm,primecell-periphid = <0x00051180>; 1190 reg = <0x12400000 0x2000>; 1191 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 1192 interrupt-names = "cmd_irq"; 1193 clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>; 1194 clock-names = "mclk", "apb_pclk"; 1195 bus-width = <8>; 1196 max-frequency = <96000000>; 1197 non-removable; 1198 cap-sd-highspeed; 1199 cap-mmc-highspeed; 1200 mmc-ddr-1_8v; 1201 vmmc-supply = <&vsdcc_fixed>; 1202 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; 1203 dma-names = "tx", "rx"; 1204 }; 1205 1206 sdcc3: mmc@12180000 { 1207 compatible = "arm,pl18x", "arm,primecell"; 1208 arm,primecell-periphid = <0x00051180>; 1209 status = "disabled"; 1210 reg = <0x12180000 0x2000>; 1211 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 1212 interrupt-names = "cmd_irq"; 1213 clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>; 1214 clock-names = "mclk", "apb_pclk"; 1215 bus-width = <8>; 1216 cap-sd-highspeed; 1217 cap-mmc-highspeed; 1218 max-frequency = <192000000>; 1219 sd-uhs-sdr104; 1220 sd-uhs-ddr50; 1221 vqmmc-supply = <&vsdcc_fixed>; 1222 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>; 1223 dma-names = "tx", "rx"; 1224 }; 1225 }; 1226 }; 1227};