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 18/ { 19 model = "Qualcomm Technologies, Inc. MSM8916"; 20 compatible = "qcom,msm8916"; 21 22 interrupt-parent = <&intc>; 23 24 #address-cells = <2>; 25 #size-cells = <2>; 26 27 aliases { 28 sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ 29 sdhc2 = &sdhc_2; /* SDC2 SD card slot */ 30 }; 31 32 chosen { }; 33 34 memory { 35 device_type = "memory"; 36 /* We expect the bootloader to fill in the reg */ 37 reg = <0 0 0 0>; 38 }; 39 40 reserved-memory { 41 #address-cells = <2>; 42 #size-cells = <2>; 43 ranges; 44 45 tz-apps@86000000 { 46 reg = <0x0 0x86000000 0x0 0x300000>; 47 no-map; 48 }; 49 50 smem_mem: smem_region@86300000 { 51 reg = <0x0 0x86300000 0x0 0x100000>; 52 no-map; 53 }; 54 55 hypervisor@86400000 { 56 reg = <0x0 0x86400000 0x0 0x100000>; 57 no-map; 58 }; 59 60 tz@86500000 { 61 reg = <0x0 0x86500000 0x0 0x180000>; 62 no-map; 63 }; 64 65 reserved@8668000 { 66 reg = <0x0 0x86680000 0x0 0x80000>; 67 no-map; 68 }; 69 70 rmtfs@86700000 { 71 reg = <0x0 0x86700000 0x0 0xe0000>; 72 no-map; 73 }; 74 75 rfsa@867e00000 { 76 reg = <0x0 0x867e0000 0x0 0x20000>; 77 no-map; 78 }; 79 80 mpss_mem: mpss@86800000 { 81 reg = <0x0 0x86800000 0x0 0x2b00000>; 82 no-map; 83 }; 84 85 wcnss@89300000 { 86 reg = <0x0 0x89300000 0x0 0x600000>; 87 no-map; 88 }; 89 90 mba_mem: mba@8ea00000 { 91 no-map; 92 reg = <0 0x8ea00000 0 0x100000>; 93 }; 94 }; 95 96 cpus { 97 #address-cells = <1>; 98 #size-cells = <0>; 99 100 CPU0: cpu@0 { 101 device_type = "cpu"; 102 compatible = "arm,cortex-a53", "arm,armv8"; 103 reg = <0x0>; 104 next-level-cache = <&L2_0>; 105 enable-method = "psci"; 106 cpu-idle-states = <&CPU_SPC>; 107 }; 108 109 CPU1: cpu@1 { 110 device_type = "cpu"; 111 compatible = "arm,cortex-a53", "arm,armv8"; 112 reg = <0x1>; 113 next-level-cache = <&L2_0>; 114 enable-method = "psci"; 115 cpu-idle-states = <&CPU_SPC>; 116 }; 117 118 CPU2: cpu@2 { 119 device_type = "cpu"; 120 compatible = "arm,cortex-a53", "arm,armv8"; 121 reg = <0x2>; 122 next-level-cache = <&L2_0>; 123 enable-method = "psci"; 124 cpu-idle-states = <&CPU_SPC>; 125 }; 126 127 CPU3: cpu@3 { 128 device_type = "cpu"; 129 compatible = "arm,cortex-a53", "arm,armv8"; 130 reg = <0x3>; 131 next-level-cache = <&L2_0>; 132 enable-method = "psci"; 133 cpu-idle-states = <&CPU_SPC>; 134 }; 135 136 L2_0: l2-cache { 137 compatible = "cache"; 138 cache-level = <2>; 139 }; 140 141 idle-states { 142 CPU_SPC: spc { 143 compatible = "arm,idle-state"; 144 arm,psci-suspend-param = <0x40000002>; 145 entry-latency-us = <130>; 146 exit-latency-us = <150>; 147 min-residency-us = <2000>; 148 local-timer-stop; 149 }; 150 }; 151 }; 152 153 psci { 154 compatible = "arm,psci-1.0"; 155 method = "smc"; 156 }; 157 158 pmu { 159 compatible = "arm,armv8-pmuv3"; 160 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>; 161 }; 162 163 thermal-zones { 164 cpu-thermal0 { 165 polling-delay-passive = <250>; 166 polling-delay = <1000>; 167 168 thermal-sensors = <&tsens 4>; 169 170 trips { 171 cpu_alert0: trip0 { 172 temperature = <75000>; 173 hysteresis = <2000>; 174 type = "passive"; 175 }; 176 cpu_crit0: trip1 { 177 temperature = <110000>; 178 hysteresis = <2000>; 179 type = "critical"; 180 }; 181 }; 182 }; 183 184 cpu-thermal1 { 185 polling-delay-passive = <250>; 186 polling-delay = <1000>; 187 188 thermal-sensors = <&tsens 3>; 189 190 trips { 191 cpu_alert1: trip0 { 192 temperature = <75000>; 193 hysteresis = <2000>; 194 type = "passive"; 195 }; 196 cpu_crit1: trip1 { 197 temperature = <110000>; 198 hysteresis = <2000>; 199 type = "critical"; 200 }; 201 }; 202 }; 203 204 }; 205 206 timer { 207 compatible = "arm,armv8-timer"; 208 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 209 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 210 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 211 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 212 }; 213 214 clocks { 215 xo_board: xo_board { 216 compatible = "fixed-clock"; 217 #clock-cells = <0>; 218 clock-frequency = <19200000>; 219 }; 220 221 sleep_clk: sleep_clk { 222 compatible = "fixed-clock"; 223 #clock-cells = <0>; 224 clock-frequency = <32768>; 225 }; 226 }; 227 228 smem { 229 compatible = "qcom,smem"; 230 231 memory-region = <&smem_mem>; 232 qcom,rpm-msg-ram = <&rpm_msg_ram>; 233 234 hwlocks = <&tcsr_mutex 3>; 235 }; 236 237 firmware { 238 scm: scm { 239 compatible = "qcom,scm"; 240 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>; 241 clock-names = "core", "bus", "iface"; 242 #reset-cells = <1>; 243 }; 244 }; 245 246 soc: soc { 247 #address-cells = <1>; 248 #size-cells = <1>; 249 ranges = <0 0 0 0xffffffff>; 250 compatible = "simple-bus"; 251 252 restart@4ab000 { 253 compatible = "qcom,pshold"; 254 reg = <0x4ab000 0x4>; 255 }; 256 257 msmgpio: pinctrl@1000000 { 258 compatible = "qcom,msm8916-pinctrl"; 259 reg = <0x1000000 0x300000>; 260 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 261 gpio-controller; 262 #gpio-cells = <2>; 263 interrupt-controller; 264 #interrupt-cells = <2>; 265 }; 266 267 gcc: clock-controller@1800000 { 268 compatible = "qcom,gcc-msm8916"; 269 #clock-cells = <1>; 270 #reset-cells = <1>; 271 #power-domain-cells = <1>; 272 reg = <0x1800000 0x80000>; 273 }; 274 275 tcsr_mutex_regs: syscon@1905000 { 276 compatible = "syscon"; 277 reg = <0x1905000 0x20000>; 278 }; 279 280 tcsr: syscon@1937000 { 281 compatible = "qcom,tcsr-msm8916", "syscon"; 282 reg = <0x1937000 0x30000>; 283 }; 284 285 tcsr_mutex: hwlock { 286 compatible = "qcom,tcsr-mutex"; 287 syscon = <&tcsr_mutex_regs 0 0x1000>; 288 #hwlock-cells = <1>; 289 }; 290 291 rpm_msg_ram: memory@60000 { 292 compatible = "qcom,rpm-msg-ram"; 293 reg = <0x60000 0x8000>; 294 }; 295 296 blsp1_uart1: serial@78af000 { 297 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 298 reg = <0x78af000 0x200>; 299 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 300 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 301 clock-names = "core", "iface"; 302 dmas = <&blsp_dma 1>, <&blsp_dma 0>; 303 dma-names = "rx", "tx"; 304 status = "disabled"; 305 }; 306 307 apcs: syscon@b011000 { 308 compatible = "syscon"; 309 reg = <0x0b011000 0x1000>; 310 }; 311 312 blsp1_uart2: serial@78b0000 { 313 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 314 reg = <0x78b0000 0x200>; 315 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 316 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 317 clock-names = "core", "iface"; 318 dmas = <&blsp_dma 3>, <&blsp_dma 2>; 319 dma-names = "rx", "tx"; 320 status = "disabled"; 321 }; 322 323 blsp_dma: dma@7884000 { 324 compatible = "qcom,bam-v1.7.0"; 325 reg = <0x07884000 0x23000>; 326 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 327 clocks = <&gcc GCC_BLSP1_AHB_CLK>; 328 clock-names = "bam_clk"; 329 #dma-cells = <1>; 330 qcom,ee = <0>; 331 status = "disabled"; 332 }; 333 334 blsp_spi1: spi@78b5000 { 335 compatible = "qcom,spi-qup-v2.2.1"; 336 reg = <0x078b5000 0x600>; 337 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 338 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, 339 <&gcc GCC_BLSP1_AHB_CLK>; 340 clock-names = "core", "iface"; 341 dmas = <&blsp_dma 5>, <&blsp_dma 4>; 342 dma-names = "rx", "tx"; 343 pinctrl-names = "default", "sleep"; 344 pinctrl-0 = <&spi1_default>; 345 pinctrl-1 = <&spi1_sleep>; 346 #address-cells = <1>; 347 #size-cells = <0>; 348 status = "disabled"; 349 }; 350 351 blsp_spi2: spi@78b6000 { 352 compatible = "qcom,spi-qup-v2.2.1"; 353 reg = <0x078b6000 0x600>; 354 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 355 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>, 356 <&gcc GCC_BLSP1_AHB_CLK>; 357 clock-names = "core", "iface"; 358 dmas = <&blsp_dma 7>, <&blsp_dma 6>; 359 dma-names = "rx", "tx"; 360 pinctrl-names = "default", "sleep"; 361 pinctrl-0 = <&spi2_default>; 362 pinctrl-1 = <&spi2_sleep>; 363 #address-cells = <1>; 364 #size-cells = <0>; 365 status = "disabled"; 366 }; 367 368 blsp_spi3: spi@78b7000 { 369 compatible = "qcom,spi-qup-v2.2.1"; 370 reg = <0x078b7000 0x600>; 371 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 372 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>, 373 <&gcc GCC_BLSP1_AHB_CLK>; 374 clock-names = "core", "iface"; 375 dmas = <&blsp_dma 9>, <&blsp_dma 8>; 376 dma-names = "rx", "tx"; 377 pinctrl-names = "default", "sleep"; 378 pinctrl-0 = <&spi3_default>; 379 pinctrl-1 = <&spi3_sleep>; 380 #address-cells = <1>; 381 #size-cells = <0>; 382 status = "disabled"; 383 }; 384 385 blsp_spi4: spi@78b8000 { 386 compatible = "qcom,spi-qup-v2.2.1"; 387 reg = <0x078b8000 0x600>; 388 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 389 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>, 390 <&gcc GCC_BLSP1_AHB_CLK>; 391 clock-names = "core", "iface"; 392 dmas = <&blsp_dma 11>, <&blsp_dma 10>; 393 dma-names = "rx", "tx"; 394 pinctrl-names = "default", "sleep"; 395 pinctrl-0 = <&spi4_default>; 396 pinctrl-1 = <&spi4_sleep>; 397 #address-cells = <1>; 398 #size-cells = <0>; 399 status = "disabled"; 400 }; 401 402 blsp_spi5: spi@78b9000 { 403 compatible = "qcom,spi-qup-v2.2.1"; 404 reg = <0x078b9000 0x600>; 405 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 406 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>, 407 <&gcc GCC_BLSP1_AHB_CLK>; 408 clock-names = "core", "iface"; 409 dmas = <&blsp_dma 13>, <&blsp_dma 12>; 410 dma-names = "rx", "tx"; 411 pinctrl-names = "default", "sleep"; 412 pinctrl-0 = <&spi5_default>; 413 pinctrl-1 = <&spi5_sleep>; 414 #address-cells = <1>; 415 #size-cells = <0>; 416 status = "disabled"; 417 }; 418 419 blsp_spi6: spi@78ba000 { 420 compatible = "qcom,spi-qup-v2.2.1"; 421 reg = <0x078ba000 0x600>; 422 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 423 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>, 424 <&gcc GCC_BLSP1_AHB_CLK>; 425 clock-names = "core", "iface"; 426 dmas = <&blsp_dma 15>, <&blsp_dma 14>; 427 dma-names = "rx", "tx"; 428 pinctrl-names = "default", "sleep"; 429 pinctrl-0 = <&spi6_default>; 430 pinctrl-1 = <&spi6_sleep>; 431 #address-cells = <1>; 432 #size-cells = <0>; 433 status = "disabled"; 434 }; 435 436 blsp_i2c2: i2c@78b6000 { 437 compatible = "qcom,i2c-qup-v2.2.1"; 438 reg = <0x78b6000 0x1000>; 439 interrupts = <GIC_SPI 96 0>; 440 clocks = <&gcc GCC_BLSP1_AHB_CLK>, 441 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; 442 clock-names = "iface", "core"; 443 pinctrl-names = "default", "sleep"; 444 pinctrl-0 = <&i2c2_default>; 445 pinctrl-1 = <&i2c2_sleep>; 446 #address-cells = <1>; 447 #size-cells = <0>; 448 status = "disabled"; 449 }; 450 451 blsp_i2c4: i2c@78b8000 { 452 compatible = "qcom,i2c-qup-v2.2.1"; 453 reg = <0x78b8000 0x1000>; 454 interrupts = <GIC_SPI 98 0>; 455 clocks = <&gcc GCC_BLSP1_AHB_CLK>, 456 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; 457 clock-names = "iface", "core"; 458 pinctrl-names = "default", "sleep"; 459 pinctrl-0 = <&i2c4_default>; 460 pinctrl-1 = <&i2c4_sleep>; 461 #address-cells = <1>; 462 #size-cells = <0>; 463 status = "disabled"; 464 }; 465 466 blsp_i2c6: i2c@78ba000 { 467 compatible = "qcom,i2c-qup-v2.2.1"; 468 reg = <0x78ba000 0x1000>; 469 interrupts = <GIC_SPI 100 0>; 470 clocks = <&gcc GCC_BLSP1_AHB_CLK>, 471 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; 472 clock-names = "iface", "core"; 473 pinctrl-names = "default", "sleep"; 474 pinctrl-0 = <&i2c6_default>; 475 pinctrl-1 = <&i2c6_sleep>; 476 #address-cells = <1>; 477 #size-cells = <0>; 478 status = "disabled"; 479 }; 480 481 lpass: lpass@07708000 { 482 status = "disabled"; 483 compatible = "qcom,lpass-cpu-apq8016"; 484 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, 485 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>, 486 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>, 487 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>, 488 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>, 489 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>, 490 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>; 491 492 clock-names = "ahbix-clk", 493 "pcnoc-mport-clk", 494 "pcnoc-sway-clk", 495 "mi2s-bit-clk0", 496 "mi2s-bit-clk1", 497 "mi2s-bit-clk2", 498 "mi2s-bit-clk3"; 499 #sound-dai-cells = <1>; 500 501 interrupts = <0 160 0>; 502 interrupt-names = "lpass-irq-lpaif"; 503 reg = <0x07708000 0x10000>; 504 reg-names = "lpass-lpaif"; 505 }; 506 507 lpass_codec: codec{ 508 compatible = "qcom,msm8916-wcd-digital-codec"; 509 reg = <0x0771c000 0x400>; 510 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, 511 <&gcc GCC_CODEC_DIGCODEC_CLK>; 512 clock-names = "ahbix-clk", "mclk"; 513 #sound-dai-cells = <1>; 514 }; 515 516 sdhc_1: sdhci@07824000 { 517 compatible = "qcom,sdhci-msm-v4"; 518 reg = <0x07824900 0x11c>, <0x07824000 0x800>; 519 reg-names = "hc_mem", "core_mem"; 520 521 interrupts = <0 123 0>, <0 138 0>; 522 interrupt-names = "hc_irq", "pwr_irq"; 523 clocks = <&gcc GCC_SDCC1_APPS_CLK>, 524 <&gcc GCC_SDCC1_AHB_CLK>, 525 <&xo_board>; 526 clock-names = "core", "iface", "xo"; 527 mmc-ddr-1_8v; 528 bus-width = <8>; 529 non-removable; 530 status = "disabled"; 531 }; 532 533 sdhc_2: sdhci@07864000 { 534 compatible = "qcom,sdhci-msm-v4"; 535 reg = <0x07864900 0x11c>, <0x07864000 0x800>; 536 reg-names = "hc_mem", "core_mem"; 537 538 interrupts = <0 125 0>, <0 221 0>; 539 interrupt-names = "hc_irq", "pwr_irq"; 540 clocks = <&gcc GCC_SDCC2_APPS_CLK>, 541 <&gcc GCC_SDCC2_AHB_CLK>, 542 <&xo_board>; 543 clock-names = "core", "iface", "xo"; 544 bus-width = <4>; 545 status = "disabled"; 546 }; 547 548 usb_dev: usb@78d9000 { 549 compatible = "qcom,ci-hdrc"; 550 reg = <0x78d9000 0x400>; 551 dr_mode = "peripheral"; 552 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 553 usb-phy = <&usb_otg>; 554 status = "disabled"; 555 }; 556 557 usb_host: ehci@78d9000 { 558 compatible = "qcom,ehci-host"; 559 reg = <0x78d9000 0x400>; 560 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 561 usb-phy = <&usb_otg>; 562 status = "disabled"; 563 }; 564 565 usb_otg: phy@78d9000 { 566 compatible = "qcom,usb-otg-snps"; 567 reg = <0x78d9000 0x400>; 568 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 569 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 570 571 qcom,vdd-levels = <500000 1000000 1320000>; 572 qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>; 573 dr_mode = "peripheral"; 574 qcom,otg-control = <2>; // PMIC 575 qcom,manual-pullup; 576 577 clocks = <&gcc GCC_USB_HS_AHB_CLK>, 578 <&gcc GCC_USB_HS_SYSTEM_CLK>, 579 <&gcc GCC_USB2A_PHY_SLEEP_CLK>; 580 clock-names = "iface", "core", "sleep"; 581 582 resets = <&gcc GCC_USB2A_PHY_BCR>, 583 <&gcc GCC_USB_HS_BCR>; 584 reset-names = "phy", "link"; 585 status = "disabled"; 586 }; 587 588 intc: interrupt-controller@b000000 { 589 compatible = "qcom,msm-qgic2"; 590 interrupt-controller; 591 #interrupt-cells = <3>; 592 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>; 593 }; 594 595 timer@b020000 { 596 #address-cells = <1>; 597 #size-cells = <1>; 598 ranges; 599 compatible = "arm,armv7-timer-mem"; 600 reg = <0xb020000 0x1000>; 601 clock-frequency = <19200000>; 602 603 frame@b021000 { 604 frame-number = <0>; 605 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 606 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 607 reg = <0xb021000 0x1000>, 608 <0xb022000 0x1000>; 609 }; 610 611 frame@b023000 { 612 frame-number = <1>; 613 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 614 reg = <0xb023000 0x1000>; 615 status = "disabled"; 616 }; 617 618 frame@b024000 { 619 frame-number = <2>; 620 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 621 reg = <0xb024000 0x1000>; 622 status = "disabled"; 623 }; 624 625 frame@b025000 { 626 frame-number = <3>; 627 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 628 reg = <0xb025000 0x1000>; 629 status = "disabled"; 630 }; 631 632 frame@b026000 { 633 frame-number = <4>; 634 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 635 reg = <0xb026000 0x1000>; 636 status = "disabled"; 637 }; 638 639 frame@b027000 { 640 frame-number = <5>; 641 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 642 reg = <0xb027000 0x1000>; 643 status = "disabled"; 644 }; 645 646 frame@b028000 { 647 frame-number = <6>; 648 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 649 reg = <0xb028000 0x1000>; 650 status = "disabled"; 651 }; 652 }; 653 654 spmi_bus: spmi@200f000 { 655 compatible = "qcom,spmi-pmic-arb"; 656 reg = <0x200f000 0x001000>, 657 <0x2400000 0x400000>, 658 <0x2c00000 0x400000>, 659 <0x3800000 0x200000>, 660 <0x200a000 0x002100>; 661 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; 662 interrupt-names = "periph_irq"; 663 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 664 qcom,ee = <0>; 665 qcom,channel = <0>; 666 #address-cells = <2>; 667 #size-cells = <0>; 668 interrupt-controller; 669 #interrupt-cells = <4>; 670 }; 671 672 rng@22000 { 673 compatible = "qcom,prng"; 674 reg = <0x00022000 0x200>; 675 clocks = <&gcc GCC_PRNG_AHB_CLK>; 676 clock-names = "core"; 677 }; 678 679 qfprom: qfprom@5c000 { 680 compatible = "qcom,qfprom"; 681 reg = <0x5c000 0x1000>; 682 #address-cells = <1>; 683 #size-cells = <1>; 684 tsens_caldata: caldata@d0 { 685 reg = <0xd0 0x8>; 686 }; 687 tsens_calsel: calsel@ec { 688 reg = <0xec 0x4>; 689 }; 690 }; 691 692 tsens: thermal-sensor@4a8000 { 693 compatible = "qcom,msm8916-tsens"; 694 reg = <0x4a8000 0x2000>; 695 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>; 696 nvmem-cell-names = "calib", "calib_sel"; 697 #thermal-sensor-cells = <1>; 698 }; 699 700 mdss: mdss@1a00000 { 701 compatible = "qcom,mdss"; 702 reg = <0x1a00000 0x1000>, 703 <0x1ac8000 0x3000>; 704 reg-names = "mdss_phys", "vbif_phys"; 705 706 power-domains = <&gcc MDSS_GDSC>; 707 708 clocks = <&gcc GCC_MDSS_AHB_CLK>, 709 <&gcc GCC_MDSS_AXI_CLK>, 710 <&gcc GCC_MDSS_VSYNC_CLK>; 711 clock-names = "iface_clk", 712 "bus_clk", 713 "vsync_clk"; 714 715 interrupts = <0 72 0>; 716 717 interrupt-controller; 718 #interrupt-cells = <1>; 719 720 #address-cells = <1>; 721 #size-cells = <1>; 722 ranges; 723 724 mdp: mdp@1a01000 { 725 compatible = "qcom,mdp5"; 726 reg = <0x1a01000 0x90000>; 727 reg-names = "mdp_phys"; 728 729 interrupt-parent = <&mdss>; 730 interrupts = <0 0>; 731 732 clocks = <&gcc GCC_MDSS_AHB_CLK>, 733 <&gcc GCC_MDSS_AXI_CLK>, 734 <&gcc GCC_MDSS_MDP_CLK>, 735 <&gcc GCC_MDSS_VSYNC_CLK>; 736 clock-names = "iface_clk", 737 "bus_clk", 738 "core_clk", 739 "vsync_clk"; 740 741 ports { 742 #address-cells = <1>; 743 #size-cells = <0>; 744 745 port@0 { 746 reg = <0>; 747 mdp5_intf1_out: endpoint { 748 remote-endpoint = <&dsi0_in>; 749 }; 750 }; 751 }; 752 }; 753 754 dsi0: dsi@1a98000 { 755 compatible = "qcom,mdss-dsi-ctrl"; 756 reg = <0x1a98000 0x25c>; 757 reg-names = "dsi_ctrl"; 758 759 interrupt-parent = <&mdss>; 760 interrupts = <4 0>; 761 762 assigned-clocks = <&gcc BYTE0_CLK_SRC>, 763 <&gcc PCLK0_CLK_SRC>; 764 assigned-clock-parents = <&dsi_phy0 0>, 765 <&dsi_phy0 1>; 766 767 clocks = <&gcc GCC_MDSS_MDP_CLK>, 768 <&gcc GCC_MDSS_AHB_CLK>, 769 <&gcc GCC_MDSS_AXI_CLK>, 770 <&gcc GCC_MDSS_BYTE0_CLK>, 771 <&gcc GCC_MDSS_PCLK0_CLK>, 772 <&gcc GCC_MDSS_ESC0_CLK>; 773 clock-names = "mdp_core_clk", 774 "iface_clk", 775 "bus_clk", 776 "byte_clk", 777 "pixel_clk", 778 "core_clk"; 779 phys = <&dsi_phy0>; 780 phy-names = "dsi-phy"; 781 782 ports { 783 #address-cells = <1>; 784 #size-cells = <0>; 785 786 port@0 { 787 reg = <0>; 788 dsi0_in: endpoint { 789 remote-endpoint = <&mdp5_intf1_out>; 790 }; 791 }; 792 793 port@1 { 794 reg = <1>; 795 dsi0_out: endpoint { 796 }; 797 }; 798 }; 799 }; 800 801 dsi_phy0: dsi-phy@1a98300 { 802 compatible = "qcom,dsi-phy-28nm-lp"; 803 reg = <0x1a98300 0xd4>, 804 <0x1a98500 0x280>, 805 <0x1a98780 0x30>; 806 reg-names = "dsi_pll", 807 "dsi_phy", 808 "dsi_phy_regulator"; 809 810 #clock-cells = <1>; 811 812 clocks = <&gcc GCC_MDSS_AHB_CLK>; 813 clock-names = "iface_clk"; 814 }; 815 }; 816 817 818 hexagon@4080000 { 819 compatible = "qcom,q6v5-pil"; 820 reg = <0x04080000 0x100>, 821 <0x04020000 0x040>; 822 823 reg-names = "qdsp6", "rmb"; 824 825 interrupts-extended = <&intc 0 24 1>, 826 <&hexagon_smp2p_in 0 0>, 827 <&hexagon_smp2p_in 1 0>, 828 <&hexagon_smp2p_in 2 0>, 829 <&hexagon_smp2p_in 3 0>; 830 interrupt-names = "wdog", "fatal", "ready", 831 "handover", "stop-ack"; 832 833 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, 834 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, 835 <&gcc GCC_BOOT_ROM_AHB_CLK>; 836 clock-names = "iface", "bus", "mem"; 837 838 qcom,smem-states = <&hexagon_smp2p_out 0>; 839 qcom,smem-state-names = "stop"; 840 841 resets = <&scm 0>; 842 reset-names = "mss_restart"; 843 844 mx-supply = <&pm8916_l3>; 845 pll-supply = <&pm8916_l7>; 846 847 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; 848 849 status = "disabled"; 850 851 mba { 852 memory-region = <&mba_mem>; 853 }; 854 855 mpss { 856 memory-region = <&mpss_mem>; 857 }; 858 }; 859 }; 860 861 smd { 862 compatible = "qcom,smd"; 863 864 rpm { 865 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 866 qcom,ipc = <&apcs 8 0>; 867 qcom,smd-edge = <15>; 868 869 rpm_requests { 870 compatible = "qcom,rpm-msm8916"; 871 qcom,smd-channels = "rpm_requests"; 872 873 rpmcc: qcom,rpmcc { 874 compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc"; 875 #clock-cells = <1>; 876 }; 877 878 smd_rpm_regulators: pm8916-regulators { 879 compatible = "qcom,rpm-pm8916-regulators"; 880 881 pm8916_s1: s1 {}; 882 pm8916_s3: s3 {}; 883 pm8916_s4: s4 {}; 884 885 pm8916_l1: l1 {}; 886 pm8916_l2: l2 {}; 887 pm8916_l3: l3 {}; 888 pm8916_l4: l4 {}; 889 pm8916_l5: l5 {}; 890 pm8916_l6: l6 {}; 891 pm8916_l7: l7 {}; 892 pm8916_l8: l8 {}; 893 pm8916_l9: l9 {}; 894 pm8916_l10: l10 {}; 895 pm8916_l11: l11 {}; 896 pm8916_l12: l12 {}; 897 pm8916_l13: l13 {}; 898 pm8916_l14: l14 {}; 899 pm8916_l15: l15 {}; 900 pm8916_l16: l16 {}; 901 pm8916_l17: l17 {}; 902 pm8916_l18: l18 {}; 903 }; 904 }; 905 }; 906 907 hexagon { 908 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>; 909 910 qcom,smd-edge = <0>; 911 qcom,ipc = <&apcs 8 12>; 912 qcom,remote-pid = <1>; 913 }; 914 }; 915 916 hexagon-smp2p { 917 compatible = "qcom,smp2p"; 918 qcom,smem = <435>, <428>; 919 920 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>; 921 922 qcom,ipc = <&apcs 8 14>; 923 924 qcom,local-pid = <0>; 925 qcom,remote-pid = <1>; 926 927 hexagon_smp2p_out: master-kernel { 928 qcom,entry-name = "master-kernel"; 929 930 #qcom,smem-state-cells = <1>; 931 }; 932 933 hexagon_smp2p_in: slave-kernel { 934 qcom,entry-name = "slave-kernel"; 935 936 interrupt-controller; 937 #interrupt-cells = <2>; 938 }; 939 }; 940 941 wcnss-smp2p { 942 compatible = "qcom,smp2p"; 943 qcom,smem = <451>, <431>; 944 945 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>; 946 947 qcom,ipc = <&apcs 8 18>; 948 949 qcom,local-pid = <0>; 950 qcom,remote-pid = <4>; 951 952 wcnss_smp2p_out: master-kernel { 953 qcom,entry-name = "master-kernel"; 954 955 #qcom,smem-state-cells = <1>; 956 }; 957 958 wcnss_smp2p_in: slave-kernel { 959 qcom,entry-name = "slave-kernel"; 960 961 interrupt-controller; 962 #interrupt-cells = <2>; 963 }; 964 }; 965 966 smsm { 967 compatible = "qcom,smsm"; 968 969 #address-cells = <1>; 970 #size-cells = <0>; 971 972 qcom,ipc-1 = <&apcs 0 13>; 973 qcom,ipc-6 = <&apcs 0 19>; 974 975 apps_smsm: apps@0 { 976 reg = <0>; 977 978 #qcom,smem-state-cells = <1>; 979 }; 980 981 hexagon_smsm: hexagon@1 { 982 reg = <1>; 983 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>; 984 985 interrupt-controller; 986 #interrupt-cells = <2>; 987 }; 988 989 wcnss_smsm: wcnss@6 { 990 reg = <6>; 991 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>; 992 993 interrupt-controller; 994 #interrupt-cells = <2>; 995 }; 996 }; 997}; 998 999#include "msm8916-pins.dtsi" 1000