1/* 2 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 and 6 * only version 2 as published by the Free Software Foundation. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 */ 13 14#include <dt-bindings/interrupt-controller/arm-gic.h> 15#include <dt-bindings/clock/qcom,gcc-msm8916.h> 16#include <dt-bindings/reset/qcom,gcc-msm8916.h> 17#include <dt-bindings/clock/qcom,rpmcc.h> 18#include <dt-bindings/thermal/thermal.h> 19 20/ { 21 model = "Qualcomm Technologies, Inc. MSM8916"; 22 compatible = "qcom,msm8916"; 23 24 interrupt-parent = <&intc>; 25 26 #address-cells = <2>; 27 #size-cells = <2>; 28 29 aliases { 30 sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ 31 sdhc2 = &sdhc_2; /* SDC2 SD card slot */ 32 }; 33 34 chosen { }; 35 36 memory { 37 device_type = "memory"; 38 /* We expect the bootloader to fill in the reg */ 39 reg = <0 0 0 0>; 40 }; 41 42 reserved-memory { 43 #address-cells = <2>; 44 #size-cells = <2>; 45 ranges; 46 47 tz-apps@86000000 { 48 reg = <0x0 0x86000000 0x0 0x300000>; 49 no-map; 50 }; 51 52 smem_mem: smem_region@86300000 { 53 reg = <0x0 0x86300000 0x0 0x100000>; 54 no-map; 55 }; 56 57 hypervisor@86400000 { 58 reg = <0x0 0x86400000 0x0 0x100000>; 59 no-map; 60 }; 61 62 tz@86500000 { 63 reg = <0x0 0x86500000 0x0 0x180000>; 64 no-map; 65 }; 66 67 reserved@8668000 { 68 reg = <0x0 0x86680000 0x0 0x80000>; 69 no-map; 70 }; 71 72 rmtfs@86700000 { 73 compatible = "qcom,rmtfs-mem"; 74 reg = <0x0 0x86700000 0x0 0xe0000>; 75 no-map; 76 77 qcom,client-id = <1>; 78 }; 79 80 rfsa@867e00000 { 81 reg = <0x0 0x867e0000 0x0 0x20000>; 82 no-map; 83 }; 84 85 mpss_mem: mpss@86800000 { 86 reg = <0x0 0x86800000 0x0 0x2b00000>; 87 no-map; 88 }; 89 90 wcnss_mem: wcnss@89300000 { 91 reg = <0x0 0x89300000 0x0 0x600000>; 92 no-map; 93 }; 94 95 venus_mem: venus@89900000 { 96 reg = <0x0 0x89900000 0x0 0x600000>; 97 no-map; 98 }; 99 100 mba_mem: mba@8ea00000 { 101 no-map; 102 reg = <0 0x8ea00000 0 0x100000>; 103 }; 104 }; 105 106 cpus { 107 #address-cells = <1>; 108 #size-cells = <0>; 109 110 CPU0: cpu@0 { 111 device_type = "cpu"; 112 compatible = "arm,cortex-a53", "arm,armv8"; 113 reg = <0x0>; 114 next-level-cache = <&L2_0>; 115 enable-method = "psci"; 116 cpu-idle-states = <&CPU_SPC>; 117 clocks = <&apcs 0>; 118 operating-points-v2 = <&cpu_opp_table>; 119 #cooling-cells = <2>; 120 }; 121 122 CPU1: cpu@1 { 123 device_type = "cpu"; 124 compatible = "arm,cortex-a53", "arm,armv8"; 125 reg = <0x1>; 126 next-level-cache = <&L2_0>; 127 enable-method = "psci"; 128 cpu-idle-states = <&CPU_SPC>; 129 clocks = <&apcs 0>; 130 operating-points-v2 = <&cpu_opp_table>; 131 #cooling-cells = <2>; 132 }; 133 134 CPU2: cpu@2 { 135 device_type = "cpu"; 136 compatible = "arm,cortex-a53", "arm,armv8"; 137 reg = <0x2>; 138 next-level-cache = <&L2_0>; 139 enable-method = "psci"; 140 cpu-idle-states = <&CPU_SPC>; 141 clocks = <&apcs 0>; 142 operating-points-v2 = <&cpu_opp_table>; 143 #cooling-cells = <2>; 144 }; 145 146 CPU3: cpu@3 { 147 device_type = "cpu"; 148 compatible = "arm,cortex-a53", "arm,armv8"; 149 reg = <0x3>; 150 next-level-cache = <&L2_0>; 151 enable-method = "psci"; 152 cpu-idle-states = <&CPU_SPC>; 153 clocks = <&apcs 0>; 154 operating-points-v2 = <&cpu_opp_table>; 155 #cooling-cells = <2>; 156 }; 157 158 L2_0: l2-cache { 159 compatible = "cache"; 160 cache-level = <2>; 161 }; 162 163 idle-states { 164 CPU_SPC: spc { 165 compatible = "arm,idle-state"; 166 arm,psci-suspend-param = <0x40000002>; 167 entry-latency-us = <130>; 168 exit-latency-us = <150>; 169 min-residency-us = <2000>; 170 local-timer-stop; 171 }; 172 }; 173 }; 174 175 psci { 176 compatible = "arm,psci-1.0"; 177 method = "smc"; 178 }; 179 180 pmu { 181 compatible = "arm,cortex-a53-pmu"; 182 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>; 183 }; 184 185 thermal-zones { 186 cpu-thermal0 { 187 polling-delay-passive = <250>; 188 polling-delay = <1000>; 189 190 thermal-sensors = <&tsens 4>; 191 192 trips { 193 cpu_alert0: trip0 { 194 temperature = <75000>; 195 hysteresis = <2000>; 196 type = "passive"; 197 }; 198 cpu_crit0: trip1 { 199 temperature = <110000>; 200 hysteresis = <2000>; 201 type = "critical"; 202 }; 203 }; 204 205 cooling-maps { 206 map0 { 207 trip = <&cpu_alert0>; 208 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 209 }; 210 }; 211 }; 212 213 cpu-thermal1 { 214 polling-delay-passive = <250>; 215 polling-delay = <1000>; 216 217 thermal-sensors = <&tsens 3>; 218 219 trips { 220 cpu_alert1: trip0 { 221 temperature = <75000>; 222 hysteresis = <2000>; 223 type = "passive"; 224 }; 225 cpu_crit1: trip1 { 226 temperature = <110000>; 227 hysteresis = <2000>; 228 type = "critical"; 229 }; 230 }; 231 232 cooling-maps { 233 map0 { 234 trip = <&cpu_alert1>; 235 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 236 }; 237 }; 238 }; 239 240 }; 241 242 cpu_opp_table: cpu_opp_table { 243 compatible = "operating-points-v2"; 244 opp-shared; 245 246 opp-200000000 { 247 opp-hz = /bits/ 64 <200000000>; 248 }; 249 opp-400000000 { 250 opp-hz = /bits/ 64 <400000000>; 251 }; 252 opp-800000000 { 253 opp-hz = /bits/ 64 <800000000>; 254 }; 255 opp-998400000 { 256 opp-hz = /bits/ 64 <998400000>; 257 }; 258 }; 259 260 gpu_opp_table: opp_table { 261 compatible = "operating-points-v2"; 262 263 opp-400000000 { 264 opp-hz = /bits/ 64 <400000000>; 265 }; 266 opp-19200000 { 267 opp-hz = /bits/ 64 <19200000>; 268 }; 269 }; 270 271 timer { 272 compatible = "arm,armv8-timer"; 273 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 274 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 275 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 276 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 277 }; 278 279 clocks { 280 xo_board: xo_board { 281 compatible = "fixed-clock"; 282 #clock-cells = <0>; 283 clock-frequency = <19200000>; 284 }; 285 286 sleep_clk: sleep_clk { 287 compatible = "fixed-clock"; 288 #clock-cells = <0>; 289 clock-frequency = <32768>; 290 }; 291 }; 292 293 smem { 294 compatible = "qcom,smem"; 295 296 memory-region = <&smem_mem>; 297 qcom,rpm-msg-ram = <&rpm_msg_ram>; 298 299 hwlocks = <&tcsr_mutex 3>; 300 }; 301 302 firmware { 303 scm: scm { 304 compatible = "qcom,scm"; 305 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>; 306 clock-names = "core", "bus", "iface"; 307 #reset-cells = <1>; 308 309 qcom,dload-mode = <&tcsr 0x6100>; 310 }; 311 }; 312 313 soc: soc { 314 #address-cells = <1>; 315 #size-cells = <1>; 316 ranges = <0 0 0 0xffffffff>; 317 compatible = "simple-bus"; 318 319 restart@4ab000 { 320 compatible = "qcom,pshold"; 321 reg = <0x4ab000 0x4>; 322 }; 323 324 msmgpio: pinctrl@1000000 { 325 compatible = "qcom,msm8916-pinctrl"; 326 reg = <0x1000000 0x300000>; 327 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 328 gpio-controller; 329 #gpio-cells = <2>; 330 interrupt-controller; 331 #interrupt-cells = <2>; 332 }; 333 334 gcc: clock-controller@1800000 { 335 compatible = "qcom,gcc-msm8916"; 336 #clock-cells = <1>; 337 #reset-cells = <1>; 338 #power-domain-cells = <1>; 339 reg = <0x1800000 0x80000>; 340 }; 341 342 tcsr_mutex_regs: syscon@1905000 { 343 compatible = "syscon"; 344 reg = <0x1905000 0x20000>; 345 }; 346 347 tcsr: syscon@1937000 { 348 compatible = "qcom,tcsr-msm8916", "syscon"; 349 reg = <0x1937000 0x30000>; 350 }; 351 352 tcsr_mutex: hwlock { 353 compatible = "qcom,tcsr-mutex"; 354 syscon = <&tcsr_mutex_regs 0 0x1000>; 355 #hwlock-cells = <1>; 356 }; 357 358 rpm_msg_ram: memory@60000 { 359 compatible = "qcom,rpm-msg-ram"; 360 reg = <0x60000 0x8000>; 361 }; 362 363 blsp1_uart1: serial@78af000 { 364 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 365 reg = <0x78af000 0x200>; 366 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 367 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 368 clock-names = "core", "iface"; 369 dmas = <&blsp_dma 1>, <&blsp_dma 0>; 370 dma-names = "rx", "tx"; 371 status = "disabled"; 372 }; 373 374 a53pll: clock@b016000 { 375 compatible = "qcom,msm8916-a53pll"; 376 reg = <0xb016000 0x40>; 377 #clock-cells = <0>; 378 }; 379 380 apcs: mailbox@b011000 { 381 compatible = "qcom,msm8916-apcs-kpss-global", "syscon"; 382 reg = <0xb011000 0x1000>; 383 #mbox-cells = <1>; 384 clocks = <&a53pll>; 385 #clock-cells = <0>; 386 }; 387 388 blsp1_uart2: serial@78b0000 { 389 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 390 reg = <0x78b0000 0x200>; 391 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 392 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 393 clock-names = "core", "iface"; 394 dmas = <&blsp_dma 3>, <&blsp_dma 2>; 395 dma-names = "rx", "tx"; 396 status = "disabled"; 397 }; 398 399 blsp_dma: dma@7884000 { 400 compatible = "qcom,bam-v1.7.0"; 401 reg = <0x07884000 0x23000>; 402 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 403 clocks = <&gcc GCC_BLSP1_AHB_CLK>; 404 clock-names = "bam_clk"; 405 #dma-cells = <1>; 406 qcom,ee = <0>; 407 status = "disabled"; 408 }; 409 410 blsp_spi1: spi@78b5000 { 411 compatible = "qcom,spi-qup-v2.2.1"; 412 reg = <0x078b5000 0x500>; 413 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 414 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, 415 <&gcc GCC_BLSP1_AHB_CLK>; 416 clock-names = "core", "iface"; 417 dmas = <&blsp_dma 5>, <&blsp_dma 4>; 418 dma-names = "rx", "tx"; 419 pinctrl-names = "default", "sleep"; 420 pinctrl-0 = <&spi1_default>; 421 pinctrl-1 = <&spi1_sleep>; 422 #address-cells = <1>; 423 #size-cells = <0>; 424 status = "disabled"; 425 }; 426 427 blsp_spi2: spi@78b6000 { 428 compatible = "qcom,spi-qup-v2.2.1"; 429 reg = <0x078b6000 0x500>; 430 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 431 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>, 432 <&gcc GCC_BLSP1_AHB_CLK>; 433 clock-names = "core", "iface"; 434 dmas = <&blsp_dma 7>, <&blsp_dma 6>; 435 dma-names = "rx", "tx"; 436 pinctrl-names = "default", "sleep"; 437 pinctrl-0 = <&spi2_default>; 438 pinctrl-1 = <&spi2_sleep>; 439 #address-cells = <1>; 440 #size-cells = <0>; 441 status = "disabled"; 442 }; 443 444 blsp_spi3: spi@78b7000 { 445 compatible = "qcom,spi-qup-v2.2.1"; 446 reg = <0x078b7000 0x500>; 447 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 448 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>, 449 <&gcc GCC_BLSP1_AHB_CLK>; 450 clock-names = "core", "iface"; 451 dmas = <&blsp_dma 9>, <&blsp_dma 8>; 452 dma-names = "rx", "tx"; 453 pinctrl-names = "default", "sleep"; 454 pinctrl-0 = <&spi3_default>; 455 pinctrl-1 = <&spi3_sleep>; 456 #address-cells = <1>; 457 #size-cells = <0>; 458 status = "disabled"; 459 }; 460 461 blsp_spi4: spi@78b8000 { 462 compatible = "qcom,spi-qup-v2.2.1"; 463 reg = <0x078b8000 0x500>; 464 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 465 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>, 466 <&gcc GCC_BLSP1_AHB_CLK>; 467 clock-names = "core", "iface"; 468 dmas = <&blsp_dma 11>, <&blsp_dma 10>; 469 dma-names = "rx", "tx"; 470 pinctrl-names = "default", "sleep"; 471 pinctrl-0 = <&spi4_default>; 472 pinctrl-1 = <&spi4_sleep>; 473 #address-cells = <1>; 474 #size-cells = <0>; 475 status = "disabled"; 476 }; 477 478 blsp_spi5: spi@78b9000 { 479 compatible = "qcom,spi-qup-v2.2.1"; 480 reg = <0x078b9000 0x500>; 481 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 482 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>, 483 <&gcc GCC_BLSP1_AHB_CLK>; 484 clock-names = "core", "iface"; 485 dmas = <&blsp_dma 13>, <&blsp_dma 12>; 486 dma-names = "rx", "tx"; 487 pinctrl-names = "default", "sleep"; 488 pinctrl-0 = <&spi5_default>; 489 pinctrl-1 = <&spi5_sleep>; 490 #address-cells = <1>; 491 #size-cells = <0>; 492 status = "disabled"; 493 }; 494 495 blsp_spi6: spi@78ba000 { 496 compatible = "qcom,spi-qup-v2.2.1"; 497 reg = <0x078ba000 0x500>; 498 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 499 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>, 500 <&gcc GCC_BLSP1_AHB_CLK>; 501 clock-names = "core", "iface"; 502 dmas = <&blsp_dma 15>, <&blsp_dma 14>; 503 dma-names = "rx", "tx"; 504 pinctrl-names = "default", "sleep"; 505 pinctrl-0 = <&spi6_default>; 506 pinctrl-1 = <&spi6_sleep>; 507 #address-cells = <1>; 508 #size-cells = <0>; 509 status = "disabled"; 510 }; 511 512 blsp_i2c2: i2c@78b6000 { 513 compatible = "qcom,i2c-qup-v2.2.1"; 514 reg = <0x078b6000 0x500>; 515 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 516 clocks = <&gcc GCC_BLSP1_AHB_CLK>, 517 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; 518 clock-names = "iface", "core"; 519 pinctrl-names = "default", "sleep"; 520 pinctrl-0 = <&i2c2_default>; 521 pinctrl-1 = <&i2c2_sleep>; 522 #address-cells = <1>; 523 #size-cells = <0>; 524 status = "disabled"; 525 }; 526 527 blsp_i2c4: i2c@78b8000 { 528 compatible = "qcom,i2c-qup-v2.2.1"; 529 reg = <0x078b8000 0x500>; 530 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 531 clocks = <&gcc GCC_BLSP1_AHB_CLK>, 532 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; 533 clock-names = "iface", "core"; 534 pinctrl-names = "default", "sleep"; 535 pinctrl-0 = <&i2c4_default>; 536 pinctrl-1 = <&i2c4_sleep>; 537 #address-cells = <1>; 538 #size-cells = <0>; 539 status = "disabled"; 540 }; 541 542 blsp_i2c6: i2c@78ba000 { 543 compatible = "qcom,i2c-qup-v2.2.1"; 544 reg = <0x078ba000 0x500>; 545 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 546 clocks = <&gcc GCC_BLSP1_AHB_CLK>, 547 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; 548 clock-names = "iface", "core"; 549 pinctrl-names = "default", "sleep"; 550 pinctrl-0 = <&i2c6_default>; 551 pinctrl-1 = <&i2c6_sleep>; 552 #address-cells = <1>; 553 #size-cells = <0>; 554 status = "disabled"; 555 }; 556 557 lpass: lpass@7708000 { 558 status = "disabled"; 559 compatible = "qcom,lpass-cpu-apq8016"; 560 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, 561 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>, 562 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>, 563 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>, 564 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>, 565 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>, 566 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>; 567 568 clock-names = "ahbix-clk", 569 "pcnoc-mport-clk", 570 "pcnoc-sway-clk", 571 "mi2s-bit-clk0", 572 "mi2s-bit-clk1", 573 "mi2s-bit-clk2", 574 "mi2s-bit-clk3"; 575 #sound-dai-cells = <1>; 576 577 interrupts = <0 160 IRQ_TYPE_LEVEL_HIGH>; 578 interrupt-names = "lpass-irq-lpaif"; 579 reg = <0x07708000 0x10000>; 580 reg-names = "lpass-lpaif"; 581 }; 582 583 lpass_codec: codec{ 584 compatible = "qcom,msm8916-wcd-digital-codec"; 585 reg = <0x0771c000 0x400>; 586 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, 587 <&gcc GCC_CODEC_DIGCODEC_CLK>; 588 clock-names = "ahbix-clk", "mclk"; 589 #sound-dai-cells = <1>; 590 }; 591 592 sdhc_1: sdhci@7824000 { 593 compatible = "qcom,sdhci-msm-v4"; 594 reg = <0x07824900 0x11c>, <0x07824000 0x800>; 595 reg-names = "hc_mem", "core_mem"; 596 597 interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>, <0 138 IRQ_TYPE_LEVEL_HIGH>; 598 interrupt-names = "hc_irq", "pwr_irq"; 599 clocks = <&gcc GCC_SDCC1_APPS_CLK>, 600 <&gcc GCC_SDCC1_AHB_CLK>, 601 <&xo_board>; 602 clock-names = "core", "iface", "xo"; 603 mmc-ddr-1_8v; 604 bus-width = <8>; 605 non-removable; 606 status = "disabled"; 607 }; 608 609 sdhc_2: sdhci@7864000 { 610 compatible = "qcom,sdhci-msm-v4"; 611 reg = <0x07864900 0x11c>, <0x07864000 0x800>; 612 reg-names = "hc_mem", "core_mem"; 613 614 interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>, <0 221 IRQ_TYPE_LEVEL_HIGH>; 615 interrupt-names = "hc_irq", "pwr_irq"; 616 clocks = <&gcc GCC_SDCC2_APPS_CLK>, 617 <&gcc GCC_SDCC2_AHB_CLK>, 618 <&xo_board>; 619 clock-names = "core", "iface", "xo"; 620 bus-width = <4>; 621 status = "disabled"; 622 }; 623 624 otg: usb@78d9000 { 625 compatible = "qcom,ci-hdrc"; 626 reg = <0x78d9000 0x200>, 627 <0x78d9200 0x200>; 628 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 629 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 630 clocks = <&gcc GCC_USB_HS_AHB_CLK>, 631 <&gcc GCC_USB_HS_SYSTEM_CLK>; 632 clock-names = "iface", "core"; 633 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>; 634 assigned-clock-rates = <80000000>; 635 resets = <&gcc GCC_USB_HS_BCR>; 636 reset-names = "core"; 637 phy_type = "ulpi"; 638 dr_mode = "otg"; 639 ahb-burst-config = <0>; 640 phy-names = "usb-phy"; 641 phys = <&usb_hs_phy>; 642 status = "disabled"; 643 #reset-cells = <1>; 644 645 ulpi { 646 usb_hs_phy: phy { 647 compatible = "qcom,usb-hs-phy-msm8916", 648 "qcom,usb-hs-phy"; 649 #phy-cells = <0>; 650 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>; 651 clock-names = "ref", "sleep"; 652 resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>; 653 reset-names = "phy", "por"; 654 qcom,init-seq = /bits/ 8 <0x0 0x44 655 0x1 0x6b 0x2 0x24 0x3 0x13>; 656 }; 657 }; 658 }; 659 660 intc: interrupt-controller@b000000 { 661 compatible = "qcom,msm-qgic2"; 662 interrupt-controller; 663 #interrupt-cells = <3>; 664 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>; 665 }; 666 667 timer@b020000 { 668 #address-cells = <1>; 669 #size-cells = <1>; 670 ranges; 671 compatible = "arm,armv7-timer-mem"; 672 reg = <0xb020000 0x1000>; 673 clock-frequency = <19200000>; 674 675 frame@b021000 { 676 frame-number = <0>; 677 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 678 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 679 reg = <0xb021000 0x1000>, 680 <0xb022000 0x1000>; 681 }; 682 683 frame@b023000 { 684 frame-number = <1>; 685 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 686 reg = <0xb023000 0x1000>; 687 status = "disabled"; 688 }; 689 690 frame@b024000 { 691 frame-number = <2>; 692 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 693 reg = <0xb024000 0x1000>; 694 status = "disabled"; 695 }; 696 697 frame@b025000 { 698 frame-number = <3>; 699 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 700 reg = <0xb025000 0x1000>; 701 status = "disabled"; 702 }; 703 704 frame@b026000 { 705 frame-number = <4>; 706 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 707 reg = <0xb026000 0x1000>; 708 status = "disabled"; 709 }; 710 711 frame@b027000 { 712 frame-number = <5>; 713 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 714 reg = <0xb027000 0x1000>; 715 status = "disabled"; 716 }; 717 718 frame@b028000 { 719 frame-number = <6>; 720 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 721 reg = <0xb028000 0x1000>; 722 status = "disabled"; 723 }; 724 }; 725 726 spmi_bus: spmi@200f000 { 727 compatible = "qcom,spmi-pmic-arb"; 728 reg = <0x200f000 0x001000>, 729 <0x2400000 0x400000>, 730 <0x2c00000 0x400000>, 731 <0x3800000 0x200000>, 732 <0x200a000 0x002100>; 733 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; 734 interrupt-names = "periph_irq"; 735 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 736 qcom,ee = <0>; 737 qcom,channel = <0>; 738 #address-cells = <2>; 739 #size-cells = <0>; 740 interrupt-controller; 741 #interrupt-cells = <4>; 742 }; 743 744 rng@22000 { 745 compatible = "qcom,prng"; 746 reg = <0x00022000 0x200>; 747 clocks = <&gcc GCC_PRNG_AHB_CLK>; 748 clock-names = "core"; 749 }; 750 751 qfprom: qfprom@5c000 { 752 compatible = "qcom,qfprom"; 753 reg = <0x5c000 0x1000>; 754 #address-cells = <1>; 755 #size-cells = <1>; 756 tsens_caldata: caldata@d0 { 757 reg = <0xd0 0x8>; 758 }; 759 tsens_calsel: calsel@ec { 760 reg = <0xec 0x4>; 761 }; 762 }; 763 764 tsens: thermal-sensor@4a8000 { 765 compatible = "qcom,msm8916-tsens"; 766 reg = <0x4a8000 0x2000>; 767 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>; 768 nvmem-cell-names = "calib", "calib_sel"; 769 #thermal-sensor-cells = <1>; 770 }; 771 772 apps_iommu: iommu@1ef0000 { 773 #address-cells = <1>; 774 #size-cells = <1>; 775 #iommu-cells = <1>; 776 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; 777 ranges = <0 0x1e20000 0x40000>; 778 reg = <0x1ef0000 0x3000>; 779 clocks = <&gcc GCC_SMMU_CFG_CLK>, 780 <&gcc GCC_APSS_TCU_CLK>; 781 clock-names = "iface", "bus"; 782 qcom,iommu-secure-id = <17>; 783 784 // mdp_0: 785 iommu-ctx@4000 { 786 compatible = "qcom,msm-iommu-v1-ns"; 787 reg = <0x4000 0x1000>; 788 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 789 }; 790 791 // venus_ns: 792 iommu-ctx@5000 { 793 compatible = "qcom,msm-iommu-v1-sec"; 794 reg = <0x5000 0x1000>; 795 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 796 }; 797 }; 798 799 gpu_iommu: iommu@1f08000 { 800 #address-cells = <1>; 801 #size-cells = <1>; 802 #iommu-cells = <1>; 803 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; 804 ranges = <0 0x1f08000 0x10000>; 805 clocks = <&gcc GCC_SMMU_CFG_CLK>, 806 <&gcc GCC_GFX_TCU_CLK>; 807 clock-names = "iface", "bus"; 808 qcom,iommu-secure-id = <18>; 809 810 // gfx3d_user: 811 iommu-ctx@1000 { 812 compatible = "qcom,msm-iommu-v1-ns"; 813 reg = <0x1000 0x1000>; 814 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>; 815 }; 816 817 // gfx3d_priv: 818 iommu-ctx@2000 { 819 compatible = "qcom,msm-iommu-v1-ns"; 820 reg = <0x2000 0x1000>; 821 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>; 822 }; 823 }; 824 825 gpu@1c00000 { 826 compatible = "qcom,adreno-306.0", "qcom,adreno"; 827 reg = <0x01c00000 0x20000>; 828 reg-names = "kgsl_3d0_reg_memory"; 829 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 830 interrupt-names = "kgsl_3d0_irq"; 831 clock-names = 832 "core", 833 "iface", 834 "mem", 835 "mem_iface", 836 "alt_mem_iface", 837 "gfx3d"; 838 clocks = 839 <&gcc GCC_OXILI_GFX3D_CLK>, 840 <&gcc GCC_OXILI_AHB_CLK>, 841 <&gcc GCC_OXILI_GMEM_CLK>, 842 <&gcc GCC_BIMC_GFX_CLK>, 843 <&gcc GCC_BIMC_GPU_CLK>, 844 <&gcc GFX3D_CLK_SRC>; 845 power-domains = <&gcc OXILI_GDSC>; 846 operating-points-v2 = <&gpu_opp_table>; 847 iommus = <&gpu_iommu 1>, <&gpu_iommu 2>; 848 }; 849 850 mdss: mdss@1a00000 { 851 compatible = "qcom,mdss"; 852 reg = <0x1a00000 0x1000>, 853 <0x1ac8000 0x3000>; 854 reg-names = "mdss_phys", "vbif_phys"; 855 856 power-domains = <&gcc MDSS_GDSC>; 857 858 clocks = <&gcc GCC_MDSS_AHB_CLK>, 859 <&gcc GCC_MDSS_AXI_CLK>, 860 <&gcc GCC_MDSS_VSYNC_CLK>; 861 clock-names = "iface", 862 "bus", 863 "vsync"; 864 865 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>; 866 867 interrupt-controller; 868 #interrupt-cells = <1>; 869 870 #address-cells = <1>; 871 #size-cells = <1>; 872 ranges; 873 874 mdp: mdp@1a01000 { 875 compatible = "qcom,mdp5"; 876 reg = <0x1a01000 0x89000>; 877 reg-names = "mdp_phys"; 878 879 interrupt-parent = <&mdss>; 880 interrupts = <0 0>; 881 882 clocks = <&gcc GCC_MDSS_AHB_CLK>, 883 <&gcc GCC_MDSS_AXI_CLK>, 884 <&gcc GCC_MDSS_MDP_CLK>, 885 <&gcc GCC_MDSS_VSYNC_CLK>; 886 clock-names = "iface", 887 "bus", 888 "core", 889 "vsync"; 890 891 iommus = <&apps_iommu 4>; 892 893 ports { 894 #address-cells = <1>; 895 #size-cells = <0>; 896 897 port@0 { 898 reg = <0>; 899 mdp5_intf1_out: endpoint { 900 remote-endpoint = <&dsi0_in>; 901 }; 902 }; 903 }; 904 }; 905 906 dsi0: dsi@1a98000 { 907 compatible = "qcom,mdss-dsi-ctrl"; 908 reg = <0x1a98000 0x25c>; 909 reg-names = "dsi_ctrl"; 910 911 interrupt-parent = <&mdss>; 912 interrupts = <4 0>; 913 914 assigned-clocks = <&gcc BYTE0_CLK_SRC>, 915 <&gcc PCLK0_CLK_SRC>; 916 assigned-clock-parents = <&dsi_phy0 0>, 917 <&dsi_phy0 1>; 918 919 clocks = <&gcc GCC_MDSS_MDP_CLK>, 920 <&gcc GCC_MDSS_AHB_CLK>, 921 <&gcc GCC_MDSS_AXI_CLK>, 922 <&gcc GCC_MDSS_BYTE0_CLK>, 923 <&gcc GCC_MDSS_PCLK0_CLK>, 924 <&gcc GCC_MDSS_ESC0_CLK>; 925 clock-names = "mdp_core", 926 "iface", 927 "bus", 928 "byte", 929 "pixel", 930 "core"; 931 phys = <&dsi_phy0>; 932 phy-names = "dsi-phy"; 933 934 ports { 935 #address-cells = <1>; 936 #size-cells = <0>; 937 938 port@0 { 939 reg = <0>; 940 dsi0_in: endpoint { 941 remote-endpoint = <&mdp5_intf1_out>; 942 }; 943 }; 944 945 port@1 { 946 reg = <1>; 947 dsi0_out: endpoint { 948 }; 949 }; 950 }; 951 }; 952 953 dsi_phy0: dsi-phy@1a98300 { 954 compatible = "qcom,dsi-phy-28nm-lp"; 955 reg = <0x1a98300 0xd4>, 956 <0x1a98500 0x280>, 957 <0x1a98780 0x30>; 958 reg-names = "dsi_pll", 959 "dsi_phy", 960 "dsi_phy_regulator"; 961 962 #clock-cells = <1>; 963 #phy-cells = <0>; 964 965 clocks = <&gcc GCC_MDSS_AHB_CLK>; 966 clock-names = "iface"; 967 }; 968 }; 969 970 971 hexagon@4080000 { 972 compatible = "qcom,q6v5-pil"; 973 reg = <0x04080000 0x100>, 974 <0x04020000 0x040>; 975 976 reg-names = "qdsp6", "rmb"; 977 978 interrupts-extended = <&intc 0 24 1>, 979 <&hexagon_smp2p_in 0 0>, 980 <&hexagon_smp2p_in 1 0>, 981 <&hexagon_smp2p_in 2 0>, 982 <&hexagon_smp2p_in 3 0>; 983 interrupt-names = "wdog", "fatal", "ready", 984 "handover", "stop-ack"; 985 986 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 987 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 988 <&gcc GCC_BOOT_ROM_AHB_CLK>, 989 <&xo_board>; 990 clock-names = "iface", "bus", "mem", "xo"; 991 992 qcom,smem-states = <&hexagon_smp2p_out 0>; 993 qcom,smem-state-names = "stop"; 994 995 resets = <&scm 0>; 996 reset-names = "mss_restart"; 997 998 cx-supply = <&pm8916_s1>; 999 mx-supply = <&pm8916_l3>; 1000 pll-supply = <&pm8916_l7>; 1001 1002 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; 1003 1004 status = "disabled"; 1005 1006 mba { 1007 memory-region = <&mba_mem>; 1008 }; 1009 1010 mpss { 1011 memory-region = <&mpss_mem>; 1012 }; 1013 1014 smd-edge { 1015 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>; 1016 1017 qcom,smd-edge = <0>; 1018 qcom,ipc = <&apcs 8 12>; 1019 qcom,remote-pid = <1>; 1020 1021 label = "hexagon"; 1022 }; 1023 }; 1024 1025 pronto: wcnss@a21b000 { 1026 compatible = "qcom,pronto-v2-pil", "qcom,pronto"; 1027 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>; 1028 reg-names = "ccu", "dxe", "pmu"; 1029 1030 memory-region = <&wcnss_mem>; 1031 1032 interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>, 1033 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 1034 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 1035 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 1036 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>; 1037 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack"; 1038 1039 vddmx-supply = <&pm8916_l3>; 1040 vddpx-supply = <&pm8916_l7>; 1041 1042 qcom,state = <&wcnss_smp2p_out 0>; 1043 qcom,state-names = "stop"; 1044 1045 pinctrl-names = "default"; 1046 pinctrl-0 = <&wcnss_pin_a>; 1047 1048 status = "disabled"; 1049 1050 iris { 1051 compatible = "qcom,wcn3620"; 1052 1053 clocks = <&rpmcc RPM_SMD_RF_CLK2>; 1054 clock-names = "xo"; 1055 1056 vddxo-supply = <&pm8916_l7>; 1057 vddrfa-supply = <&pm8916_s3>; 1058 vddpa-supply = <&pm8916_l9>; 1059 vdddig-supply = <&pm8916_l5>; 1060 }; 1061 1062 smd-edge { 1063 interrupts = <0 142 1>; 1064 1065 qcom,ipc = <&apcs 8 17>; 1066 qcom,smd-edge = <6>; 1067 qcom,remote-pid = <4>; 1068 1069 label = "pronto"; 1070 1071 wcnss { 1072 compatible = "qcom,wcnss"; 1073 qcom,smd-channels = "WCNSS_CTRL"; 1074 1075 qcom,mmio = <&pronto>; 1076 1077 bt { 1078 compatible = "qcom,wcnss-bt"; 1079 }; 1080 1081 wifi { 1082 compatible = "qcom,wcnss-wlan"; 1083 1084 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>, 1085 <0 146 IRQ_TYPE_LEVEL_HIGH>; 1086 interrupt-names = "tx", "rx"; 1087 1088 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>; 1089 qcom,smem-state-names = "tx-enable", "tx-rings-empty"; 1090 }; 1091 }; 1092 }; 1093 }; 1094 1095 tpiu@820000 { 1096 compatible = "arm,coresight-tpiu", "arm,primecell"; 1097 reg = <0x820000 0x1000>; 1098 1099 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1100 clock-names = "apb_pclk", "atclk"; 1101 1102 port { 1103 tpiu_in: endpoint { 1104 slave-mode; 1105 remote-endpoint = <&replicator_out1>; 1106 }; 1107 }; 1108 }; 1109 1110 funnel@821000 { 1111 compatible = "arm,coresight-funnel", "arm,primecell"; 1112 reg = <0x821000 0x1000>; 1113 1114 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1115 clock-names = "apb_pclk", "atclk"; 1116 1117 ports { 1118 #address-cells = <1>; 1119 #size-cells = <0>; 1120 1121 /* 1122 * Not described input ports: 1123 * 0 - connected to Resource and Power Manger CPU ETM 1124 * 1 - not-connected 1125 * 2 - connected to Modem CPU ETM 1126 * 3 - not-connected 1127 * 5 - not-connected 1128 * 6 - connected trought funnel to Wireless CPU ETM 1129 * 7 - connected to STM component 1130 */ 1131 1132 port@4 { 1133 reg = <4>; 1134 funnel0_in4: endpoint { 1135 slave-mode; 1136 remote-endpoint = <&funnel1_out>; 1137 }; 1138 }; 1139 port@8 { 1140 reg = <0>; 1141 funnel0_out: endpoint { 1142 remote-endpoint = <&etf_in>; 1143 }; 1144 }; 1145 }; 1146 }; 1147 1148 replicator@824000 { 1149 compatible = "arm,coresight-dynamic-replicator", "arm,primecell"; 1150 reg = <0x824000 0x1000>; 1151 1152 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1153 clock-names = "apb_pclk", "atclk"; 1154 1155 ports { 1156 #address-cells = <1>; 1157 #size-cells = <0>; 1158 1159 port@0 { 1160 reg = <0>; 1161 replicator_out0: endpoint { 1162 remote-endpoint = <&etr_in>; 1163 }; 1164 }; 1165 port@1 { 1166 reg = <1>; 1167 replicator_out1: endpoint { 1168 remote-endpoint = <&tpiu_in>; 1169 }; 1170 }; 1171 port@2 { 1172 reg = <0>; 1173 replicator_in: endpoint { 1174 slave-mode; 1175 remote-endpoint = <&etf_out>; 1176 }; 1177 }; 1178 }; 1179 }; 1180 1181 etf@825000 { 1182 compatible = "arm,coresight-tmc", "arm,primecell"; 1183 reg = <0x825000 0x1000>; 1184 1185 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1186 clock-names = "apb_pclk", "atclk"; 1187 1188 ports { 1189 #address-cells = <1>; 1190 #size-cells = <0>; 1191 1192 port@0 { 1193 reg = <0>; 1194 etf_in: endpoint { 1195 slave-mode; 1196 remote-endpoint = <&funnel0_out>; 1197 }; 1198 }; 1199 port@1 { 1200 reg = <0>; 1201 etf_out: endpoint { 1202 remote-endpoint = <&replicator_in>; 1203 }; 1204 }; 1205 }; 1206 }; 1207 1208 etr@826000 { 1209 compatible = "arm,coresight-tmc", "arm,primecell"; 1210 reg = <0x826000 0x1000>; 1211 1212 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1213 clock-names = "apb_pclk", "atclk"; 1214 1215 port { 1216 etr_in: endpoint { 1217 slave-mode; 1218 remote-endpoint = <&replicator_out0>; 1219 }; 1220 }; 1221 }; 1222 1223 funnel@841000 { /* APSS funnel only 4 inputs are used */ 1224 compatible = "arm,coresight-funnel", "arm,primecell"; 1225 reg = <0x841000 0x1000>; 1226 1227 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1228 clock-names = "apb_pclk", "atclk"; 1229 1230 ports { 1231 #address-cells = <1>; 1232 #size-cells = <0>; 1233 1234 port@0 { 1235 reg = <0>; 1236 funnel1_in0: endpoint { 1237 slave-mode; 1238 remote-endpoint = <&etm0_out>; 1239 }; 1240 }; 1241 port@1 { 1242 reg = <1>; 1243 funnel1_in1: endpoint { 1244 slave-mode; 1245 remote-endpoint = <&etm1_out>; 1246 }; 1247 }; 1248 port@2 { 1249 reg = <2>; 1250 funnel1_in2: endpoint { 1251 slave-mode; 1252 remote-endpoint = <&etm2_out>; 1253 }; 1254 }; 1255 port@3 { 1256 reg = <3>; 1257 funnel1_in3: endpoint { 1258 slave-mode; 1259 remote-endpoint = <&etm3_out>; 1260 }; 1261 }; 1262 port@4 { 1263 reg = <0>; 1264 funnel1_out: endpoint { 1265 remote-endpoint = <&funnel0_in4>; 1266 }; 1267 }; 1268 }; 1269 }; 1270 1271 debug@850000 { 1272 compatible = "arm,coresight-cpu-debug","arm,primecell"; 1273 reg = <0x850000 0x1000>; 1274 clocks = <&rpmcc RPM_QDSS_CLK>; 1275 clock-names = "apb_pclk"; 1276 cpu = <&CPU0>; 1277 }; 1278 1279 debug@852000 { 1280 compatible = "arm,coresight-cpu-debug","arm,primecell"; 1281 reg = <0x852000 0x1000>; 1282 clocks = <&rpmcc RPM_QDSS_CLK>; 1283 clock-names = "apb_pclk"; 1284 cpu = <&CPU1>; 1285 }; 1286 1287 debug@854000 { 1288 compatible = "arm,coresight-cpu-debug","arm,primecell"; 1289 reg = <0x854000 0x1000>; 1290 clocks = <&rpmcc RPM_QDSS_CLK>; 1291 clock-names = "apb_pclk"; 1292 cpu = <&CPU2>; 1293 }; 1294 1295 debug@856000 { 1296 compatible = "arm,coresight-cpu-debug","arm,primecell"; 1297 reg = <0x856000 0x1000>; 1298 clocks = <&rpmcc RPM_QDSS_CLK>; 1299 clock-names = "apb_pclk"; 1300 cpu = <&CPU3>; 1301 }; 1302 1303 etm@85c000 { 1304 compatible = "arm,coresight-etm4x", "arm,primecell"; 1305 reg = <0x85c000 0x1000>; 1306 1307 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1308 clock-names = "apb_pclk", "atclk"; 1309 1310 cpu = <&CPU0>; 1311 1312 port { 1313 etm0_out: endpoint { 1314 remote-endpoint = <&funnel1_in0>; 1315 }; 1316 }; 1317 }; 1318 1319 etm@85d000 { 1320 compatible = "arm,coresight-etm4x", "arm,primecell"; 1321 reg = <0x85d000 0x1000>; 1322 1323 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1324 clock-names = "apb_pclk", "atclk"; 1325 1326 cpu = <&CPU1>; 1327 1328 port { 1329 etm1_out: endpoint { 1330 remote-endpoint = <&funnel1_in1>; 1331 }; 1332 }; 1333 }; 1334 1335 etm@85e000 { 1336 compatible = "arm,coresight-etm4x", "arm,primecell"; 1337 reg = <0x85e000 0x1000>; 1338 1339 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1340 clock-names = "apb_pclk", "atclk"; 1341 1342 cpu = <&CPU2>; 1343 1344 port { 1345 etm2_out: endpoint { 1346 remote-endpoint = <&funnel1_in2>; 1347 }; 1348 }; 1349 }; 1350 1351 etm@85f000 { 1352 compatible = "arm,coresight-etm4x", "arm,primecell"; 1353 reg = <0x85f000 0x1000>; 1354 1355 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1356 clock-names = "apb_pclk", "atclk"; 1357 1358 cpu = <&CPU3>; 1359 1360 port { 1361 etm3_out: endpoint { 1362 remote-endpoint = <&funnel1_in3>; 1363 }; 1364 }; 1365 }; 1366 1367 venus: video-codec@1d00000 { 1368 compatible = "qcom,msm8916-venus"; 1369 reg = <0x01d00000 0xff000>; 1370 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 1371 power-domains = <&gcc VENUS_GDSC>; 1372 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>, 1373 <&gcc GCC_VENUS0_AHB_CLK>, 1374 <&gcc GCC_VENUS0_AXI_CLK>; 1375 clock-names = "core", "iface", "bus"; 1376 iommus = <&apps_iommu 5>; 1377 memory-region = <&venus_mem>; 1378 status = "okay"; 1379 1380 video-decoder { 1381 compatible = "venus-decoder"; 1382 }; 1383 1384 video-encoder { 1385 compatible = "venus-encoder"; 1386 }; 1387 }; 1388 }; 1389 1390 smd { 1391 compatible = "qcom,smd"; 1392 1393 rpm { 1394 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 1395 qcom,ipc = <&apcs 8 0>; 1396 qcom,smd-edge = <15>; 1397 1398 rpm_requests { 1399 compatible = "qcom,rpm-msm8916"; 1400 qcom,smd-channels = "rpm_requests"; 1401 1402 rpmcc: qcom,rpmcc { 1403 compatible = "qcom,rpmcc-msm8916"; 1404 #clock-cells = <1>; 1405 }; 1406 1407 smd_rpm_regulators: pm8916-regulators { 1408 compatible = "qcom,rpm-pm8916-regulators"; 1409 1410 pm8916_s1: s1 {}; 1411 pm8916_s3: s3 {}; 1412 pm8916_s4: s4 {}; 1413 1414 pm8916_l1: l1 {}; 1415 pm8916_l2: l2 {}; 1416 pm8916_l3: l3 {}; 1417 pm8916_l4: l4 {}; 1418 pm8916_l5: l5 {}; 1419 pm8916_l6: l6 {}; 1420 pm8916_l7: l7 {}; 1421 pm8916_l8: l8 {}; 1422 pm8916_l9: l9 {}; 1423 pm8916_l10: l10 {}; 1424 pm8916_l11: l11 {}; 1425 pm8916_l12: l12 {}; 1426 pm8916_l13: l13 {}; 1427 pm8916_l14: l14 {}; 1428 pm8916_l15: l15 {}; 1429 pm8916_l16: l16 {}; 1430 pm8916_l17: l17 {}; 1431 pm8916_l18: l18 {}; 1432 }; 1433 }; 1434 }; 1435 }; 1436 1437 hexagon-smp2p { 1438 compatible = "qcom,smp2p"; 1439 qcom,smem = <435>, <428>; 1440 1441 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>; 1442 1443 qcom,ipc = <&apcs 8 14>; 1444 1445 qcom,local-pid = <0>; 1446 qcom,remote-pid = <1>; 1447 1448 hexagon_smp2p_out: master-kernel { 1449 qcom,entry-name = "master-kernel"; 1450 1451 #qcom,smem-state-cells = <1>; 1452 }; 1453 1454 hexagon_smp2p_in: slave-kernel { 1455 qcom,entry-name = "slave-kernel"; 1456 1457 interrupt-controller; 1458 #interrupt-cells = <2>; 1459 }; 1460 }; 1461 1462 wcnss-smp2p { 1463 compatible = "qcom,smp2p"; 1464 qcom,smem = <451>, <431>; 1465 1466 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>; 1467 1468 qcom,ipc = <&apcs 8 18>; 1469 1470 qcom,local-pid = <0>; 1471 qcom,remote-pid = <4>; 1472 1473 wcnss_smp2p_out: master-kernel { 1474 qcom,entry-name = "master-kernel"; 1475 1476 #qcom,smem-state-cells = <1>; 1477 }; 1478 1479 wcnss_smp2p_in: slave-kernel { 1480 qcom,entry-name = "slave-kernel"; 1481 1482 interrupt-controller; 1483 #interrupt-cells = <2>; 1484 }; 1485 }; 1486 1487 smsm { 1488 compatible = "qcom,smsm"; 1489 1490 #address-cells = <1>; 1491 #size-cells = <0>; 1492 1493 qcom,ipc-1 = <&apcs 8 13>; 1494 qcom,ipc-3 = <&apcs 8 19>; 1495 1496 apps_smsm: apps@0 { 1497 reg = <0>; 1498 1499 #qcom,smem-state-cells = <1>; 1500 }; 1501 1502 hexagon_smsm: hexagon@1 { 1503 reg = <1>; 1504 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>; 1505 1506 interrupt-controller; 1507 #interrupt-cells = <2>; 1508 }; 1509 1510 wcnss_smsm: wcnss@6 { 1511 reg = <6>; 1512 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>; 1513 1514 interrupt-controller; 1515 #interrupt-cells = <2>; 1516 }; 1517 }; 1518}; 1519 1520#include "msm8916-pins.dtsi" 1521