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 mba_mem: mba@8ea00000 {
93 reg = <0 0x8ea00000 0 0x100000>;
103 compatible = "arm,cortex-a53", "arm,armv8";
105 next-level-cache = <&L2_0>;
106 enable-method = "psci";
107 cpu-idle-states = <&CPU_SPC>;
112 compatible = "arm,cortex-a53", "arm,armv8";
114 next-level-cache = <&L2_0>;
115 enable-method = "psci";
116 cpu-idle-states = <&CPU_SPC>;
121 compatible = "arm,cortex-a53", "arm,armv8";
123 next-level-cache = <&L2_0>;
124 enable-method = "psci";
125 cpu-idle-states = <&CPU_SPC>;
130 compatible = "arm,cortex-a53", "arm,armv8";
132 next-level-cache = <&L2_0>;
133 enable-method = "psci";
134 cpu-idle-states = <&CPU_SPC>;
138 compatible = "cache";
144 compatible = "arm,idle-state";
145 arm,psci-suspend-param = <0x40000002>;
146 entry-latency-us = <130>;
147 exit-latency-us = <150>;
148 min-residency-us = <2000>;
155 compatible = "arm,psci-1.0";
160 compatible = "arm,cortex-a53-pmu";
161 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>;
166 polling-delay-passive = <250>;
167 polling-delay = <1000>;
169 thermal-sensors = <&tsens 4>;
173 temperature = <75000>;
178 temperature = <110000>;
186 polling-delay-passive = <250>;
187 polling-delay = <1000>;
189 thermal-sensors = <&tsens 3>;
193 temperature = <75000>;
198 temperature = <110000>;
208 compatible = "arm,armv8-timer";
209 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
210 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
211 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
212 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
217 compatible = "fixed-clock";
219 clock-frequency = <19200000>;
222 sleep_clk: sleep_clk {
223 compatible = "fixed-clock";
225 clock-frequency = <32768>;
230 compatible = "qcom,smem";
232 memory-region = <&smem_mem>;
233 qcom,rpm-msg-ram = <&rpm_msg_ram>;
235 hwlocks = <&tcsr_mutex 3>;
240 compatible = "qcom,scm";
241 clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
242 clock-names = "core", "bus", "iface";
248 #address-cells = <1>;
250 ranges = <0 0 0 0xffffffff>;
251 compatible = "simple-bus";
254 compatible = "qcom,pshold";
255 reg = <0x4ab000 0x4>;
258 msmgpio: pinctrl@1000000 {
259 compatible = "qcom,msm8916-pinctrl";
260 reg = <0x1000000 0x300000>;
261 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
264 interrupt-controller;
265 #interrupt-cells = <2>;
268 gcc: clock-controller@1800000 {
269 compatible = "qcom,gcc-msm8916";
272 #power-domain-cells = <1>;
273 reg = <0x1800000 0x80000>;
276 tcsr_mutex_regs: syscon@1905000 {
277 compatible = "syscon";
278 reg = <0x1905000 0x20000>;
281 tcsr: syscon@1937000 {
282 compatible = "qcom,tcsr-msm8916", "syscon";
283 reg = <0x1937000 0x30000>;
287 compatible = "qcom,tcsr-mutex";
288 syscon = <&tcsr_mutex_regs 0 0x1000>;
292 rpm_msg_ram: memory@60000 {
293 compatible = "qcom,rpm-msg-ram";
294 reg = <0x60000 0x8000>;
297 blsp1_uart1: serial@78af000 {
298 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
299 reg = <0x78af000 0x200>;
300 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
301 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
302 clock-names = "core", "iface";
303 dmas = <&blsp_dma 1>, <&blsp_dma 0>;
304 dma-names = "rx", "tx";
308 apcs: syscon@b011000 {
309 compatible = "syscon";
310 reg = <0x0b011000 0x1000>;
313 blsp1_uart2: serial@78b0000 {
314 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
315 reg = <0x78b0000 0x200>;
316 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
317 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
318 clock-names = "core", "iface";
319 dmas = <&blsp_dma 3>, <&blsp_dma 2>;
320 dma-names = "rx", "tx";
324 blsp_dma: dma@7884000 {
325 compatible = "qcom,bam-v1.7.0";
326 reg = <0x07884000 0x23000>;
327 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
328 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
329 clock-names = "bam_clk";
335 blsp_spi1: spi@78b5000 {
336 compatible = "qcom,spi-qup-v2.2.1";
337 reg = <0x078b5000 0x600>;
338 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
339 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
340 <&gcc GCC_BLSP1_AHB_CLK>;
341 clock-names = "core", "iface";
342 dmas = <&blsp_dma 5>, <&blsp_dma 4>;
343 dma-names = "rx", "tx";
344 pinctrl-names = "default", "sleep";
345 pinctrl-0 = <&spi1_default>;
346 pinctrl-1 = <&spi1_sleep>;
347 #address-cells = <1>;
352 blsp_spi2: spi@78b6000 {
353 compatible = "qcom,spi-qup-v2.2.1";
354 reg = <0x078b6000 0x600>;
355 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
356 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
357 <&gcc GCC_BLSP1_AHB_CLK>;
358 clock-names = "core", "iface";
359 dmas = <&blsp_dma 7>, <&blsp_dma 6>;
360 dma-names = "rx", "tx";
361 pinctrl-names = "default", "sleep";
362 pinctrl-0 = <&spi2_default>;
363 pinctrl-1 = <&spi2_sleep>;
364 #address-cells = <1>;
369 blsp_spi3: spi@78b7000 {
370 compatible = "qcom,spi-qup-v2.2.1";
371 reg = <0x078b7000 0x600>;
372 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
373 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
374 <&gcc GCC_BLSP1_AHB_CLK>;
375 clock-names = "core", "iface";
376 dmas = <&blsp_dma 9>, <&blsp_dma 8>;
377 dma-names = "rx", "tx";
378 pinctrl-names = "default", "sleep";
379 pinctrl-0 = <&spi3_default>;
380 pinctrl-1 = <&spi3_sleep>;
381 #address-cells = <1>;
386 blsp_spi4: spi@78b8000 {
387 compatible = "qcom,spi-qup-v2.2.1";
388 reg = <0x078b8000 0x600>;
389 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
390 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
391 <&gcc GCC_BLSP1_AHB_CLK>;
392 clock-names = "core", "iface";
393 dmas = <&blsp_dma 11>, <&blsp_dma 10>;
394 dma-names = "rx", "tx";
395 pinctrl-names = "default", "sleep";
396 pinctrl-0 = <&spi4_default>;
397 pinctrl-1 = <&spi4_sleep>;
398 #address-cells = <1>;
403 blsp_spi5: spi@78b9000 {
404 compatible = "qcom,spi-qup-v2.2.1";
405 reg = <0x078b9000 0x600>;
406 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
407 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
408 <&gcc GCC_BLSP1_AHB_CLK>;
409 clock-names = "core", "iface";
410 dmas = <&blsp_dma 13>, <&blsp_dma 12>;
411 dma-names = "rx", "tx";
412 pinctrl-names = "default", "sleep";
413 pinctrl-0 = <&spi5_default>;
414 pinctrl-1 = <&spi5_sleep>;
415 #address-cells = <1>;
420 blsp_spi6: spi@78ba000 {
421 compatible = "qcom,spi-qup-v2.2.1";
422 reg = <0x078ba000 0x600>;
423 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
424 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
425 <&gcc GCC_BLSP1_AHB_CLK>;
426 clock-names = "core", "iface";
427 dmas = <&blsp_dma 15>, <&blsp_dma 14>;
428 dma-names = "rx", "tx";
429 pinctrl-names = "default", "sleep";
430 pinctrl-0 = <&spi6_default>;
431 pinctrl-1 = <&spi6_sleep>;
432 #address-cells = <1>;
437 blsp_i2c2: i2c@78b6000 {
438 compatible = "qcom,i2c-qup-v2.2.1";
439 reg = <0x78b6000 0x1000>;
440 interrupts = <GIC_SPI 96 0>;
441 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
442 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
443 clock-names = "iface", "core";
444 pinctrl-names = "default", "sleep";
445 pinctrl-0 = <&i2c2_default>;
446 pinctrl-1 = <&i2c2_sleep>;
447 #address-cells = <1>;
452 blsp_i2c4: i2c@78b8000 {
453 compatible = "qcom,i2c-qup-v2.2.1";
454 reg = <0x78b8000 0x1000>;
455 interrupts = <GIC_SPI 98 0>;
456 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
457 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
458 clock-names = "iface", "core";
459 pinctrl-names = "default", "sleep";
460 pinctrl-0 = <&i2c4_default>;
461 pinctrl-1 = <&i2c4_sleep>;
462 #address-cells = <1>;
467 blsp_i2c6: i2c@78ba000 {
468 compatible = "qcom,i2c-qup-v2.2.1";
469 reg = <0x78ba000 0x1000>;
470 interrupts = <GIC_SPI 100 0>;
471 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
472 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
473 clock-names = "iface", "core";
474 pinctrl-names = "default", "sleep";
475 pinctrl-0 = <&i2c6_default>;
476 pinctrl-1 = <&i2c6_sleep>;
477 #address-cells = <1>;
482 lpass: lpass@07708000 {
484 compatible = "qcom,lpass-cpu-apq8016";
485 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
486 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
487 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
488 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
489 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
490 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
491 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
493 clock-names = "ahbix-clk",
500 #sound-dai-cells = <1>;
502 interrupts = <0 160 0>;
503 interrupt-names = "lpass-irq-lpaif";
504 reg = <0x07708000 0x10000>;
505 reg-names = "lpass-lpaif";
509 compatible = "qcom,msm8916-wcd-digital-codec";
510 reg = <0x0771c000 0x400>;
511 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
512 <&gcc GCC_CODEC_DIGCODEC_CLK>;
513 clock-names = "ahbix-clk", "mclk";
514 #sound-dai-cells = <1>;
517 sdhc_1: sdhci@07824000 {
518 compatible = "qcom,sdhci-msm-v4";
519 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
520 reg-names = "hc_mem", "core_mem";
522 interrupts = <0 123 0>, <0 138 0>;
523 interrupt-names = "hc_irq", "pwr_irq";
524 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
525 <&gcc GCC_SDCC1_AHB_CLK>,
527 clock-names = "core", "iface", "xo";
534 sdhc_2: sdhci@07864000 {
535 compatible = "qcom,sdhci-msm-v4";
536 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
537 reg-names = "hc_mem", "core_mem";
539 interrupts = <0 125 0>, <0 221 0>;
540 interrupt-names = "hc_irq", "pwr_irq";
541 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
542 <&gcc GCC_SDCC2_AHB_CLK>,
544 clock-names = "core", "iface", "xo";
550 compatible = "qcom,ci-hdrc";
551 reg = <0x78d9000 0x200>,
553 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
554 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
555 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
556 <&gcc GCC_USB_HS_SYSTEM_CLK>;
557 clock-names = "iface", "core";
558 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
559 assigned-clock-rates = <80000000>;
560 resets = <&gcc GCC_USB_HS_BCR>;
561 reset-names = "core";
564 ahb-burst-config = <0>;
565 phy-names = "usb-phy";
566 phys = <&usb_hs_phy>;
572 compatible = "qcom,usb-hs-phy-msm8916",
575 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
576 clock-names = "ref", "sleep";
577 resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
578 reset-names = "phy", "por";
579 qcom,init-seq = /bits/ 8 <0x0 0x44
580 0x1 0x6b 0x2 0x24 0x3 0x13>;
585 intc: interrupt-controller@b000000 {
586 compatible = "qcom,msm-qgic2";
587 interrupt-controller;
588 #interrupt-cells = <3>;
589 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
593 #address-cells = <1>;
596 compatible = "arm,armv7-timer-mem";
597 reg = <0xb020000 0x1000>;
598 clock-frequency = <19200000>;
602 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
603 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
604 reg = <0xb021000 0x1000>,
610 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
611 reg = <0xb023000 0x1000>;
617 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
618 reg = <0xb024000 0x1000>;
624 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
625 reg = <0xb025000 0x1000>;
631 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
632 reg = <0xb026000 0x1000>;
638 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
639 reg = <0xb027000 0x1000>;
645 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
646 reg = <0xb028000 0x1000>;
651 spmi_bus: spmi@200f000 {
652 compatible = "qcom,spmi-pmic-arb";
653 reg = <0x200f000 0x001000>,
654 <0x2400000 0x400000>,
655 <0x2c00000 0x400000>,
656 <0x3800000 0x200000>,
657 <0x200a000 0x002100>;
658 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
659 interrupt-names = "periph_irq";
660 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
663 #address-cells = <2>;
665 interrupt-controller;
666 #interrupt-cells = <4>;
670 compatible = "qcom,prng";
671 reg = <0x00022000 0x200>;
672 clocks = <&gcc GCC_PRNG_AHB_CLK>;
673 clock-names = "core";
676 qfprom: qfprom@5c000 {
677 compatible = "qcom,qfprom";
678 reg = <0x5c000 0x1000>;
679 #address-cells = <1>;
681 tsens_caldata: caldata@d0 {
684 tsens_calsel: calsel@ec {
689 tsens: thermal-sensor@4a8000 {
690 compatible = "qcom,msm8916-tsens";
691 reg = <0x4a8000 0x2000>;
692 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
693 nvmem-cell-names = "calib", "calib_sel";
694 #thermal-sensor-cells = <1>;
698 compatible = "qcom,mdss";
699 reg = <0x1a00000 0x1000>,
701 reg-names = "mdss_phys", "vbif_phys";
703 power-domains = <&gcc MDSS_GDSC>;
705 clocks = <&gcc GCC_MDSS_AHB_CLK>,
706 <&gcc GCC_MDSS_AXI_CLK>,
707 <&gcc GCC_MDSS_VSYNC_CLK>;
708 clock-names = "iface_clk",
712 interrupts = <0 72 0>;
714 interrupt-controller;
715 #interrupt-cells = <1>;
717 #address-cells = <1>;
722 compatible = "qcom,mdp5";
723 reg = <0x1a01000 0x90000>;
724 reg-names = "mdp_phys";
726 interrupt-parent = <&mdss>;
729 clocks = <&gcc GCC_MDSS_AHB_CLK>,
730 <&gcc GCC_MDSS_AXI_CLK>,
731 <&gcc GCC_MDSS_MDP_CLK>,
732 <&gcc GCC_MDSS_VSYNC_CLK>;
733 clock-names = "iface_clk",
739 #address-cells = <1>;
744 mdp5_intf1_out: endpoint {
745 remote-endpoint = <&dsi0_in>;
752 compatible = "qcom,mdss-dsi-ctrl";
753 reg = <0x1a98000 0x25c>;
754 reg-names = "dsi_ctrl";
756 interrupt-parent = <&mdss>;
759 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
760 <&gcc PCLK0_CLK_SRC>;
761 assigned-clock-parents = <&dsi_phy0 0>,
764 clocks = <&gcc GCC_MDSS_MDP_CLK>,
765 <&gcc GCC_MDSS_AHB_CLK>,
766 <&gcc GCC_MDSS_AXI_CLK>,
767 <&gcc GCC_MDSS_BYTE0_CLK>,
768 <&gcc GCC_MDSS_PCLK0_CLK>,
769 <&gcc GCC_MDSS_ESC0_CLK>;
770 clock-names = "mdp_core_clk",
777 phy-names = "dsi-phy";
780 #address-cells = <1>;
786 remote-endpoint = <&mdp5_intf1_out>;
798 dsi_phy0: dsi-phy@1a98300 {
799 compatible = "qcom,dsi-phy-28nm-lp";
800 reg = <0x1a98300 0xd4>,
803 reg-names = "dsi_pll",
809 clocks = <&gcc GCC_MDSS_AHB_CLK>;
810 clock-names = "iface_clk";
816 compatible = "qcom,q6v5-pil";
817 reg = <0x04080000 0x100>,
820 reg-names = "qdsp6", "rmb";
822 interrupts-extended = <&intc 0 24 1>,
823 <&hexagon_smp2p_in 0 0>,
824 <&hexagon_smp2p_in 1 0>,
825 <&hexagon_smp2p_in 2 0>,
826 <&hexagon_smp2p_in 3 0>;
827 interrupt-names = "wdog", "fatal", "ready",
828 "handover", "stop-ack";
830 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
831 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
832 <&gcc GCC_BOOT_ROM_AHB_CLK>,
834 clock-names = "iface", "bus", "mem", "xo";
836 qcom,smem-states = <&hexagon_smp2p_out 0>;
837 qcom,smem-state-names = "stop";
840 reset-names = "mss_restart";
842 cx-supply = <&pm8916_s1>;
843 mx-supply = <&pm8916_l3>;
844 pll-supply = <&pm8916_l7>;
846 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
851 memory-region = <&mba_mem>;
855 memory-region = <&mpss_mem>;
859 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
862 qcom,ipc = <&apcs 8 12>;
863 qcom,remote-pid = <1>;
869 pronto: wcnss@a21b000 {
870 compatible = "qcom,pronto-v2-pil", "qcom,pronto";
871 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
872 reg-names = "ccu", "dxe", "pmu";
874 memory-region = <&wcnss_mem>;
876 interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
877 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
878 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
879 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
880 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
881 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
883 vddmx-supply = <&pm8916_l3>;
884 vddpx-supply = <&pm8916_l7>;
886 qcom,state = <&wcnss_smp2p_out 0>;
887 qcom,state-names = "stop";
889 pinctrl-names = "default";
890 pinctrl-0 = <&wcnss_pin_a>;
895 compatible = "qcom,wcn3620";
897 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
900 vddxo-supply = <&pm8916_l7>;
901 vddrfa-supply = <&pm8916_s3>;
902 vddpa-supply = <&pm8916_l9>;
903 vdddig-supply = <&pm8916_l5>;
907 interrupts = <0 142 1>;
909 qcom,ipc = <&apcs 8 17>;
911 qcom,remote-pid = <4>;
916 compatible = "qcom,wcnss";
917 qcom,smd-channels = "WCNSS_CTRL";
919 qcom,mmio = <&pronto>;
922 compatible = "qcom,wcnss-bt";
926 compatible = "qcom,wcnss-wlan";
928 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>,
929 <0 146 IRQ_TYPE_LEVEL_HIGH>;
930 interrupt-names = "tx", "rx";
932 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
933 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
940 compatible = "arm,coresight-tpiu", "arm,primecell";
941 reg = <0x820000 0x1000>;
943 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
944 clock-names = "apb_pclk", "atclk";
949 remote-endpoint = <&replicator_out1>;
955 compatible = "arm,coresight-funnel", "arm,primecell";
956 reg = <0x821000 0x1000>;
958 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
959 clock-names = "apb_pclk", "atclk";
962 #address-cells = <1>;
966 * Not described input ports:
967 * 0 - connected to Resource and Power Manger CPU ETM
969 * 2 - connected to Modem CPU ETM
972 * 6 - connected trought funnel to Wireless CPU ETM
973 * 7 - connected to STM component
978 funnel0_in4: endpoint {
980 remote-endpoint = <&funnel1_out>;
985 funnel0_out: endpoint {
986 remote-endpoint = <&etf_in>;
993 compatible = "qcom,coresight-replicator1x", "arm,primecell";
994 reg = <0x824000 0x1000>;
996 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
997 clock-names = "apb_pclk", "atclk";
1000 #address-cells = <1>;
1005 replicator_out0: endpoint {
1006 remote-endpoint = <&etr_in>;
1011 replicator_out1: endpoint {
1012 remote-endpoint = <&tpiu_in>;
1017 replicator_in: endpoint {
1019 remote-endpoint = <&etf_out>;
1026 compatible = "arm,coresight-tmc", "arm,primecell";
1027 reg = <0x825000 0x1000>;
1029 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1030 clock-names = "apb_pclk", "atclk";
1033 #address-cells = <1>;
1040 remote-endpoint = <&funnel0_out>;
1046 remote-endpoint = <&replicator_in>;
1053 compatible = "arm,coresight-tmc", "arm,primecell";
1054 reg = <0x826000 0x1000>;
1056 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1057 clock-names = "apb_pclk", "atclk";
1062 remote-endpoint = <&replicator_out0>;
1067 funnel@841000 { /* APSS funnel only 4 inputs are used */
1068 compatible = "arm,coresight-funnel", "arm,primecell";
1069 reg = <0x841000 0x1000>;
1071 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1072 clock-names = "apb_pclk", "atclk";
1075 #address-cells = <1>;
1080 funnel1_in0: endpoint {
1082 remote-endpoint = <&etm0_out>;
1087 funnel1_in1: endpoint {
1089 remote-endpoint = <&etm1_out>;
1094 funnel1_in2: endpoint {
1096 remote-endpoint = <&etm2_out>;
1101 funnel1_in3: endpoint {
1103 remote-endpoint = <&etm3_out>;
1108 funnel1_out: endpoint {
1109 remote-endpoint = <&funnel0_in4>;
1116 compatible = "arm,coresight-cpu-debug","arm,primecell";
1117 reg = <0x850000 0x1000>;
1118 clocks = <&rpmcc RPM_QDSS_CLK>;
1119 clock-names = "apb_pclk";
1124 compatible = "arm,coresight-cpu-debug","arm,primecell";
1125 reg = <0x852000 0x1000>;
1126 clocks = <&rpmcc RPM_QDSS_CLK>;
1127 clock-names = "apb_pclk";
1132 compatible = "arm,coresight-cpu-debug","arm,primecell";
1133 reg = <0x854000 0x1000>;
1134 clocks = <&rpmcc RPM_QDSS_CLK>;
1135 clock-names = "apb_pclk";
1140 compatible = "arm,coresight-cpu-debug","arm,primecell";
1141 reg = <0x856000 0x1000>;
1142 clocks = <&rpmcc RPM_QDSS_CLK>;
1143 clock-names = "apb_pclk";
1148 compatible = "arm,coresight-etm4x", "arm,primecell";
1149 reg = <0x85c000 0x1000>;
1151 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1152 clock-names = "apb_pclk", "atclk";
1157 etm0_out: endpoint {
1158 remote-endpoint = <&funnel1_in0>;
1164 compatible = "arm,coresight-etm4x", "arm,primecell";
1165 reg = <0x85d000 0x1000>;
1167 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1168 clock-names = "apb_pclk", "atclk";
1173 etm1_out: endpoint {
1174 remote-endpoint = <&funnel1_in1>;
1180 compatible = "arm,coresight-etm4x", "arm,primecell";
1181 reg = <0x85e000 0x1000>;
1183 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1184 clock-names = "apb_pclk", "atclk";
1189 etm2_out: endpoint {
1190 remote-endpoint = <&funnel1_in2>;
1196 compatible = "arm,coresight-etm4x", "arm,primecell";
1197 reg = <0x85f000 0x1000>;
1199 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1200 clock-names = "apb_pclk", "atclk";
1205 etm3_out: endpoint {
1206 remote-endpoint = <&funnel1_in3>;
1213 compatible = "qcom,smd";
1216 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
1217 qcom,ipc = <&apcs 8 0>;
1218 qcom,smd-edge = <15>;
1221 compatible = "qcom,rpm-msm8916";
1222 qcom,smd-channels = "rpm_requests";
1225 compatible = "qcom,rpmcc-msm8916";
1229 smd_rpm_regulators: pm8916-regulators {
1230 compatible = "qcom,rpm-pm8916-regulators";
1260 compatible = "qcom,smp2p";
1261 qcom,smem = <435>, <428>;
1263 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
1265 qcom,ipc = <&apcs 8 14>;
1267 qcom,local-pid = <0>;
1268 qcom,remote-pid = <1>;
1270 hexagon_smp2p_out: master-kernel {
1271 qcom,entry-name = "master-kernel";
1273 #qcom,smem-state-cells = <1>;
1276 hexagon_smp2p_in: slave-kernel {
1277 qcom,entry-name = "slave-kernel";
1279 interrupt-controller;
1280 #interrupt-cells = <2>;
1285 compatible = "qcom,smp2p";
1286 qcom,smem = <451>, <431>;
1288 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
1290 qcom,ipc = <&apcs 8 18>;
1292 qcom,local-pid = <0>;
1293 qcom,remote-pid = <4>;
1295 wcnss_smp2p_out: master-kernel {
1296 qcom,entry-name = "master-kernel";
1298 #qcom,smem-state-cells = <1>;
1301 wcnss_smp2p_in: slave-kernel {
1302 qcom,entry-name = "slave-kernel";
1304 interrupt-controller;
1305 #interrupt-cells = <2>;
1310 compatible = "qcom,smsm";
1312 #address-cells = <1>;
1315 qcom,ipc-1 = <&apcs 0 13>;
1316 qcom,ipc-6 = <&apcs 0 19>;
1321 #qcom,smem-state-cells = <1>;
1324 hexagon_smsm: hexagon@1 {
1326 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
1328 interrupt-controller;
1329 #interrupt-cells = <2>;
1332 wcnss_smsm: wcnss@6 {
1334 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
1336 interrupt-controller;
1337 #interrupt-cells = <2>;
1342 #include "msm8916-pins.dtsi"