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 compatible = "qcom,rmtfs-mem";
73 reg = <0x0 0x86700000 0x0 0xe0000>;
80 reg = <0x0 0x867e0000 0x0 0x20000>;
84 mpss_mem: mpss@86800000 {
85 reg = <0x0 0x86800000 0x0 0x2b00000>;
89 wcnss_mem: wcnss@89300000 {
90 reg = <0x0 0x89300000 0x0 0x600000>;
94 venus_mem: venus@89900000 {
95 reg = <0x0 0x89900000 0x0 0x600000>;
99 mba_mem: mba@8ea00000 {
101 reg = <0 0x8ea00000 0 0x100000>;
106 #address-cells = <1>;
111 compatible = "arm,cortex-a53", "arm,armv8";
113 next-level-cache = <&L2_0>;
114 enable-method = "psci";
115 cpu-idle-states = <&CPU_SPC>;
120 compatible = "arm,cortex-a53", "arm,armv8";
122 next-level-cache = <&L2_0>;
123 enable-method = "psci";
124 cpu-idle-states = <&CPU_SPC>;
129 compatible = "arm,cortex-a53", "arm,armv8";
131 next-level-cache = <&L2_0>;
132 enable-method = "psci";
133 cpu-idle-states = <&CPU_SPC>;
138 compatible = "arm,cortex-a53", "arm,armv8";
140 next-level-cache = <&L2_0>;
141 enable-method = "psci";
142 cpu-idle-states = <&CPU_SPC>;
146 compatible = "cache";
152 compatible = "arm,idle-state";
153 arm,psci-suspend-param = <0x40000002>;
154 entry-latency-us = <130>;
155 exit-latency-us = <150>;
156 min-residency-us = <2000>;
163 compatible = "arm,psci-1.0";
168 compatible = "arm,cortex-a53-pmu";
169 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>;
174 polling-delay-passive = <250>;
175 polling-delay = <1000>;
177 thermal-sensors = <&tsens 4>;
181 temperature = <75000>;
186 temperature = <110000>;
194 polling-delay-passive = <250>;
195 polling-delay = <1000>;
197 thermal-sensors = <&tsens 3>;
201 temperature = <75000>;
206 temperature = <110000>;
215 gpu_opp_table: opp_table {
216 compatible = "operating-points-v2";
219 opp-hz = /bits/ 64 <400000000>;
222 opp-hz = /bits/ 64 <19200000>;
227 compatible = "arm,armv8-timer";
228 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
229 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
230 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
231 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
236 compatible = "fixed-clock";
238 clock-frequency = <19200000>;
241 sleep_clk: sleep_clk {
242 compatible = "fixed-clock";
244 clock-frequency = <32768>;
249 compatible = "qcom,smem";
251 memory-region = <&smem_mem>;
252 qcom,rpm-msg-ram = <&rpm_msg_ram>;
254 hwlocks = <&tcsr_mutex 3>;
259 compatible = "qcom,scm";
260 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
261 clock-names = "core", "bus", "iface";
264 qcom,dload-mode = <&tcsr 0x6100>;
269 #address-cells = <1>;
271 ranges = <0 0 0 0xffffffff>;
272 compatible = "simple-bus";
275 compatible = "qcom,pshold";
276 reg = <0x4ab000 0x4>;
279 msmgpio: pinctrl@1000000 {
280 compatible = "qcom,msm8916-pinctrl";
281 reg = <0x1000000 0x300000>;
282 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
285 interrupt-controller;
286 #interrupt-cells = <2>;
289 gcc: clock-controller@1800000 {
290 compatible = "qcom,gcc-msm8916";
293 #power-domain-cells = <1>;
294 reg = <0x1800000 0x80000>;
297 tcsr_mutex_regs: syscon@1905000 {
298 compatible = "syscon";
299 reg = <0x1905000 0x20000>;
302 tcsr: syscon@1937000 {
303 compatible = "qcom,tcsr-msm8916", "syscon";
304 reg = <0x1937000 0x30000>;
308 compatible = "qcom,tcsr-mutex";
309 syscon = <&tcsr_mutex_regs 0 0x1000>;
313 rpm_msg_ram: memory@60000 {
314 compatible = "qcom,rpm-msg-ram";
315 reg = <0x60000 0x8000>;
318 blsp1_uart1: serial@78af000 {
319 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
320 reg = <0x78af000 0x200>;
321 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
322 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
323 clock-names = "core", "iface";
324 dmas = <&blsp_dma 1>, <&blsp_dma 0>;
325 dma-names = "rx", "tx";
329 apcs: syscon@b011000 {
330 compatible = "syscon";
331 reg = <0x0b011000 0x1000>;
334 blsp1_uart2: serial@78b0000 {
335 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
336 reg = <0x78b0000 0x200>;
337 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
338 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
339 clock-names = "core", "iface";
340 dmas = <&blsp_dma 3>, <&blsp_dma 2>;
341 dma-names = "rx", "tx";
345 blsp_dma: dma@7884000 {
346 compatible = "qcom,bam-v1.7.0";
347 reg = <0x07884000 0x23000>;
348 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
349 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
350 clock-names = "bam_clk";
356 blsp_spi1: spi@78b5000 {
357 compatible = "qcom,spi-qup-v2.2.1";
358 reg = <0x078b5000 0x600>;
359 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
360 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
361 <&gcc GCC_BLSP1_AHB_CLK>;
362 clock-names = "core", "iface";
363 dmas = <&blsp_dma 5>, <&blsp_dma 4>;
364 dma-names = "rx", "tx";
365 pinctrl-names = "default", "sleep";
366 pinctrl-0 = <&spi1_default>;
367 pinctrl-1 = <&spi1_sleep>;
368 #address-cells = <1>;
373 blsp_spi2: spi@78b6000 {
374 compatible = "qcom,spi-qup-v2.2.1";
375 reg = <0x078b6000 0x600>;
376 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
377 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
378 <&gcc GCC_BLSP1_AHB_CLK>;
379 clock-names = "core", "iface";
380 dmas = <&blsp_dma 7>, <&blsp_dma 6>;
381 dma-names = "rx", "tx";
382 pinctrl-names = "default", "sleep";
383 pinctrl-0 = <&spi2_default>;
384 pinctrl-1 = <&spi2_sleep>;
385 #address-cells = <1>;
390 blsp_spi3: spi@78b7000 {
391 compatible = "qcom,spi-qup-v2.2.1";
392 reg = <0x078b7000 0x600>;
393 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
394 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
395 <&gcc GCC_BLSP1_AHB_CLK>;
396 clock-names = "core", "iface";
397 dmas = <&blsp_dma 9>, <&blsp_dma 8>;
398 dma-names = "rx", "tx";
399 pinctrl-names = "default", "sleep";
400 pinctrl-0 = <&spi3_default>;
401 pinctrl-1 = <&spi3_sleep>;
402 #address-cells = <1>;
407 blsp_spi4: spi@78b8000 {
408 compatible = "qcom,spi-qup-v2.2.1";
409 reg = <0x078b8000 0x600>;
410 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
411 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
412 <&gcc GCC_BLSP1_AHB_CLK>;
413 clock-names = "core", "iface";
414 dmas = <&blsp_dma 11>, <&blsp_dma 10>;
415 dma-names = "rx", "tx";
416 pinctrl-names = "default", "sleep";
417 pinctrl-0 = <&spi4_default>;
418 pinctrl-1 = <&spi4_sleep>;
419 #address-cells = <1>;
424 blsp_spi5: spi@78b9000 {
425 compatible = "qcom,spi-qup-v2.2.1";
426 reg = <0x078b9000 0x600>;
427 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
428 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
429 <&gcc GCC_BLSP1_AHB_CLK>;
430 clock-names = "core", "iface";
431 dmas = <&blsp_dma 13>, <&blsp_dma 12>;
432 dma-names = "rx", "tx";
433 pinctrl-names = "default", "sleep";
434 pinctrl-0 = <&spi5_default>;
435 pinctrl-1 = <&spi5_sleep>;
436 #address-cells = <1>;
441 blsp_spi6: spi@78ba000 {
442 compatible = "qcom,spi-qup-v2.2.1";
443 reg = <0x078ba000 0x600>;
444 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
445 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
446 <&gcc GCC_BLSP1_AHB_CLK>;
447 clock-names = "core", "iface";
448 dmas = <&blsp_dma 15>, <&blsp_dma 14>;
449 dma-names = "rx", "tx";
450 pinctrl-names = "default", "sleep";
451 pinctrl-0 = <&spi6_default>;
452 pinctrl-1 = <&spi6_sleep>;
453 #address-cells = <1>;
458 blsp_i2c2: i2c@78b6000 {
459 compatible = "qcom,i2c-qup-v2.2.1";
460 reg = <0x78b6000 0x1000>;
461 interrupts = <GIC_SPI 96 0>;
462 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
463 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
464 clock-names = "iface", "core";
465 pinctrl-names = "default", "sleep";
466 pinctrl-0 = <&i2c2_default>;
467 pinctrl-1 = <&i2c2_sleep>;
468 #address-cells = <1>;
473 blsp_i2c4: i2c@78b8000 {
474 compatible = "qcom,i2c-qup-v2.2.1";
475 reg = <0x78b8000 0x1000>;
476 interrupts = <GIC_SPI 98 0>;
477 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
478 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
479 clock-names = "iface", "core";
480 pinctrl-names = "default", "sleep";
481 pinctrl-0 = <&i2c4_default>;
482 pinctrl-1 = <&i2c4_sleep>;
483 #address-cells = <1>;
488 blsp_i2c6: i2c@78ba000 {
489 compatible = "qcom,i2c-qup-v2.2.1";
490 reg = <0x78ba000 0x1000>;
491 interrupts = <GIC_SPI 100 0>;
492 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
493 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
494 clock-names = "iface", "core";
495 pinctrl-names = "default", "sleep";
496 pinctrl-0 = <&i2c6_default>;
497 pinctrl-1 = <&i2c6_sleep>;
498 #address-cells = <1>;
503 lpass: lpass@7708000 {
505 compatible = "qcom,lpass-cpu-apq8016";
506 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
507 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
508 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
509 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
510 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
511 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
512 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
514 clock-names = "ahbix-clk",
521 #sound-dai-cells = <1>;
523 interrupts = <0 160 0>;
524 interrupt-names = "lpass-irq-lpaif";
525 reg = <0x07708000 0x10000>;
526 reg-names = "lpass-lpaif";
530 compatible = "qcom,msm8916-wcd-digital-codec";
531 reg = <0x0771c000 0x400>;
532 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
533 <&gcc GCC_CODEC_DIGCODEC_CLK>;
534 clock-names = "ahbix-clk", "mclk";
535 #sound-dai-cells = <1>;
538 sdhc_1: sdhci@7824000 {
539 compatible = "qcom,sdhci-msm-v4";
540 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
541 reg-names = "hc_mem", "core_mem";
543 interrupts = <0 123 0>, <0 138 0>;
544 interrupt-names = "hc_irq", "pwr_irq";
545 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
546 <&gcc GCC_SDCC1_AHB_CLK>,
548 clock-names = "core", "iface", "xo";
555 sdhc_2: sdhci@7864000 {
556 compatible = "qcom,sdhci-msm-v4";
557 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
558 reg-names = "hc_mem", "core_mem";
560 interrupts = <0 125 0>, <0 221 0>;
561 interrupt-names = "hc_irq", "pwr_irq";
562 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
563 <&gcc GCC_SDCC2_AHB_CLK>,
565 clock-names = "core", "iface", "xo";
571 compatible = "qcom,ci-hdrc";
572 reg = <0x78d9000 0x200>,
574 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
575 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
576 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
577 <&gcc GCC_USB_HS_SYSTEM_CLK>;
578 clock-names = "iface", "core";
579 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
580 assigned-clock-rates = <80000000>;
581 resets = <&gcc GCC_USB_HS_BCR>;
582 reset-names = "core";
585 ahb-burst-config = <0>;
586 phy-names = "usb-phy";
587 phys = <&usb_hs_phy>;
593 compatible = "qcom,usb-hs-phy-msm8916",
596 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
597 clock-names = "ref", "sleep";
598 resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
599 reset-names = "phy", "por";
600 qcom,init-seq = /bits/ 8 <0x0 0x44
601 0x1 0x6b 0x2 0x24 0x3 0x13>;
606 intc: interrupt-controller@b000000 {
607 compatible = "qcom,msm-qgic2";
608 interrupt-controller;
609 #interrupt-cells = <3>;
610 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
614 #address-cells = <1>;
617 compatible = "arm,armv7-timer-mem";
618 reg = <0xb020000 0x1000>;
619 clock-frequency = <19200000>;
623 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
624 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
625 reg = <0xb021000 0x1000>,
631 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
632 reg = <0xb023000 0x1000>;
638 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
639 reg = <0xb024000 0x1000>;
645 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
646 reg = <0xb025000 0x1000>;
652 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
653 reg = <0xb026000 0x1000>;
659 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
660 reg = <0xb027000 0x1000>;
666 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
667 reg = <0xb028000 0x1000>;
672 spmi_bus: spmi@200f000 {
673 compatible = "qcom,spmi-pmic-arb";
674 reg = <0x200f000 0x001000>,
675 <0x2400000 0x400000>,
676 <0x2c00000 0x400000>,
677 <0x3800000 0x200000>,
678 <0x200a000 0x002100>;
679 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
680 interrupt-names = "periph_irq";
681 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
684 #address-cells = <2>;
686 interrupt-controller;
687 #interrupt-cells = <4>;
691 compatible = "qcom,prng";
692 reg = <0x00022000 0x200>;
693 clocks = <&gcc GCC_PRNG_AHB_CLK>;
694 clock-names = "core";
697 qfprom: qfprom@5c000 {
698 compatible = "qcom,qfprom";
699 reg = <0x5c000 0x1000>;
700 #address-cells = <1>;
702 tsens_caldata: caldata@d0 {
705 tsens_calsel: calsel@ec {
710 tsens: thermal-sensor@4a8000 {
711 compatible = "qcom,msm8916-tsens";
712 reg = <0x4a8000 0x2000>;
713 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
714 nvmem-cell-names = "calib", "calib_sel";
715 #thermal-sensor-cells = <1>;
718 apps_iommu: iommu@1ef0000 {
719 #address-cells = <1>;
722 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
723 ranges = <0 0x1e20000 0x40000>;
724 reg = <0x1ef0000 0x3000>;
725 clocks = <&gcc GCC_SMMU_CFG_CLK>,
726 <&gcc GCC_APSS_TCU_CLK>;
727 clock-names = "iface", "bus";
728 qcom,iommu-secure-id = <17>;
732 compatible = "qcom,msm-iommu-v1-ns";
733 reg = <0x4000 0x1000>;
734 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
739 compatible = "qcom,msm-iommu-v1-sec";
740 reg = <0x5000 0x1000>;
741 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
745 gpu_iommu: iommu@1f08000 {
746 #address-cells = <1>;
749 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
750 ranges = <0 0x1f08000 0x10000>;
751 clocks = <&gcc GCC_SMMU_CFG_CLK>,
752 <&gcc GCC_GFX_TCU_CLK>;
753 clock-names = "iface", "bus";
754 qcom,iommu-secure-id = <18>;
758 compatible = "qcom,msm-iommu-v1-ns";
759 reg = <0x1000 0x1000>;
760 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
765 compatible = "qcom,msm-iommu-v1-ns";
766 reg = <0x2000 0x1000>;
767 interrupts = <GIC_SPI 242 0>;
772 compatible = "qcom,adreno-306.0", "qcom,adreno";
773 reg = <0x01c00000 0x20000>;
774 reg-names = "kgsl_3d0_reg_memory";
775 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
776 interrupt-names = "kgsl_3d0_irq";
785 <&gcc GCC_OXILI_GFX3D_CLK>,
786 <&gcc GCC_OXILI_AHB_CLK>,
787 <&gcc GCC_OXILI_GMEM_CLK>,
788 <&gcc GCC_BIMC_GFX_CLK>,
789 <&gcc GCC_BIMC_GPU_CLK>,
790 <&gcc GFX3D_CLK_SRC>;
791 power-domains = <&gcc OXILI_GDSC>;
792 operating-points-v2 = <&gpu_opp_table>;
793 iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
797 compatible = "qcom,mdss";
798 reg = <0x1a00000 0x1000>,
800 reg-names = "mdss_phys", "vbif_phys";
802 power-domains = <&gcc MDSS_GDSC>;
804 clocks = <&gcc GCC_MDSS_AHB_CLK>,
805 <&gcc GCC_MDSS_AXI_CLK>,
806 <&gcc GCC_MDSS_VSYNC_CLK>;
807 clock-names = "iface_clk",
811 interrupts = <0 72 0>;
813 interrupt-controller;
814 #interrupt-cells = <1>;
816 #address-cells = <1>;
821 compatible = "qcom,mdp5";
822 reg = <0x1a01000 0x89000>;
823 reg-names = "mdp_phys";
825 interrupt-parent = <&mdss>;
828 clocks = <&gcc GCC_MDSS_AHB_CLK>,
829 <&gcc GCC_MDSS_AXI_CLK>,
830 <&gcc GCC_MDSS_MDP_CLK>,
831 <&gcc GCC_MDSS_VSYNC_CLK>;
832 clock-names = "iface_clk",
837 iommus = <&apps_iommu 4>;
840 #address-cells = <1>;
845 mdp5_intf1_out: endpoint {
846 remote-endpoint = <&dsi0_in>;
853 compatible = "qcom,mdss-dsi-ctrl";
854 reg = <0x1a98000 0x25c>;
855 reg-names = "dsi_ctrl";
857 interrupt-parent = <&mdss>;
860 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
861 <&gcc PCLK0_CLK_SRC>;
862 assigned-clock-parents = <&dsi_phy0 0>,
865 clocks = <&gcc GCC_MDSS_MDP_CLK>,
866 <&gcc GCC_MDSS_AHB_CLK>,
867 <&gcc GCC_MDSS_AXI_CLK>,
868 <&gcc GCC_MDSS_BYTE0_CLK>,
869 <&gcc GCC_MDSS_PCLK0_CLK>,
870 <&gcc GCC_MDSS_ESC0_CLK>;
871 clock-names = "mdp_core_clk",
878 phy-names = "dsi-phy";
881 #address-cells = <1>;
887 remote-endpoint = <&mdp5_intf1_out>;
899 dsi_phy0: dsi-phy@1a98300 {
900 compatible = "qcom,dsi-phy-28nm-lp";
901 reg = <0x1a98300 0xd4>,
904 reg-names = "dsi_pll",
911 clocks = <&gcc GCC_MDSS_AHB_CLK>;
912 clock-names = "iface_clk";
918 compatible = "qcom,q6v5-pil";
919 reg = <0x04080000 0x100>,
922 reg-names = "qdsp6", "rmb";
924 interrupts-extended = <&intc 0 24 1>,
925 <&hexagon_smp2p_in 0 0>,
926 <&hexagon_smp2p_in 1 0>,
927 <&hexagon_smp2p_in 2 0>,
928 <&hexagon_smp2p_in 3 0>;
929 interrupt-names = "wdog", "fatal", "ready",
930 "handover", "stop-ack";
932 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
933 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
934 <&gcc GCC_BOOT_ROM_AHB_CLK>,
936 clock-names = "iface", "bus", "mem", "xo";
938 qcom,smem-states = <&hexagon_smp2p_out 0>;
939 qcom,smem-state-names = "stop";
942 reset-names = "mss_restart";
944 cx-supply = <&pm8916_s1>;
945 mx-supply = <&pm8916_l3>;
946 pll-supply = <&pm8916_l7>;
948 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
953 memory-region = <&mba_mem>;
957 memory-region = <&mpss_mem>;
961 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
964 qcom,ipc = <&apcs 8 12>;
965 qcom,remote-pid = <1>;
971 pronto: wcnss@a21b000 {
972 compatible = "qcom,pronto-v2-pil", "qcom,pronto";
973 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
974 reg-names = "ccu", "dxe", "pmu";
976 memory-region = <&wcnss_mem>;
978 interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
979 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
980 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
981 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
982 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
983 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
985 vddmx-supply = <&pm8916_l3>;
986 vddpx-supply = <&pm8916_l7>;
988 qcom,state = <&wcnss_smp2p_out 0>;
989 qcom,state-names = "stop";
991 pinctrl-names = "default";
992 pinctrl-0 = <&wcnss_pin_a>;
997 compatible = "qcom,wcn3620";
999 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1002 vddxo-supply = <&pm8916_l7>;
1003 vddrfa-supply = <&pm8916_s3>;
1004 vddpa-supply = <&pm8916_l9>;
1005 vdddig-supply = <&pm8916_l5>;
1009 interrupts = <0 142 1>;
1011 qcom,ipc = <&apcs 8 17>;
1012 qcom,smd-edge = <6>;
1013 qcom,remote-pid = <4>;
1018 compatible = "qcom,wcnss";
1019 qcom,smd-channels = "WCNSS_CTRL";
1021 qcom,mmio = <&pronto>;
1024 compatible = "qcom,wcnss-bt";
1028 compatible = "qcom,wcnss-wlan";
1030 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>,
1031 <0 146 IRQ_TYPE_LEVEL_HIGH>;
1032 interrupt-names = "tx", "rx";
1034 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1035 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1042 compatible = "arm,coresight-tpiu", "arm,primecell";
1043 reg = <0x820000 0x1000>;
1045 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1046 clock-names = "apb_pclk", "atclk";
1051 remote-endpoint = <&replicator_out1>;
1057 compatible = "arm,coresight-funnel", "arm,primecell";
1058 reg = <0x821000 0x1000>;
1060 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1061 clock-names = "apb_pclk", "atclk";
1064 #address-cells = <1>;
1068 * Not described input ports:
1069 * 0 - connected to Resource and Power Manger CPU ETM
1071 * 2 - connected to Modem CPU ETM
1074 * 6 - connected trought funnel to Wireless CPU ETM
1075 * 7 - connected to STM component
1080 funnel0_in4: endpoint {
1082 remote-endpoint = <&funnel1_out>;
1087 funnel0_out: endpoint {
1088 remote-endpoint = <&etf_in>;
1095 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
1096 reg = <0x824000 0x1000>;
1098 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1099 clock-names = "apb_pclk", "atclk";
1102 #address-cells = <1>;
1107 replicator_out0: endpoint {
1108 remote-endpoint = <&etr_in>;
1113 replicator_out1: endpoint {
1114 remote-endpoint = <&tpiu_in>;
1119 replicator_in: endpoint {
1121 remote-endpoint = <&etf_out>;
1128 compatible = "arm,coresight-tmc", "arm,primecell";
1129 reg = <0x825000 0x1000>;
1131 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1132 clock-names = "apb_pclk", "atclk";
1135 #address-cells = <1>;
1142 remote-endpoint = <&funnel0_out>;
1148 remote-endpoint = <&replicator_in>;
1155 compatible = "arm,coresight-tmc", "arm,primecell";
1156 reg = <0x826000 0x1000>;
1158 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1159 clock-names = "apb_pclk", "atclk";
1164 remote-endpoint = <&replicator_out0>;
1169 funnel@841000 { /* APSS funnel only 4 inputs are used */
1170 compatible = "arm,coresight-funnel", "arm,primecell";
1171 reg = <0x841000 0x1000>;
1173 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1174 clock-names = "apb_pclk", "atclk";
1177 #address-cells = <1>;
1182 funnel1_in0: endpoint {
1184 remote-endpoint = <&etm0_out>;
1189 funnel1_in1: endpoint {
1191 remote-endpoint = <&etm1_out>;
1196 funnel1_in2: endpoint {
1198 remote-endpoint = <&etm2_out>;
1203 funnel1_in3: endpoint {
1205 remote-endpoint = <&etm3_out>;
1210 funnel1_out: endpoint {
1211 remote-endpoint = <&funnel0_in4>;
1218 compatible = "arm,coresight-cpu-debug","arm,primecell";
1219 reg = <0x850000 0x1000>;
1220 clocks = <&rpmcc RPM_QDSS_CLK>;
1221 clock-names = "apb_pclk";
1226 compatible = "arm,coresight-cpu-debug","arm,primecell";
1227 reg = <0x852000 0x1000>;
1228 clocks = <&rpmcc RPM_QDSS_CLK>;
1229 clock-names = "apb_pclk";
1234 compatible = "arm,coresight-cpu-debug","arm,primecell";
1235 reg = <0x854000 0x1000>;
1236 clocks = <&rpmcc RPM_QDSS_CLK>;
1237 clock-names = "apb_pclk";
1242 compatible = "arm,coresight-cpu-debug","arm,primecell";
1243 reg = <0x856000 0x1000>;
1244 clocks = <&rpmcc RPM_QDSS_CLK>;
1245 clock-names = "apb_pclk";
1250 compatible = "arm,coresight-etm4x", "arm,primecell";
1251 reg = <0x85c000 0x1000>;
1253 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1254 clock-names = "apb_pclk", "atclk";
1259 etm0_out: endpoint {
1260 remote-endpoint = <&funnel1_in0>;
1266 compatible = "arm,coresight-etm4x", "arm,primecell";
1267 reg = <0x85d000 0x1000>;
1269 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1270 clock-names = "apb_pclk", "atclk";
1275 etm1_out: endpoint {
1276 remote-endpoint = <&funnel1_in1>;
1282 compatible = "arm,coresight-etm4x", "arm,primecell";
1283 reg = <0x85e000 0x1000>;
1285 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1286 clock-names = "apb_pclk", "atclk";
1291 etm2_out: endpoint {
1292 remote-endpoint = <&funnel1_in2>;
1298 compatible = "arm,coresight-etm4x", "arm,primecell";
1299 reg = <0x85f000 0x1000>;
1301 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1302 clock-names = "apb_pclk", "atclk";
1307 etm3_out: endpoint {
1308 remote-endpoint = <&funnel1_in3>;
1313 venus: video-codec@1d00000 {
1314 compatible = "qcom,msm8916-venus";
1315 reg = <0x01d00000 0xff000>;
1316 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1317 power-domains = <&gcc VENUS_GDSC>;
1318 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
1319 <&gcc GCC_VENUS0_AHB_CLK>,
1320 <&gcc GCC_VENUS0_AXI_CLK>;
1321 clock-names = "core", "iface", "bus";
1322 iommus = <&apps_iommu 5>;
1323 memory-region = <&venus_mem>;
1327 compatible = "venus-decoder";
1331 compatible = "venus-encoder";
1337 compatible = "qcom,smd";
1340 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
1341 qcom,ipc = <&apcs 8 0>;
1342 qcom,smd-edge = <15>;
1345 compatible = "qcom,rpm-msm8916";
1346 qcom,smd-channels = "rpm_requests";
1349 compatible = "qcom,rpmcc-msm8916";
1353 smd_rpm_regulators: pm8916-regulators {
1354 compatible = "qcom,rpm-pm8916-regulators";
1384 compatible = "qcom,smp2p";
1385 qcom,smem = <435>, <428>;
1387 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
1389 qcom,ipc = <&apcs 8 14>;
1391 qcom,local-pid = <0>;
1392 qcom,remote-pid = <1>;
1394 hexagon_smp2p_out: master-kernel {
1395 qcom,entry-name = "master-kernel";
1397 #qcom,smem-state-cells = <1>;
1400 hexagon_smp2p_in: slave-kernel {
1401 qcom,entry-name = "slave-kernel";
1403 interrupt-controller;
1404 #interrupt-cells = <2>;
1409 compatible = "qcom,smp2p";
1410 qcom,smem = <451>, <431>;
1412 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
1414 qcom,ipc = <&apcs 8 18>;
1416 qcom,local-pid = <0>;
1417 qcom,remote-pid = <4>;
1419 wcnss_smp2p_out: master-kernel {
1420 qcom,entry-name = "master-kernel";
1422 #qcom,smem-state-cells = <1>;
1425 wcnss_smp2p_in: slave-kernel {
1426 qcom,entry-name = "slave-kernel";
1428 interrupt-controller;
1429 #interrupt-cells = <2>;
1434 compatible = "qcom,smsm";
1436 #address-cells = <1>;
1439 qcom,ipc-1 = <&apcs 0 13>;
1440 qcom,ipc-6 = <&apcs 0 19>;
1445 #qcom,smem-state-cells = <1>;
1448 hexagon_smsm: hexagon@1 {
1450 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
1452 interrupt-controller;
1453 #interrupt-cells = <2>;
1456 wcnss_smsm: wcnss@6 {
1458 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
1460 interrupt-controller;
1461 #interrupt-cells = <2>;
1466 #include "msm8916-pins.dtsi"