2 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
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.
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.
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>
20 model = "Qualcomm Technologies, Inc. MSM8916";
21 compatible = "qcom,msm8916";
23 interrupt-parent = <&intc>;
29 sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
30 sdhc2 = &sdhc_2; /* SDC2 SD card slot */
36 device_type = "memory";
37 /* We expect the bootloader to fill in the reg */
47 reg = <0x0 0x86000000 0x0 0x300000>;
51 smem_mem: smem_region@86300000 {
52 reg = <0x0 0x86300000 0x0 0x100000>;
57 reg = <0x0 0x86400000 0x0 0x100000>;
62 reg = <0x0 0x86500000 0x0 0x180000>;
67 reg = <0x0 0x86680000 0x0 0x80000>;
72 reg = <0x0 0x86700000 0x0 0xe0000>;
77 reg = <0x0 0x867e0000 0x0 0x20000>;
81 mpss_mem: mpss@86800000 {
82 reg = <0x0 0x86800000 0x0 0x2b00000>;
86 wcnss_mem: wcnss@89300000 {
87 reg = <0x0 0x89300000 0x0 0x600000>;
91 venus_mem: venus@89900000 {
92 reg = <0x0 0x89900000 0x0 0x600000>;
96 mba_mem: mba@8ea00000 {
98 reg = <0 0x8ea00000 0 0x100000>;
103 #address-cells = <1>;
108 compatible = "arm,cortex-a53", "arm,armv8";
110 next-level-cache = <&L2_0>;
111 enable-method = "psci";
112 cpu-idle-states = <&CPU_SPC>;
117 compatible = "arm,cortex-a53", "arm,armv8";
119 next-level-cache = <&L2_0>;
120 enable-method = "psci";
121 cpu-idle-states = <&CPU_SPC>;
126 compatible = "arm,cortex-a53", "arm,armv8";
128 next-level-cache = <&L2_0>;
129 enable-method = "psci";
130 cpu-idle-states = <&CPU_SPC>;
135 compatible = "arm,cortex-a53", "arm,armv8";
137 next-level-cache = <&L2_0>;
138 enable-method = "psci";
139 cpu-idle-states = <&CPU_SPC>;
143 compatible = "cache";
149 compatible = "arm,idle-state";
150 arm,psci-suspend-param = <0x40000002>;
151 entry-latency-us = <130>;
152 exit-latency-us = <150>;
153 min-residency-us = <2000>;
160 compatible = "arm,psci-1.0";
165 compatible = "arm,cortex-a53-pmu";
166 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>;
171 polling-delay-passive = <250>;
172 polling-delay = <1000>;
174 thermal-sensors = <&tsens 4>;
178 temperature = <75000>;
183 temperature = <110000>;
191 polling-delay-passive = <250>;
192 polling-delay = <1000>;
194 thermal-sensors = <&tsens 3>;
198 temperature = <75000>;
203 temperature = <110000>;
212 gpu_opp_table: opp_table {
213 compatible = "operating-points-v2";
216 opp-hz = /bits/ 64 <400000000>;
219 opp-hz = /bits/ 64 <19200000>;
224 compatible = "arm,armv8-timer";
225 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
226 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
227 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
228 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
233 compatible = "fixed-clock";
235 clock-frequency = <19200000>;
238 sleep_clk: sleep_clk {
239 compatible = "fixed-clock";
241 clock-frequency = <32768>;
246 compatible = "qcom,smem";
248 memory-region = <&smem_mem>;
249 qcom,rpm-msg-ram = <&rpm_msg_ram>;
251 hwlocks = <&tcsr_mutex 3>;
256 compatible = "qcom,scm";
257 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
258 clock-names = "core", "bus", "iface";
264 #address-cells = <1>;
266 ranges = <0 0 0 0xffffffff>;
267 compatible = "simple-bus";
270 compatible = "qcom,pshold";
271 reg = <0x4ab000 0x4>;
274 msmgpio: pinctrl@1000000 {
275 compatible = "qcom,msm8916-pinctrl";
276 reg = <0x1000000 0x300000>;
277 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
280 interrupt-controller;
281 #interrupt-cells = <2>;
284 gcc: clock-controller@1800000 {
285 compatible = "qcom,gcc-msm8916";
288 #power-domain-cells = <1>;
289 reg = <0x1800000 0x80000>;
292 tcsr_mutex_regs: syscon@1905000 {
293 compatible = "syscon";
294 reg = <0x1905000 0x20000>;
297 tcsr: syscon@1937000 {
298 compatible = "qcom,tcsr-msm8916", "syscon";
299 reg = <0x1937000 0x30000>;
303 compatible = "qcom,tcsr-mutex";
304 syscon = <&tcsr_mutex_regs 0 0x1000>;
308 rpm_msg_ram: memory@60000 {
309 compatible = "qcom,rpm-msg-ram";
310 reg = <0x60000 0x8000>;
313 blsp1_uart1: serial@78af000 {
314 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
315 reg = <0x78af000 0x200>;
316 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
317 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
318 clock-names = "core", "iface";
319 dmas = <&blsp_dma 1>, <&blsp_dma 0>;
320 dma-names = "rx", "tx";
324 apcs: syscon@b011000 {
325 compatible = "syscon";
326 reg = <0x0b011000 0x1000>;
329 blsp1_uart2: serial@78b0000 {
330 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
331 reg = <0x78b0000 0x200>;
332 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
333 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
334 clock-names = "core", "iface";
335 dmas = <&blsp_dma 3>, <&blsp_dma 2>;
336 dma-names = "rx", "tx";
340 blsp_dma: dma@7884000 {
341 compatible = "qcom,bam-v1.7.0";
342 reg = <0x07884000 0x23000>;
343 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
344 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
345 clock-names = "bam_clk";
351 blsp_spi1: spi@78b5000 {
352 compatible = "qcom,spi-qup-v2.2.1";
353 reg = <0x078b5000 0x600>;
354 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
355 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
356 <&gcc GCC_BLSP1_AHB_CLK>;
357 clock-names = "core", "iface";
358 dmas = <&blsp_dma 5>, <&blsp_dma 4>;
359 dma-names = "rx", "tx";
360 pinctrl-names = "default", "sleep";
361 pinctrl-0 = <&spi1_default>;
362 pinctrl-1 = <&spi1_sleep>;
363 #address-cells = <1>;
368 blsp_spi2: spi@78b6000 {
369 compatible = "qcom,spi-qup-v2.2.1";
370 reg = <0x078b6000 0x600>;
371 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
372 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
373 <&gcc GCC_BLSP1_AHB_CLK>;
374 clock-names = "core", "iface";
375 dmas = <&blsp_dma 7>, <&blsp_dma 6>;
376 dma-names = "rx", "tx";
377 pinctrl-names = "default", "sleep";
378 pinctrl-0 = <&spi2_default>;
379 pinctrl-1 = <&spi2_sleep>;
380 #address-cells = <1>;
385 blsp_spi3: spi@78b7000 {
386 compatible = "qcom,spi-qup-v2.2.1";
387 reg = <0x078b7000 0x600>;
388 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
389 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
390 <&gcc GCC_BLSP1_AHB_CLK>;
391 clock-names = "core", "iface";
392 dmas = <&blsp_dma 9>, <&blsp_dma 8>;
393 dma-names = "rx", "tx";
394 pinctrl-names = "default", "sleep";
395 pinctrl-0 = <&spi3_default>;
396 pinctrl-1 = <&spi3_sleep>;
397 #address-cells = <1>;
402 blsp_spi4: spi@78b8000 {
403 compatible = "qcom,spi-qup-v2.2.1";
404 reg = <0x078b8000 0x600>;
405 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
406 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
407 <&gcc GCC_BLSP1_AHB_CLK>;
408 clock-names = "core", "iface";
409 dmas = <&blsp_dma 11>, <&blsp_dma 10>;
410 dma-names = "rx", "tx";
411 pinctrl-names = "default", "sleep";
412 pinctrl-0 = <&spi4_default>;
413 pinctrl-1 = <&spi4_sleep>;
414 #address-cells = <1>;
419 blsp_spi5: spi@78b9000 {
420 compatible = "qcom,spi-qup-v2.2.1";
421 reg = <0x078b9000 0x600>;
422 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
423 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
424 <&gcc GCC_BLSP1_AHB_CLK>;
425 clock-names = "core", "iface";
426 dmas = <&blsp_dma 13>, <&blsp_dma 12>;
427 dma-names = "rx", "tx";
428 pinctrl-names = "default", "sleep";
429 pinctrl-0 = <&spi5_default>;
430 pinctrl-1 = <&spi5_sleep>;
431 #address-cells = <1>;
436 blsp_spi6: spi@78ba000 {
437 compatible = "qcom,spi-qup-v2.2.1";
438 reg = <0x078ba000 0x600>;
439 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
440 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
441 <&gcc GCC_BLSP1_AHB_CLK>;
442 clock-names = "core", "iface";
443 dmas = <&blsp_dma 15>, <&blsp_dma 14>;
444 dma-names = "rx", "tx";
445 pinctrl-names = "default", "sleep";
446 pinctrl-0 = <&spi6_default>;
447 pinctrl-1 = <&spi6_sleep>;
448 #address-cells = <1>;
453 blsp_i2c2: i2c@78b6000 {
454 compatible = "qcom,i2c-qup-v2.2.1";
455 reg = <0x78b6000 0x1000>;
456 interrupts = <GIC_SPI 96 0>;
457 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
458 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
459 clock-names = "iface", "core";
460 pinctrl-names = "default", "sleep";
461 pinctrl-0 = <&i2c2_default>;
462 pinctrl-1 = <&i2c2_sleep>;
463 #address-cells = <1>;
468 blsp_i2c4: i2c@78b8000 {
469 compatible = "qcom,i2c-qup-v2.2.1";
470 reg = <0x78b8000 0x1000>;
471 interrupts = <GIC_SPI 98 0>;
472 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
473 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
474 clock-names = "iface", "core";
475 pinctrl-names = "default", "sleep";
476 pinctrl-0 = <&i2c4_default>;
477 pinctrl-1 = <&i2c4_sleep>;
478 #address-cells = <1>;
483 blsp_i2c6: i2c@78ba000 {
484 compatible = "qcom,i2c-qup-v2.2.1";
485 reg = <0x78ba000 0x1000>;
486 interrupts = <GIC_SPI 100 0>;
487 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
488 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
489 clock-names = "iface", "core";
490 pinctrl-names = "default", "sleep";
491 pinctrl-0 = <&i2c6_default>;
492 pinctrl-1 = <&i2c6_sleep>;
493 #address-cells = <1>;
498 lpass: lpass@07708000 {
500 compatible = "qcom,lpass-cpu-apq8016";
501 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
502 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
503 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
504 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
505 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
506 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
507 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
509 clock-names = "ahbix-clk",
516 #sound-dai-cells = <1>;
518 interrupts = <0 160 0>;
519 interrupt-names = "lpass-irq-lpaif";
520 reg = <0x07708000 0x10000>;
521 reg-names = "lpass-lpaif";
525 compatible = "qcom,msm8916-wcd-digital-codec";
526 reg = <0x0771c000 0x400>;
527 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
528 <&gcc GCC_CODEC_DIGCODEC_CLK>;
529 clock-names = "ahbix-clk", "mclk";
530 #sound-dai-cells = <1>;
533 sdhc_1: sdhci@07824000 {
534 compatible = "qcom,sdhci-msm-v4";
535 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
536 reg-names = "hc_mem", "core_mem";
538 interrupts = <0 123 0>, <0 138 0>;
539 interrupt-names = "hc_irq", "pwr_irq";
540 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
541 <&gcc GCC_SDCC1_AHB_CLK>,
543 clock-names = "core", "iface", "xo";
550 sdhc_2: sdhci@07864000 {
551 compatible = "qcom,sdhci-msm-v4";
552 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
553 reg-names = "hc_mem", "core_mem";
555 interrupts = <0 125 0>, <0 221 0>;
556 interrupt-names = "hc_irq", "pwr_irq";
557 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
558 <&gcc GCC_SDCC2_AHB_CLK>,
560 clock-names = "core", "iface", "xo";
566 compatible = "qcom,ci-hdrc";
567 reg = <0x78d9000 0x200>,
569 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
570 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
571 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
572 <&gcc GCC_USB_HS_SYSTEM_CLK>;
573 clock-names = "iface", "core";
574 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
575 assigned-clock-rates = <80000000>;
576 resets = <&gcc GCC_USB_HS_BCR>;
577 reset-names = "core";
580 ahb-burst-config = <0>;
581 phy-names = "usb-phy";
582 phys = <&usb_hs_phy>;
588 compatible = "qcom,usb-hs-phy-msm8916",
591 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
592 clock-names = "ref", "sleep";
593 resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
594 reset-names = "phy", "por";
595 qcom,init-seq = /bits/ 8 <0x0 0x44
596 0x1 0x6b 0x2 0x24 0x3 0x13>;
601 intc: interrupt-controller@b000000 {
602 compatible = "qcom,msm-qgic2";
603 interrupt-controller;
604 #interrupt-cells = <3>;
605 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
609 #address-cells = <1>;
612 compatible = "arm,armv7-timer-mem";
613 reg = <0xb020000 0x1000>;
614 clock-frequency = <19200000>;
618 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
619 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
620 reg = <0xb021000 0x1000>,
626 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
627 reg = <0xb023000 0x1000>;
633 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
634 reg = <0xb024000 0x1000>;
640 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
641 reg = <0xb025000 0x1000>;
647 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
648 reg = <0xb026000 0x1000>;
654 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
655 reg = <0xb027000 0x1000>;
661 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
662 reg = <0xb028000 0x1000>;
667 spmi_bus: spmi@200f000 {
668 compatible = "qcom,spmi-pmic-arb";
669 reg = <0x200f000 0x001000>,
670 <0x2400000 0x400000>,
671 <0x2c00000 0x400000>,
672 <0x3800000 0x200000>,
673 <0x200a000 0x002100>;
674 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
675 interrupt-names = "periph_irq";
676 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
679 #address-cells = <2>;
681 interrupt-controller;
682 #interrupt-cells = <4>;
686 compatible = "qcom,prng";
687 reg = <0x00022000 0x200>;
688 clocks = <&gcc GCC_PRNG_AHB_CLK>;
689 clock-names = "core";
692 qfprom: qfprom@5c000 {
693 compatible = "qcom,qfprom";
694 reg = <0x5c000 0x1000>;
695 #address-cells = <1>;
697 tsens_caldata: caldata@d0 {
700 tsens_calsel: calsel@ec {
705 tsens: thermal-sensor@4a8000 {
706 compatible = "qcom,msm8916-tsens";
707 reg = <0x4a8000 0x2000>;
708 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
709 nvmem-cell-names = "calib", "calib_sel";
710 #thermal-sensor-cells = <1>;
713 apps_iommu: iommu@1ef0000 {
714 #address-cells = <1>;
717 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
718 ranges = <0 0x1e20000 0x40000>;
719 reg = <0x1ef0000 0x3000>;
720 clocks = <&gcc GCC_SMMU_CFG_CLK>,
721 <&gcc GCC_APSS_TCU_CLK>;
722 clock-names = "iface", "bus";
723 qcom,iommu-secure-id = <17>;
727 compatible = "qcom,msm-iommu-v1-ns";
728 reg = <0x4000 0x1000>;
729 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
734 compatible = "qcom,msm-iommu-v1-sec";
735 reg = <0x5000 0x1000>;
736 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
740 gpu_iommu: iommu@1f08000 {
741 #address-cells = <1>;
744 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
745 ranges = <0 0x1f08000 0x10000>;
746 clocks = <&gcc GCC_SMMU_CFG_CLK>,
747 <&gcc GCC_GFX_TCU_CLK>;
748 clock-names = "iface", "bus";
749 qcom,iommu-secure-id = <18>;
753 compatible = "qcom,msm-iommu-v1-ns";
754 reg = <0x1000 0x1000>;
755 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
760 compatible = "qcom,msm-iommu-v1-ns";
761 reg = <0x2000 0x1000>;
762 interrupts = <GIC_SPI 242 0>;
767 compatible = "qcom,adreno-306.0", "qcom,adreno";
768 reg = <0x01c00000 0x20000>;
769 reg-names = "kgsl_3d0_reg_memory";
770 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
771 interrupt-names = "kgsl_3d0_irq";
780 <&gcc GCC_OXILI_GFX3D_CLK>,
781 <&gcc GCC_OXILI_AHB_CLK>,
782 <&gcc GCC_OXILI_GMEM_CLK>,
783 <&gcc GCC_BIMC_GFX_CLK>,
784 <&gcc GCC_BIMC_GPU_CLK>,
785 <&gcc GFX3D_CLK_SRC>;
786 power-domains = <&gcc OXILI_GDSC>;
787 operating-points-v2 = <&gpu_opp_table>;
788 iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
792 compatible = "qcom,mdss";
793 reg = <0x1a00000 0x1000>,
795 reg-names = "mdss_phys", "vbif_phys";
797 power-domains = <&gcc MDSS_GDSC>;
799 clocks = <&gcc GCC_MDSS_AHB_CLK>,
800 <&gcc GCC_MDSS_AXI_CLK>,
801 <&gcc GCC_MDSS_VSYNC_CLK>;
802 clock-names = "iface_clk",
806 interrupts = <0 72 0>;
808 interrupt-controller;
809 #interrupt-cells = <1>;
811 #address-cells = <1>;
816 compatible = "qcom,mdp5";
817 reg = <0x1a01000 0x90000>;
818 reg-names = "mdp_phys";
820 interrupt-parent = <&mdss>;
823 clocks = <&gcc GCC_MDSS_AHB_CLK>,
824 <&gcc GCC_MDSS_AXI_CLK>,
825 <&gcc GCC_MDSS_MDP_CLK>,
826 <&gcc GCC_MDSS_VSYNC_CLK>;
827 clock-names = "iface_clk",
832 iommus = <&apps_iommu 4>;
835 #address-cells = <1>;
840 mdp5_intf1_out: endpoint {
841 remote-endpoint = <&dsi0_in>;
848 compatible = "qcom,mdss-dsi-ctrl";
849 reg = <0x1a98000 0x25c>;
850 reg-names = "dsi_ctrl";
852 interrupt-parent = <&mdss>;
855 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
856 <&gcc PCLK0_CLK_SRC>;
857 assigned-clock-parents = <&dsi_phy0 0>,
860 clocks = <&gcc GCC_MDSS_MDP_CLK>,
861 <&gcc GCC_MDSS_AHB_CLK>,
862 <&gcc GCC_MDSS_AXI_CLK>,
863 <&gcc GCC_MDSS_BYTE0_CLK>,
864 <&gcc GCC_MDSS_PCLK0_CLK>,
865 <&gcc GCC_MDSS_ESC0_CLK>;
866 clock-names = "mdp_core_clk",
873 phy-names = "dsi-phy";
876 #address-cells = <1>;
882 remote-endpoint = <&mdp5_intf1_out>;
894 dsi_phy0: dsi-phy@1a98300 {
895 compatible = "qcom,dsi-phy-28nm-lp";
896 reg = <0x1a98300 0xd4>,
899 reg-names = "dsi_pll",
905 clocks = <&gcc GCC_MDSS_AHB_CLK>;
906 clock-names = "iface_clk";
912 compatible = "qcom,q6v5-pil";
913 reg = <0x04080000 0x100>,
916 reg-names = "qdsp6", "rmb";
918 interrupts-extended = <&intc 0 24 1>,
919 <&hexagon_smp2p_in 0 0>,
920 <&hexagon_smp2p_in 1 0>,
921 <&hexagon_smp2p_in 2 0>,
922 <&hexagon_smp2p_in 3 0>;
923 interrupt-names = "wdog", "fatal", "ready",
924 "handover", "stop-ack";
926 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
927 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
928 <&gcc GCC_BOOT_ROM_AHB_CLK>,
930 clock-names = "iface", "bus", "mem", "xo";
932 qcom,smem-states = <&hexagon_smp2p_out 0>;
933 qcom,smem-state-names = "stop";
936 reset-names = "mss_restart";
938 cx-supply = <&pm8916_s1>;
939 mx-supply = <&pm8916_l3>;
940 pll-supply = <&pm8916_l7>;
942 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
947 memory-region = <&mba_mem>;
951 memory-region = <&mpss_mem>;
955 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
958 qcom,ipc = <&apcs 8 12>;
959 qcom,remote-pid = <1>;
965 pronto: wcnss@a21b000 {
966 compatible = "qcom,pronto-v2-pil", "qcom,pronto";
967 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
968 reg-names = "ccu", "dxe", "pmu";
970 memory-region = <&wcnss_mem>;
972 interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
973 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
974 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
975 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
976 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
977 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
979 vddmx-supply = <&pm8916_l3>;
980 vddpx-supply = <&pm8916_l7>;
982 qcom,state = <&wcnss_smp2p_out 0>;
983 qcom,state-names = "stop";
985 pinctrl-names = "default";
986 pinctrl-0 = <&wcnss_pin_a>;
991 compatible = "qcom,wcn3620";
993 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
996 vddxo-supply = <&pm8916_l7>;
997 vddrfa-supply = <&pm8916_s3>;
998 vddpa-supply = <&pm8916_l9>;
999 vdddig-supply = <&pm8916_l5>;
1003 interrupts = <0 142 1>;
1005 qcom,ipc = <&apcs 8 17>;
1006 qcom,smd-edge = <6>;
1007 qcom,remote-pid = <4>;
1012 compatible = "qcom,wcnss";
1013 qcom,smd-channels = "WCNSS_CTRL";
1015 qcom,mmio = <&pronto>;
1018 compatible = "qcom,wcnss-bt";
1022 compatible = "qcom,wcnss-wlan";
1024 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>,
1025 <0 146 IRQ_TYPE_LEVEL_HIGH>;
1026 interrupt-names = "tx", "rx";
1028 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1029 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1036 compatible = "arm,coresight-tpiu", "arm,primecell";
1037 reg = <0x820000 0x1000>;
1039 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1040 clock-names = "apb_pclk", "atclk";
1045 remote-endpoint = <&replicator_out1>;
1051 compatible = "arm,coresight-funnel", "arm,primecell";
1052 reg = <0x821000 0x1000>;
1054 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1055 clock-names = "apb_pclk", "atclk";
1058 #address-cells = <1>;
1062 * Not described input ports:
1063 * 0 - connected to Resource and Power Manger CPU ETM
1065 * 2 - connected to Modem CPU ETM
1068 * 6 - connected trought funnel to Wireless CPU ETM
1069 * 7 - connected to STM component
1074 funnel0_in4: endpoint {
1076 remote-endpoint = <&funnel1_out>;
1081 funnel0_out: endpoint {
1082 remote-endpoint = <&etf_in>;
1089 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
1090 reg = <0x824000 0x1000>;
1092 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1093 clock-names = "apb_pclk", "atclk";
1096 #address-cells = <1>;
1101 replicator_out0: endpoint {
1102 remote-endpoint = <&etr_in>;
1107 replicator_out1: endpoint {
1108 remote-endpoint = <&tpiu_in>;
1113 replicator_in: endpoint {
1115 remote-endpoint = <&etf_out>;
1122 compatible = "arm,coresight-tmc", "arm,primecell";
1123 reg = <0x825000 0x1000>;
1125 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1126 clock-names = "apb_pclk", "atclk";
1129 #address-cells = <1>;
1136 remote-endpoint = <&funnel0_out>;
1142 remote-endpoint = <&replicator_in>;
1149 compatible = "arm,coresight-tmc", "arm,primecell";
1150 reg = <0x826000 0x1000>;
1152 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1153 clock-names = "apb_pclk", "atclk";
1158 remote-endpoint = <&replicator_out0>;
1163 funnel@841000 { /* APSS funnel only 4 inputs are used */
1164 compatible = "arm,coresight-funnel", "arm,primecell";
1165 reg = <0x841000 0x1000>;
1167 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1168 clock-names = "apb_pclk", "atclk";
1171 #address-cells = <1>;
1176 funnel1_in0: endpoint {
1178 remote-endpoint = <&etm0_out>;
1183 funnel1_in1: endpoint {
1185 remote-endpoint = <&etm1_out>;
1190 funnel1_in2: endpoint {
1192 remote-endpoint = <&etm2_out>;
1197 funnel1_in3: endpoint {
1199 remote-endpoint = <&etm3_out>;
1204 funnel1_out: endpoint {
1205 remote-endpoint = <&funnel0_in4>;
1212 compatible = "arm,coresight-cpu-debug","arm,primecell";
1213 reg = <0x850000 0x1000>;
1214 clocks = <&rpmcc RPM_QDSS_CLK>;
1215 clock-names = "apb_pclk";
1220 compatible = "arm,coresight-cpu-debug","arm,primecell";
1221 reg = <0x852000 0x1000>;
1222 clocks = <&rpmcc RPM_QDSS_CLK>;
1223 clock-names = "apb_pclk";
1228 compatible = "arm,coresight-cpu-debug","arm,primecell";
1229 reg = <0x854000 0x1000>;
1230 clocks = <&rpmcc RPM_QDSS_CLK>;
1231 clock-names = "apb_pclk";
1236 compatible = "arm,coresight-cpu-debug","arm,primecell";
1237 reg = <0x856000 0x1000>;
1238 clocks = <&rpmcc RPM_QDSS_CLK>;
1239 clock-names = "apb_pclk";
1244 compatible = "arm,coresight-etm4x", "arm,primecell";
1245 reg = <0x85c000 0x1000>;
1247 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1248 clock-names = "apb_pclk", "atclk";
1253 etm0_out: endpoint {
1254 remote-endpoint = <&funnel1_in0>;
1260 compatible = "arm,coresight-etm4x", "arm,primecell";
1261 reg = <0x85d000 0x1000>;
1263 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1264 clock-names = "apb_pclk", "atclk";
1269 etm1_out: endpoint {
1270 remote-endpoint = <&funnel1_in1>;
1276 compatible = "arm,coresight-etm4x", "arm,primecell";
1277 reg = <0x85e000 0x1000>;
1279 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1280 clock-names = "apb_pclk", "atclk";
1285 etm2_out: endpoint {
1286 remote-endpoint = <&funnel1_in2>;
1292 compatible = "arm,coresight-etm4x", "arm,primecell";
1293 reg = <0x85f000 0x1000>;
1295 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1296 clock-names = "apb_pclk", "atclk";
1301 etm3_out: endpoint {
1302 remote-endpoint = <&funnel1_in3>;
1307 venus: video-codec@1d00000 {
1308 compatible = "qcom,msm8916-venus";
1309 reg = <0x01d00000 0xff000>;
1310 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1311 power-domains = <&gcc VENUS_GDSC>;
1312 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
1313 <&gcc GCC_VENUS0_AHB_CLK>,
1314 <&gcc GCC_VENUS0_AXI_CLK>;
1315 clock-names = "core", "iface", "bus";
1316 iommus = <&apps_iommu 5>;
1317 memory-region = <&venus_mem>;
1321 compatible = "venus-decoder";
1325 compatible = "venus-encoder";
1331 compatible = "qcom,smd";
1334 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
1335 qcom,ipc = <&apcs 8 0>;
1336 qcom,smd-edge = <15>;
1339 compatible = "qcom,rpm-msm8916";
1340 qcom,smd-channels = "rpm_requests";
1343 compatible = "qcom,rpmcc-msm8916";
1347 smd_rpm_regulators: pm8916-regulators {
1348 compatible = "qcom,rpm-pm8916-regulators";
1378 compatible = "qcom,smp2p";
1379 qcom,smem = <435>, <428>;
1381 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
1383 qcom,ipc = <&apcs 8 14>;
1385 qcom,local-pid = <0>;
1386 qcom,remote-pid = <1>;
1388 hexagon_smp2p_out: master-kernel {
1389 qcom,entry-name = "master-kernel";
1391 #qcom,smem-state-cells = <1>;
1394 hexagon_smp2p_in: slave-kernel {
1395 qcom,entry-name = "slave-kernel";
1397 interrupt-controller;
1398 #interrupt-cells = <2>;
1403 compatible = "qcom,smp2p";
1404 qcom,smem = <451>, <431>;
1406 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
1408 qcom,ipc = <&apcs 8 18>;
1410 qcom,local-pid = <0>;
1411 qcom,remote-pid = <4>;
1413 wcnss_smp2p_out: master-kernel {
1414 qcom,entry-name = "master-kernel";
1416 #qcom,smem-state-cells = <1>;
1419 wcnss_smp2p_in: slave-kernel {
1420 qcom,entry-name = "slave-kernel";
1422 interrupt-controller;
1423 #interrupt-cells = <2>;
1428 compatible = "qcom,smsm";
1430 #address-cells = <1>;
1433 qcom,ipc-1 = <&apcs 0 13>;
1434 qcom,ipc-6 = <&apcs 0 19>;
1439 #qcom,smem-state-cells = <1>;
1442 hexagon_smsm: hexagon@1 {
1444 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
1446 interrupt-controller;
1447 #interrupt-cells = <2>;
1450 wcnss_smsm: wcnss@6 {
1452 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
1454 interrupt-controller;
1455 #interrupt-cells = <2>;
1460 #include "msm8916-pins.dtsi"