1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * IPQ6018 SoC device tree source 4 * 5 * Copyright (c) 2019, The Linux Foundation. All rights reserved. 6 */ 7 8#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/clock/qcom,gcc-ipq6018.h> 10#include <dt-bindings/reset/qcom,gcc-ipq6018.h> 11#include <dt-bindings/clock/qcom,apss-ipq.h> 12#include <dt-bindings/thermal/thermal.h> 13 14/ { 15 #address-cells = <2>; 16 #size-cells = <2>; 17 interrupt-parent = <&intc>; 18 19 clocks { 20 sleep_clk: sleep-clk { 21 compatible = "fixed-clock"; 22 clock-frequency = <32000>; 23 #clock-cells = <0>; 24 }; 25 26 xo: xo { 27 compatible = "fixed-clock"; 28 clock-frequency = <24000000>; 29 #clock-cells = <0>; 30 }; 31 }; 32 33 cpus: cpus { 34 #address-cells = <1>; 35 #size-cells = <0>; 36 37 CPU0: cpu@0 { 38 device_type = "cpu"; 39 compatible = "arm,cortex-a53"; 40 reg = <0x0>; 41 enable-method = "psci"; 42 next-level-cache = <&L2_0>; 43 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; 44 clock-names = "cpu"; 45 operating-points-v2 = <&cpu_opp_table>; 46 cpu-supply = <&ipq6018_s2>; 47 #cooling-cells = <2>; 48 }; 49 50 CPU1: cpu@1 { 51 device_type = "cpu"; 52 compatible = "arm,cortex-a53"; 53 enable-method = "psci"; 54 reg = <0x1>; 55 next-level-cache = <&L2_0>; 56 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; 57 clock-names = "cpu"; 58 operating-points-v2 = <&cpu_opp_table>; 59 cpu-supply = <&ipq6018_s2>; 60 #cooling-cells = <2>; 61 }; 62 63 CPU2: cpu@2 { 64 device_type = "cpu"; 65 compatible = "arm,cortex-a53"; 66 enable-method = "psci"; 67 reg = <0x2>; 68 next-level-cache = <&L2_0>; 69 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; 70 clock-names = "cpu"; 71 operating-points-v2 = <&cpu_opp_table>; 72 cpu-supply = <&ipq6018_s2>; 73 #cooling-cells = <2>; 74 }; 75 76 CPU3: cpu@3 { 77 device_type = "cpu"; 78 compatible = "arm,cortex-a53"; 79 enable-method = "psci"; 80 reg = <0x3>; 81 next-level-cache = <&L2_0>; 82 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; 83 clock-names = "cpu"; 84 operating-points-v2 = <&cpu_opp_table>; 85 cpu-supply = <&ipq6018_s2>; 86 #cooling-cells = <2>; 87 }; 88 89 L2_0: l2-cache { 90 compatible = "cache"; 91 cache-level = <2>; 92 cache-unified; 93 }; 94 }; 95 96 firmware { 97 scm { 98 compatible = "qcom,scm-ipq6018", "qcom,scm"; 99 qcom,dload-mode = <&tcsr 0x6100>; 100 }; 101 }; 102 103 cpu_opp_table: opp-table-cpu { 104 compatible = "operating-points-v2-kryo-cpu"; 105 nvmem-cells = <&cpu_speed_bin>; 106 opp-shared; 107 108 opp-864000000 { 109 opp-hz = /bits/ 64 <864000000>; 110 opp-microvolt = <725000>; 111 opp-supported-hw = <0xf>; 112 clock-latency-ns = <200000>; 113 }; 114 115 opp-1056000000 { 116 opp-hz = /bits/ 64 <1056000000>; 117 opp-microvolt = <787500>; 118 opp-supported-hw = <0xf>; 119 clock-latency-ns = <200000>; 120 }; 121 122 opp-1320000000 { 123 opp-hz = /bits/ 64 <1320000000>; 124 opp-microvolt = <862500>; 125 opp-supported-hw = <0x3>; 126 clock-latency-ns = <200000>; 127 }; 128 129 opp-1440000000 { 130 opp-hz = /bits/ 64 <1440000000>; 131 opp-microvolt = <925000>; 132 opp-supported-hw = <0x3>; 133 clock-latency-ns = <200000>; 134 }; 135 136 opp-1608000000 { 137 opp-hz = /bits/ 64 <1608000000>; 138 opp-microvolt = <987500>; 139 opp-supported-hw = <0x1>; 140 clock-latency-ns = <200000>; 141 }; 142 143 opp-1800000000 { 144 opp-hz = /bits/ 64 <1800000000>; 145 opp-microvolt = <1062500>; 146 opp-supported-hw = <0x1>; 147 clock-latency-ns = <200000>; 148 }; 149 }; 150 151 pmuv8: pmu { 152 compatible = "arm,cortex-a53-pmu"; 153 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 154 }; 155 156 psci: psci { 157 compatible = "arm,psci-1.0"; 158 method = "smc"; 159 }; 160 161 rpm: remoteproc { 162 compatible = "qcom,ipq6018-rpm-proc", "qcom,rpm-proc"; 163 164 glink-edge { 165 compatible = "qcom,glink-rpm"; 166 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 167 qcom,rpm-msg-ram = <&rpm_msg_ram>; 168 mboxes = <&apcs_glb 0>; 169 170 rpm_requests: rpm-requests { 171 compatible = "qcom,rpm-ipq6018"; 172 qcom,glink-channels = "rpm_requests"; 173 174 regulators { 175 compatible = "qcom,rpm-mp5496-regulators"; 176 177 ipq6018_s2: s2 { 178 regulator-min-microvolt = <725000>; 179 regulator-max-microvolt = <1062500>; 180 regulator-always-on; 181 }; 182 }; 183 }; 184 }; 185 }; 186 187 reserved-memory { 188 #address-cells = <2>; 189 #size-cells = <2>; 190 ranges; 191 192 rpm_msg_ram: memory@60000 { 193 reg = <0x0 0x00060000 0x0 0x6000>; 194 no-map; 195 }; 196 197 bootloader@4a100000 { 198 reg = <0x0 0x4a100000 0x0 0x400000>; 199 no-map; 200 }; 201 202 sbl@4a500000 { 203 reg = <0x0 0x4a500000 0x0 0x100000>; 204 no-map; 205 }; 206 207 tz: memory@4a600000 { 208 reg = <0x0 0x4a600000 0x0 0x400000>; 209 no-map; 210 }; 211 212 smem_region: memory@4aa00000 { 213 reg = <0x0 0x4aa00000 0x0 0x100000>; 214 no-map; 215 }; 216 217 q6_region: memory@4ab00000 { 218 reg = <0x0 0x4ab00000 0x0 0x5500000>; 219 no-map; 220 }; 221 }; 222 223 smem { 224 compatible = "qcom,smem"; 225 memory-region = <&smem_region>; 226 hwlocks = <&tcsr_mutex 3>; 227 }; 228 229 soc: soc@0 { 230 #address-cells = <2>; 231 #size-cells = <2>; 232 ranges = <0 0 0 0 0x0 0xffffffff>; 233 dma-ranges; 234 compatible = "simple-bus"; 235 236 qusb_phy_1: qusb@59000 { 237 compatible = "qcom,ipq6018-qusb2-phy"; 238 reg = <0x0 0x00059000 0x0 0x180>; 239 #phy-cells = <0>; 240 241 clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>, 242 <&xo>; 243 clock-names = "cfg_ahb", "ref"; 244 245 resets = <&gcc GCC_QUSB2_1_PHY_BCR>; 246 status = "disabled"; 247 }; 248 249 ssphy_0: ssphy@78000 { 250 compatible = "qcom,ipq6018-qmp-usb3-phy"; 251 reg = <0x0 0x00078000 0x0 0x1000>; 252 253 clocks = <&gcc GCC_USB0_AUX_CLK>, 254 <&xo>, 255 <&gcc GCC_USB0_PHY_CFG_AHB_CLK>, 256 <&gcc GCC_USB0_PIPE_CLK>; 257 clock-names = "aux", 258 "ref", 259 "cfg_ahb", 260 "pipe"; 261 clock-output-names = "gcc_usb0_pipe_clk_src"; 262 #clock-cells = <0>; 263 #phy-cells = <0>; 264 265 resets = <&gcc GCC_USB0_PHY_BCR>, 266 <&gcc GCC_USB3PHY_0_PHY_BCR>; 267 reset-names = "phy", 268 "phy_phy"; 269 270 status = "disabled"; 271 }; 272 273 qusb_phy_0: qusb@79000 { 274 compatible = "qcom,ipq6018-qusb2-phy"; 275 reg = <0x0 0x00079000 0x0 0x180>; 276 #phy-cells = <0>; 277 278 clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>, 279 <&xo>; 280 clock-names = "cfg_ahb", "ref"; 281 282 resets = <&gcc GCC_QUSB2_0_PHY_BCR>; 283 status = "disabled"; 284 }; 285 286 pcie_phy: phy@84000 { 287 compatible = "qcom,ipq6018-qmp-pcie-phy"; 288 reg = <0x0 0x00084000 0x0 0x1000>; 289 status = "disabled"; 290 291 clocks = <&gcc GCC_PCIE0_AUX_CLK>, 292 <&gcc GCC_PCIE0_AHB_CLK>, 293 <&gcc GCC_PCIE0_PIPE_CLK>; 294 clock-names = "aux", 295 "cfg_ahb", 296 "pipe"; 297 298 clock-output-names = "gcc_pcie0_pipe_clk_src"; 299 #clock-cells = <0>; 300 301 #phy-cells = <0>; 302 303 resets = <&gcc GCC_PCIE0_PHY_BCR>, 304 <&gcc GCC_PCIE0PHY_PHY_BCR>; 305 reset-names = "phy", 306 "common"; 307 }; 308 309 mdio: mdio@90000 { 310 #address-cells = <1>; 311 #size-cells = <0>; 312 compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio"; 313 reg = <0x0 0x00090000 0x0 0x64>; 314 clocks = <&gcc GCC_MDIO_AHB_CLK>; 315 clock-names = "gcc_mdio_ahb_clk"; 316 status = "disabled"; 317 }; 318 319 qfprom: efuse@a4000 { 320 compatible = "qcom,ipq6018-qfprom", "qcom,qfprom"; 321 reg = <0x0 0x000a4000 0x0 0x2000>; 322 #address-cells = <1>; 323 #size-cells = <1>; 324 325 cpu_speed_bin: cpu-speed-bin@135 { 326 reg = <0x135 0x1>; 327 bits = <7 1>; 328 }; 329 }; 330 331 prng: qrng@e3000 { 332 compatible = "qcom,prng-ee"; 333 reg = <0x0 0x000e3000 0x0 0x1000>; 334 clocks = <&gcc GCC_PRNG_AHB_CLK>; 335 clock-names = "core"; 336 }; 337 338 tsens: thermal-sensor@4a9000 { 339 compatible = "qcom,ipq6018-tsens", "qcom,ipq8074-tsens"; 340 reg = <0x0 0x004a9000 0x0 0x1000>, 341 <0x0 0x004a8000 0x0 0x1000>; 342 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 343 interrupt-names = "combined"; 344 #qcom,sensors = <16>; 345 #thermal-sensor-cells = <1>; 346 }; 347 348 cryptobam: dma-controller@704000 { 349 compatible = "qcom,bam-v1.7.0"; 350 reg = <0x0 0x00704000 0x0 0x20000>; 351 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; 352 clocks = <&gcc GCC_CRYPTO_AHB_CLK>; 353 clock-names = "bam_clk"; 354 #dma-cells = <1>; 355 qcom,ee = <1>; 356 qcom,controlled-remotely; 357 }; 358 359 crypto: crypto@73a000 { 360 compatible = "qcom,crypto-v5.1"; 361 reg = <0x0 0x0073a000 0x0 0x6000>; 362 clocks = <&gcc GCC_CRYPTO_AHB_CLK>, 363 <&gcc GCC_CRYPTO_AXI_CLK>, 364 <&gcc GCC_CRYPTO_CLK>; 365 clock-names = "iface", "bus", "core"; 366 dmas = <&cryptobam 2>, <&cryptobam 3>; 367 dma-names = "rx", "tx"; 368 }; 369 370 tlmm: pinctrl@1000000 { 371 compatible = "qcom,ipq6018-pinctrl"; 372 reg = <0x0 0x01000000 0x0 0x300000>; 373 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 374 gpio-controller; 375 #gpio-cells = <2>; 376 gpio-ranges = <&tlmm 0 0 80>; 377 interrupt-controller; 378 #interrupt-cells = <2>; 379 380 serial_3_pins: serial3-state { 381 pins = "gpio44", "gpio45"; 382 function = "blsp2_uart"; 383 drive-strength = <8>; 384 bias-pull-down; 385 }; 386 387 qpic_pins: qpic-state { 388 pins = "gpio1", "gpio3", "gpio4", 389 "gpio5", "gpio6", "gpio7", 390 "gpio8", "gpio10", "gpio11", 391 "gpio12", "gpio13", "gpio14", 392 "gpio15", "gpio17"; 393 function = "qpic_pad"; 394 drive-strength = <8>; 395 bias-disable; 396 }; 397 }; 398 399 gcc: gcc@1800000 { 400 compatible = "qcom,gcc-ipq6018"; 401 reg = <0x0 0x01800000 0x0 0x80000>; 402 clocks = <&xo>, <&sleep_clk>; 403 clock-names = "xo", "sleep_clk"; 404 #clock-cells = <1>; 405 #reset-cells = <1>; 406 }; 407 408 tcsr_mutex: hwlock@1905000 { 409 compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex"; 410 reg = <0x0 0x01905000 0x0 0x20000>; 411 #hwlock-cells = <1>; 412 }; 413 414 tcsr: syscon@1937000 { 415 compatible = "qcom,tcsr-ipq6018", "syscon"; 416 reg = <0x0 0x01937000 0x0 0x21000>; 417 }; 418 419 usb2: usb@70f8800 { 420 compatible = "qcom,ipq6018-dwc3", "qcom,dwc3"; 421 reg = <0x0 0x070f8800 0x0 0x400>; 422 #address-cells = <2>; 423 #size-cells = <2>; 424 ranges; 425 clocks = <&gcc GCC_USB1_MASTER_CLK>, 426 <&gcc GCC_USB1_SLEEP_CLK>, 427 <&gcc GCC_USB1_MOCK_UTMI_CLK>; 428 clock-names = "core", 429 "sleep", 430 "mock_utmi"; 431 432 assigned-clocks = <&gcc GCC_USB1_MASTER_CLK>, 433 <&gcc GCC_USB1_MOCK_UTMI_CLK>; 434 assigned-clock-rates = <133330000>, 435 <24000000>; 436 437 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, 438 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; 439 interrupt-names = "pwr_event", 440 "qusb2_phy"; 441 442 resets = <&gcc GCC_USB1_BCR>; 443 status = "disabled"; 444 445 dwc_1: usb@7000000 { 446 compatible = "snps,dwc3"; 447 reg = <0x0 0x07000000 0x0 0xcd00>; 448 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 449 phys = <&qusb_phy_1>; 450 phy-names = "usb2-phy"; 451 tx-fifo-resize; 452 snps,is-utmi-l1-suspend; 453 snps,hird-threshold = /bits/ 8 <0x0>; 454 snps,dis_u2_susphy_quirk; 455 snps,dis_u3_susphy_quirk; 456 dr_mode = "host"; 457 }; 458 }; 459 460 blsp_dma: dma-controller@7884000 { 461 compatible = "qcom,bam-v1.7.0"; 462 reg = <0x0 0x07884000 0x0 0x2b000>; 463 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 464 clocks = <&gcc GCC_BLSP1_AHB_CLK>; 465 clock-names = "bam_clk"; 466 #dma-cells = <1>; 467 qcom,ee = <0>; 468 }; 469 470 blsp1_uart1: serial@78af000 { 471 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 472 reg = <0x0 0x78af000 0x0 0x200>; 473 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 474 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, 475 <&gcc GCC_BLSP1_AHB_CLK>; 476 clock-names = "core", "iface"; 477 status = "disabled"; 478 }; 479 480 blsp1_uart2: serial@78b0000 { 481 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 482 reg = <0x0 0x78b0000 0x0 0x200>; 483 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 484 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, 485 <&gcc GCC_BLSP1_AHB_CLK>; 486 clock-names = "core", "iface"; 487 status = "disabled"; 488 }; 489 490 blsp1_uart3: serial@78b1000 { 491 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 492 reg = <0x0 0x078b1000 0x0 0x200>; 493 interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>; 494 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, 495 <&gcc GCC_BLSP1_AHB_CLK>; 496 clock-names = "core", "iface"; 497 status = "disabled"; 498 }; 499 500 blsp1_uart4: serial@78b2000 { 501 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 502 reg = <0x0 0x078b2000 0x0 0x200>; 503 interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>; 504 clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>, 505 <&gcc GCC_BLSP1_AHB_CLK>; 506 clock-names = "core", "iface"; 507 status = "disabled"; 508 }; 509 510 blsp1_uart5: serial@78b3000 { 511 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 512 reg = <0x0 0x78b3000 0x0 0x200>; 513 interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>; 514 clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>, 515 <&gcc GCC_BLSP1_AHB_CLK>; 516 clock-names = "core", "iface"; 517 status = "disabled"; 518 }; 519 520 blsp1_uart6: serial@78b4000 { 521 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 522 reg = <0x0 0x078b4000 0x0 0x200>; 523 interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>; 524 clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>, 525 <&gcc GCC_BLSP1_AHB_CLK>; 526 clock-names = "core", "iface"; 527 status = "disabled"; 528 }; 529 530 blsp1_spi1: spi@78b5000 { 531 compatible = "qcom,spi-qup-v2.2.1"; 532 #address-cells = <1>; 533 #size-cells = <0>; 534 reg = <0x0 0x078b5000 0x0 0x600>; 535 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 536 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, 537 <&gcc GCC_BLSP1_AHB_CLK>; 538 clock-names = "core", "iface"; 539 dmas = <&blsp_dma 12>, <&blsp_dma 13>; 540 dma-names = "tx", "rx"; 541 status = "disabled"; 542 }; 543 544 blsp1_spi2: spi@78b6000 { 545 compatible = "qcom,spi-qup-v2.2.1"; 546 #address-cells = <1>; 547 #size-cells = <0>; 548 reg = <0x0 0x078b6000 0x0 0x600>; 549 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 550 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>, 551 <&gcc GCC_BLSP1_AHB_CLK>; 552 clock-names = "core", "iface"; 553 dmas = <&blsp_dma 14>, <&blsp_dma 15>; 554 dma-names = "tx", "rx"; 555 status = "disabled"; 556 }; 557 558 blsp1_spi5: spi@78b9000 { 559 compatible = "qcom,spi-qup-v2.2.1"; 560 #address-cells = <1>; 561 #size-cells = <0>; 562 reg = <0x0 0x078b9000 0x0 0x600>; 563 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>; 564 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>, 565 <&gcc GCC_BLSP1_AHB_CLK>; 566 clock-names = "core", "iface"; 567 dmas = <&blsp_dma 20>, <&blsp_dma 21>; 568 dma-names = "tx", "rx"; 569 status = "disabled"; 570 }; 571 572 blsp1_i2c2: i2c@78b6000 { 573 compatible = "qcom,i2c-qup-v2.2.1"; 574 #address-cells = <1>; 575 #size-cells = <0>; 576 reg = <0x0 0x078b6000 0x0 0x600>; 577 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 578 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, 579 <&gcc GCC_BLSP1_AHB_CLK>; 580 clock-names = "core", "iface"; 581 clock-frequency = <400000>; 582 dmas = <&blsp_dma 14>, <&blsp_dma 15>; 583 dma-names = "tx", "rx"; 584 status = "disabled"; 585 }; 586 587 blsp1_i2c3: i2c@78b7000 { 588 compatible = "qcom,i2c-qup-v2.2.1"; 589 #address-cells = <1>; 590 #size-cells = <0>; 591 reg = <0x0 0x078b7000 0x0 0x600>; 592 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 593 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, 594 <&gcc GCC_BLSP1_AHB_CLK>; 595 clock-names = "core", "iface"; 596 clock-frequency = <400000>; 597 dmas = <&blsp_dma 16>, <&blsp_dma 17>; 598 dma-names = "tx", "rx"; 599 status = "disabled"; 600 }; 601 602 blsp1_i2c6: i2c@78ba000 { 603 compatible = "qcom,i2c-qup-v2.2.1"; 604 #address-cells = <1>; 605 #size-cells = <0>; 606 reg = <0x0 0x078ba000 0x0 0x600>; 607 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>; 608 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, 609 <&gcc GCC_BLSP1_AHB_CLK>; 610 clock-names = "core", "iface"; 611 clock-frequency = <400000>; 612 dmas = <&blsp_dma 22>, <&blsp_dma 23>; 613 dma-names = "tx", "rx"; 614 status = "disabled"; 615 }; 616 617 qpic_bam: dma-controller@7984000 { 618 compatible = "qcom,bam-v1.7.0"; 619 reg = <0x0 0x07984000 0x0 0x1a000>; 620 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; 621 clocks = <&gcc GCC_QPIC_AHB_CLK>; 622 clock-names = "bam_clk"; 623 #dma-cells = <1>; 624 qcom,ee = <0>; 625 status = "disabled"; 626 }; 627 628 qpic_nand: nand-controller@79b0000 { 629 compatible = "qcom,ipq6018-nand"; 630 reg = <0x0 0x079b0000 0x0 0x10000>; 631 #address-cells = <1>; 632 #size-cells = <0>; 633 clocks = <&gcc GCC_QPIC_CLK>, 634 <&gcc GCC_QPIC_AHB_CLK>; 635 clock-names = "core", "aon"; 636 637 dmas = <&qpic_bam 0>, 638 <&qpic_bam 1>, 639 <&qpic_bam 2>; 640 dma-names = "tx", "rx", "cmd"; 641 pinctrl-0 = <&qpic_pins>; 642 pinctrl-names = "default"; 643 status = "disabled"; 644 }; 645 646 usb3: usb@8af8800 { 647 compatible = "qcom,ipq6018-dwc3", "qcom,dwc3"; 648 reg = <0x0 0x08af8800 0x0 0x400>; 649 #address-cells = <2>; 650 #size-cells = <2>; 651 ranges; 652 653 clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>, 654 <&gcc GCC_USB0_MASTER_CLK>, 655 <&gcc GCC_USB0_SLEEP_CLK>, 656 <&gcc GCC_USB0_MOCK_UTMI_CLK>; 657 clock-names = "cfg_noc", 658 "core", 659 "sleep", 660 "mock_utmi"; 661 662 assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>, 663 <&gcc GCC_USB0_MASTER_CLK>, 664 <&gcc GCC_USB0_MOCK_UTMI_CLK>; 665 assigned-clock-rates = <133330000>, 666 <133330000>, 667 <24000000>; 668 669 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 670 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, 671 <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>; 672 interrupt-names = "pwr_event", 673 "qusb2_phy", 674 "ss_phy_irq"; 675 676 resets = <&gcc GCC_USB0_BCR>; 677 status = "disabled"; 678 679 dwc_0: usb@8a00000 { 680 compatible = "snps,dwc3"; 681 reg = <0x0 0x08a00000 0x0 0xcd00>; 682 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 683 phys = <&qusb_phy_0>, <&ssphy_0>; 684 phy-names = "usb2-phy", "usb3-phy"; 685 clocks = <&xo>; 686 clock-names = "ref"; 687 tx-fifo-resize; 688 snps,is-utmi-l1-suspend; 689 snps,hird-threshold = /bits/ 8 <0x0>; 690 snps,dis_u2_susphy_quirk; 691 snps,dis_u3_susphy_quirk; 692 dr_mode = "host"; 693 }; 694 }; 695 696 intc: interrupt-controller@b000000 { 697 compatible = "qcom,msm-qgic2"; 698 #address-cells = <2>; 699 #size-cells = <2>; 700 interrupt-controller; 701 #interrupt-cells = <3>; 702 reg = <0x0 0x0b000000 0x0 0x1000>, /*GICD*/ 703 <0x0 0x0b002000 0x0 0x1000>, /*GICC*/ 704 <0x0 0x0b001000 0x0 0x1000>, /*GICH*/ 705 <0x0 0x0b004000 0x0 0x1000>; /*GICV*/ 706 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 707 ranges = <0 0 0 0xb00a000 0 0xffd>; 708 709 v2m@0 { 710 compatible = "arm,gic-v2m-frame"; 711 msi-controller; 712 reg = <0x0 0x0 0x0 0xffd>; 713 }; 714 }; 715 716 watchdog@b017000 { 717 compatible = "qcom,kpss-wdt"; 718 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>; 719 reg = <0x0 0x0b017000 0x0 0x40>; 720 clocks = <&sleep_clk>; 721 timeout-sec = <10>; 722 }; 723 724 apcs_glb: mailbox@b111000 { 725 compatible = "qcom,ipq6018-apcs-apps-global"; 726 reg = <0x0 0x0b111000 0x0 0x1000>; 727 #clock-cells = <1>; 728 clocks = <&a53pll>, <&xo>, <&gcc GPLL0>; 729 clock-names = "pll", "xo", "gpll0"; 730 #mbox-cells = <1>; 731 }; 732 733 a53pll: clock@b116000 { 734 compatible = "qcom,ipq6018-a53pll"; 735 reg = <0x0 0x0b116000 0x0 0x40>; 736 #clock-cells = <0>; 737 clocks = <&xo>; 738 clock-names = "xo"; 739 }; 740 741 timer@b120000 { 742 #address-cells = <1>; 743 #size-cells = <1>; 744 ranges = <0 0 0 0x10000000>; 745 compatible = "arm,armv7-timer-mem"; 746 reg = <0x0 0x0b120000 0x0 0x1000>; 747 748 frame@b120000 { 749 frame-number = <0>; 750 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 751 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 752 reg = <0x0b121000 0x1000>, 753 <0x0b122000 0x1000>; 754 }; 755 756 frame@b123000 { 757 frame-number = <1>; 758 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 759 reg = <0x0b123000 0x1000>; 760 status = "disabled"; 761 }; 762 763 frame@b124000 { 764 frame-number = <2>; 765 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 766 reg = <0x0b124000 0x1000>; 767 status = "disabled"; 768 }; 769 770 frame@b125000 { 771 frame-number = <3>; 772 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 773 reg = <0x0b125000 0x1000>; 774 status = "disabled"; 775 }; 776 777 frame@b126000 { 778 frame-number = <4>; 779 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 780 reg = <0x0b126000 0x1000>; 781 status = "disabled"; 782 }; 783 784 frame@b127000 { 785 frame-number = <5>; 786 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 787 reg = <0x0b127000 0x1000>; 788 status = "disabled"; 789 }; 790 791 frame@b128000 { 792 frame-number = <6>; 793 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 794 reg = <0x0b128000 0x1000>; 795 status = "disabled"; 796 }; 797 }; 798 799 q6v5_wcss: remoteproc@cd00000 { 800 compatible = "qcom,ipq6018-wcss-pil"; 801 reg = <0x0 0x0cd00000 0x0 0x4040>, 802 <0x0 0x004ab000 0x0 0x20>; 803 reg-names = "qdsp6", 804 "rmb"; 805 interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>, 806 <&wcss_smp2p_in 0 0>, 807 <&wcss_smp2p_in 1 0>, 808 <&wcss_smp2p_in 2 0>, 809 <&wcss_smp2p_in 3 0>; 810 interrupt-names = "wdog", 811 "fatal", 812 "ready", 813 "handover", 814 "stop-ack"; 815 816 resets = <&gcc GCC_WCSSAON_RESET>, 817 <&gcc GCC_WCSS_BCR>, 818 <&gcc GCC_WCSS_Q6_BCR>; 819 820 reset-names = "wcss_aon_reset", 821 "wcss_reset", 822 "wcss_q6_reset"; 823 824 clocks = <&gcc GCC_PRNG_AHB_CLK>; 825 clock-names = "prng"; 826 827 qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>; 828 829 qcom,smem-states = <&wcss_smp2p_out 0>, 830 <&wcss_smp2p_out 1>; 831 qcom,smem-state-names = "shutdown", 832 "stop"; 833 834 memory-region = <&q6_region>; 835 836 glink-edge { 837 interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>; 838 label = "rtr"; 839 qcom,remote-pid = <1>; 840 mboxes = <&apcs_glb 8>; 841 842 qrtr_requests { 843 qcom,glink-channels = "IPCRTR"; 844 }; 845 }; 846 }; 847 848 pcie0: pcie@20000000 { 849 compatible = "qcom,pcie-ipq6018"; 850 reg = <0x0 0x20000000 0x0 0xf1d>, 851 <0x0 0x20000f20 0x0 0xa8>, 852 <0x0 0x20001000 0x0 0x1000>, 853 <0x0 0x80000 0x0 0x4000>, 854 <0x0 0x20100000 0x0 0x1000>; 855 reg-names = "dbi", "elbi", "atu", "parf", "config"; 856 857 device_type = "pci"; 858 linux,pci-domain = <0>; 859 bus-range = <0x00 0xff>; 860 num-lanes = <1>; 861 max-link-speed = <3>; 862 #address-cells = <3>; 863 #size-cells = <2>; 864 865 phys = <&pcie_phy>; 866 phy-names = "pciephy"; 867 868 ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>, 869 <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>; 870 871 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 872 interrupt-names = "msi"; 873 874 #interrupt-cells = <1>; 875 interrupt-map-mask = <0 0 0 0x7>; 876 interrupt-map = <0 0 0 1 &intc 0 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 877 <0 0 0 2 &intc 0 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 878 <0 0 0 3 &intc 0 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 879 <0 0 0 4 &intc 0 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 880 881 clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, 882 <&gcc GCC_PCIE0_AXI_M_CLK>, 883 <&gcc GCC_PCIE0_AXI_S_CLK>, 884 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>, 885 <&gcc PCIE0_RCHNG_CLK>; 886 clock-names = "iface", 887 "axi_m", 888 "axi_s", 889 "axi_bridge", 890 "rchng"; 891 892 resets = <&gcc GCC_PCIE0_PIPE_ARES>, 893 <&gcc GCC_PCIE0_SLEEP_ARES>, 894 <&gcc GCC_PCIE0_CORE_STICKY_ARES>, 895 <&gcc GCC_PCIE0_AXI_MASTER_ARES>, 896 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>, 897 <&gcc GCC_PCIE0_AHB_ARES>, 898 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>, 899 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>; 900 reset-names = "pipe", 901 "sleep", 902 "sticky", 903 "axi_m", 904 "axi_s", 905 "ahb", 906 "axi_m_sticky", 907 "axi_s_sticky"; 908 909 status = "disabled"; 910 }; 911 }; 912 913 thermal-zones { 914 nss-top-thermal { 915 polling-delay-passive = <250>; 916 polling-delay = <1000>; 917 thermal-sensors = <&tsens 4>; 918 919 trips { 920 nss-top-critical { 921 temperature = <125000>; 922 hysteresis = <1000>; 923 type = "critical"; 924 }; 925 }; 926 }; 927 928 nss-thermal { 929 polling-delay-passive = <250>; 930 polling-delay = <1000>; 931 thermal-sensors = <&tsens 5>; 932 933 trips { 934 nss-critical { 935 temperature = <125000>; 936 hysteresis = <1000>; 937 type = "critical"; 938 }; 939 }; 940 }; 941 942 wcss-phya0-thermal { 943 polling-delay-passive = <250>; 944 polling-delay = <1000>; 945 thermal-sensors = <&tsens 7>; 946 947 trips { 948 wcss-phya0-critical { 949 temperature = <125000>; 950 hysteresis = <1000>; 951 type = "critical"; 952 }; 953 }; 954 }; 955 956 wcss-phya1-thermal { 957 polling-delay-passive = <250>; 958 polling-delay = <1000>; 959 thermal-sensors = <&tsens 8>; 960 961 trips { 962 wcss-phya1-critical { 963 temperature = <125000>; 964 hysteresis = <1000>; 965 type = "critical"; 966 }; 967 }; 968 }; 969 970 cpu-thermal { 971 polling-delay-passive = <250>; 972 polling-delay = <1000>; 973 thermal-sensors = <&tsens 13>; 974 975 trips { 976 cpu-critical { 977 temperature = <125000>; 978 hysteresis = <1000>; 979 type = "critical"; 980 }; 981 982 cpu_alert: cpu-passive { 983 temperature = <110000>; 984 hysteresis = <1000>; 985 type = "passive"; 986 }; 987 }; 988 989 cooling-maps { 990 map0 { 991 trip = <&cpu_alert>; 992 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 993 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 994 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 995 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 996 }; 997 }; 998 }; 999 1000 lpass-thermal { 1001 polling-delay-passive = <250>; 1002 polling-delay = <1000>; 1003 thermal-sensors = <&tsens 14>; 1004 1005 trips { 1006 lpass-critical { 1007 temperature = <125000>; 1008 hysteresis = <1000>; 1009 type = "critical"; 1010 }; 1011 }; 1012 }; 1013 1014 ddrss-top-thermal { 1015 polling-delay-passive = <250>; 1016 polling-delay = <1000>; 1017 thermal-sensors = <&tsens 15>; 1018 1019 trips { 1020 ddrss-top-critical { 1021 temperature = <125000>; 1022 hysteresis = <1000>; 1023 type = "critical"; 1024 }; 1025 }; 1026 }; 1027 }; 1028 1029 timer { 1030 compatible = "arm,armv8-timer"; 1031 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1032 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1033 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 1034 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 1035 }; 1036 1037 wcss: wcss-smp2p { 1038 compatible = "qcom,smp2p"; 1039 qcom,smem = <435>, <428>; 1040 1041 interrupt-parent = <&intc>; 1042 interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>; 1043 1044 mboxes = <&apcs_glb 9>; 1045 1046 qcom,local-pid = <0>; 1047 qcom,remote-pid = <1>; 1048 1049 wcss_smp2p_out: master-kernel { 1050 qcom,entry-name = "master-kernel"; 1051 #qcom,smem-state-cells = <1>; 1052 }; 1053 1054 wcss_smp2p_in: slave-kernel { 1055 qcom,entry-name = "slave-kernel"; 1056 interrupt-controller; 1057 #interrupt-cells = <2>; 1058 }; 1059 }; 1060}; 1061