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