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,armv8-pmuv3";
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";
549 usb_dev: usb@78d9000 {
550 compatible = "qcom,ci-hdrc";
551 reg = <0x78d9000 0x400>;
552 dr_mode = "peripheral";
553 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
554 usb-phy = <&usb_otg>;
558 usb_host: ehci@78d9000 {
559 compatible = "qcom,ehci-host";
560 reg = <0x78d9000 0x400>;
561 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
562 usb-phy = <&usb_otg>;
566 usb_otg: phy@78d9000 {
567 compatible = "qcom,usb-otg-snps";
568 reg = <0x78d9000 0x400>;
569 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
570 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
572 qcom,vdd-levels = <500000 1000000 1320000>;
573 qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>;
574 dr_mode = "peripheral";
575 qcom,otg-control = <2>; // PMIC
578 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
579 <&gcc GCC_USB_HS_SYSTEM_CLK>,
580 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
581 clock-names = "iface", "core", "sleep";
583 resets = <&gcc GCC_USB2A_PHY_BCR>,
584 <&gcc GCC_USB_HS_BCR>;
585 reset-names = "phy", "link";
589 intc: interrupt-controller@b000000 {
590 compatible = "qcom,msm-qgic2";
591 interrupt-controller;
592 #interrupt-cells = <3>;
593 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
597 #address-cells = <1>;
600 compatible = "arm,armv7-timer-mem";
601 reg = <0xb020000 0x1000>;
602 clock-frequency = <19200000>;
606 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
607 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
608 reg = <0xb021000 0x1000>,
614 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
615 reg = <0xb023000 0x1000>;
621 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
622 reg = <0xb024000 0x1000>;
628 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
629 reg = <0xb025000 0x1000>;
635 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
636 reg = <0xb026000 0x1000>;
642 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
643 reg = <0xb027000 0x1000>;
649 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
650 reg = <0xb028000 0x1000>;
655 spmi_bus: spmi@200f000 {
656 compatible = "qcom,spmi-pmic-arb";
657 reg = <0x200f000 0x001000>,
658 <0x2400000 0x400000>,
659 <0x2c00000 0x400000>,
660 <0x3800000 0x200000>,
661 <0x200a000 0x002100>;
662 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
663 interrupt-names = "periph_irq";
664 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
667 #address-cells = <2>;
669 interrupt-controller;
670 #interrupt-cells = <4>;
674 compatible = "qcom,prng";
675 reg = <0x00022000 0x200>;
676 clocks = <&gcc GCC_PRNG_AHB_CLK>;
677 clock-names = "core";
680 qfprom: qfprom@5c000 {
681 compatible = "qcom,qfprom";
682 reg = <0x5c000 0x1000>;
683 #address-cells = <1>;
685 tsens_caldata: caldata@d0 {
688 tsens_calsel: calsel@ec {
693 tsens: thermal-sensor@4a8000 {
694 compatible = "qcom,msm8916-tsens";
695 reg = <0x4a8000 0x2000>;
696 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
697 nvmem-cell-names = "calib", "calib_sel";
698 #thermal-sensor-cells = <1>;
702 compatible = "qcom,mdss";
703 reg = <0x1a00000 0x1000>,
705 reg-names = "mdss_phys", "vbif_phys";
707 power-domains = <&gcc MDSS_GDSC>;
709 clocks = <&gcc GCC_MDSS_AHB_CLK>,
710 <&gcc GCC_MDSS_AXI_CLK>,
711 <&gcc GCC_MDSS_VSYNC_CLK>;
712 clock-names = "iface_clk",
716 interrupts = <0 72 0>;
718 interrupt-controller;
719 #interrupt-cells = <1>;
721 #address-cells = <1>;
726 compatible = "qcom,mdp5";
727 reg = <0x1a01000 0x90000>;
728 reg-names = "mdp_phys";
730 interrupt-parent = <&mdss>;
733 clocks = <&gcc GCC_MDSS_AHB_CLK>,
734 <&gcc GCC_MDSS_AXI_CLK>,
735 <&gcc GCC_MDSS_MDP_CLK>,
736 <&gcc GCC_MDSS_VSYNC_CLK>;
737 clock-names = "iface_clk",
743 #address-cells = <1>;
748 mdp5_intf1_out: endpoint {
749 remote-endpoint = <&dsi0_in>;
756 compatible = "qcom,mdss-dsi-ctrl";
757 reg = <0x1a98000 0x25c>;
758 reg-names = "dsi_ctrl";
760 interrupt-parent = <&mdss>;
763 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
764 <&gcc PCLK0_CLK_SRC>;
765 assigned-clock-parents = <&dsi_phy0 0>,
768 clocks = <&gcc GCC_MDSS_MDP_CLK>,
769 <&gcc GCC_MDSS_AHB_CLK>,
770 <&gcc GCC_MDSS_AXI_CLK>,
771 <&gcc GCC_MDSS_BYTE0_CLK>,
772 <&gcc GCC_MDSS_PCLK0_CLK>,
773 <&gcc GCC_MDSS_ESC0_CLK>;
774 clock-names = "mdp_core_clk",
781 phy-names = "dsi-phy";
784 #address-cells = <1>;
790 remote-endpoint = <&mdp5_intf1_out>;
802 dsi_phy0: dsi-phy@1a98300 {
803 compatible = "qcom,dsi-phy-28nm-lp";
804 reg = <0x1a98300 0xd4>,
807 reg-names = "dsi_pll",
813 clocks = <&gcc GCC_MDSS_AHB_CLK>;
814 clock-names = "iface_clk";
820 compatible = "qcom,q6v5-pil";
821 reg = <0x04080000 0x100>,
824 reg-names = "qdsp6", "rmb";
826 interrupts-extended = <&intc 0 24 1>,
827 <&hexagon_smp2p_in 0 0>,
828 <&hexagon_smp2p_in 1 0>,
829 <&hexagon_smp2p_in 2 0>,
830 <&hexagon_smp2p_in 3 0>;
831 interrupt-names = "wdog", "fatal", "ready",
832 "handover", "stop-ack";
834 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
835 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
836 <&gcc GCC_BOOT_ROM_AHB_CLK>;
837 clock-names = "iface", "bus", "mem";
839 qcom,smem-states = <&hexagon_smp2p_out 0>;
840 qcom,smem-state-names = "stop";
843 reset-names = "mss_restart";
845 mx-supply = <&pm8916_l3>;
846 pll-supply = <&pm8916_l7>;
848 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
853 memory-region = <&mba_mem>;
857 memory-region = <&mpss_mem>;
861 pronto: wcnss@a21b000 {
862 compatible = "qcom,pronto-v2-pil", "qcom,pronto";
863 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
864 reg-names = "ccu", "dxe", "pmu";
866 memory-region = <&wcnss_mem>;
868 interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
869 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
870 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
871 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
872 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
873 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
875 vddmx-supply = <&pm8916_l3>;
876 vddpx-supply = <&pm8916_l7>;
878 qcom,state = <&wcnss_smp2p_out 0>;
879 qcom,state-names = "stop";
881 pinctrl-names = "default";
882 pinctrl-0 = <&wcnss_pin_a>;
887 compatible = "qcom,wcn3620";
889 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
892 vddxo-supply = <&pm8916_l7>;
893 vddrfa-supply = <&pm8916_s3>;
894 vddpa-supply = <&pm8916_l9>;
895 vdddig-supply = <&pm8916_l5>;
899 interrupts = <0 142 1>;
901 qcom,ipc = <&apcs 8 17>;
903 qcom,remote-pid = <4>;
908 compatible = "qcom,wcnss";
909 qcom,smd-channels = "WCNSS_CTRL";
911 qcom,mmio = <&pronto>;
914 compatible = "qcom,wcnss-bt";
918 compatible = "qcom,wcnss-wlan";
920 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>,
921 <0 146 IRQ_TYPE_LEVEL_HIGH>;
922 interrupt-names = "tx", "rx";
924 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
925 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
932 compatible = "arm,coresight-tpiu", "arm,primecell";
933 reg = <0x820000 0x1000>;
935 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
936 clock-names = "apb_pclk", "atclk";
941 remote-endpoint = <&replicator_out1>;
947 compatible = "arm,coresight-funnel", "arm,primecell";
948 reg = <0x821000 0x1000>;
950 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
951 clock-names = "apb_pclk", "atclk";
954 #address-cells = <1>;
958 * Not described input ports:
959 * 0 - connected to Resource and Power Manger CPU ETM
961 * 2 - connected to Modem CPU ETM
964 * 6 - connected trought funnel to Wireless CPU ETM
965 * 7 - connected to STM component
970 funnel0_in4: endpoint {
972 remote-endpoint = <&funnel1_out>;
977 funnel0_out: endpoint {
978 remote-endpoint = <&etf_in>;
985 compatible = "qcom,coresight-replicator1x", "arm,primecell";
986 reg = <0x824000 0x1000>;
988 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
989 clock-names = "apb_pclk", "atclk";
992 #address-cells = <1>;
997 replicator_out0: endpoint {
998 remote-endpoint = <&etr_in>;
1003 replicator_out1: endpoint {
1004 remote-endpoint = <&tpiu_in>;
1009 replicator_in: endpoint {
1011 remote-endpoint = <&etf_out>;
1018 compatible = "arm,coresight-tmc", "arm,primecell";
1019 reg = <0x825000 0x1000>;
1021 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1022 clock-names = "apb_pclk", "atclk";
1025 #address-cells = <1>;
1032 remote-endpoint = <&funnel0_out>;
1038 remote-endpoint = <&replicator_in>;
1045 compatible = "arm,coresight-tmc", "arm,primecell";
1046 reg = <0x826000 0x1000>;
1048 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1049 clock-names = "apb_pclk", "atclk";
1054 remote-endpoint = <&replicator_out0>;
1059 funnel@841000 { /* APSS funnel only 4 inputs are used */
1060 compatible = "arm,coresight-funnel", "arm,primecell";
1061 reg = <0x841000 0x1000>;
1063 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1064 clock-names = "apb_pclk", "atclk";
1067 #address-cells = <1>;
1072 funnel1_in0: endpoint {
1074 remote-endpoint = <&etm0_out>;
1079 funnel1_in1: endpoint {
1081 remote-endpoint = <&etm1_out>;
1086 funnel1_in2: endpoint {
1088 remote-endpoint = <&etm2_out>;
1093 funnel1_in3: endpoint {
1095 remote-endpoint = <&etm3_out>;
1100 funnel1_out: endpoint {
1101 remote-endpoint = <&funnel0_in4>;
1108 compatible = "arm,coresight-etm4x", "arm,primecell";
1109 reg = <0x85c000 0x1000>;
1111 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1112 clock-names = "apb_pclk", "atclk";
1117 etm0_out: endpoint {
1118 remote-endpoint = <&funnel1_in0>;
1124 compatible = "arm,coresight-etm4x", "arm,primecell";
1125 reg = <0x85d000 0x1000>;
1127 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1128 clock-names = "apb_pclk", "atclk";
1133 etm1_out: endpoint {
1134 remote-endpoint = <&funnel1_in1>;
1140 compatible = "arm,coresight-etm4x", "arm,primecell";
1141 reg = <0x85e000 0x1000>;
1143 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1144 clock-names = "apb_pclk", "atclk";
1149 etm2_out: endpoint {
1150 remote-endpoint = <&funnel1_in2>;
1156 compatible = "arm,coresight-etm4x", "arm,primecell";
1157 reg = <0x85f000 0x1000>;
1159 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1160 clock-names = "apb_pclk", "atclk";
1165 etm3_out: endpoint {
1166 remote-endpoint = <&funnel1_in3>;
1173 compatible = "qcom,smd";
1176 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
1177 qcom,ipc = <&apcs 8 0>;
1178 qcom,smd-edge = <15>;
1181 compatible = "qcom,rpm-msm8916";
1182 qcom,smd-channels = "rpm_requests";
1185 compatible = "qcom,rpmcc-msm8916";
1189 smd_rpm_regulators: pm8916-regulators {
1190 compatible = "qcom,rpm-pm8916-regulators";
1219 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
1221 qcom,smd-edge = <0>;
1222 qcom,ipc = <&apcs 8 12>;
1223 qcom,remote-pid = <1>;
1228 compatible = "qcom,smp2p";
1229 qcom,smem = <435>, <428>;
1231 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
1233 qcom,ipc = <&apcs 8 14>;
1235 qcom,local-pid = <0>;
1236 qcom,remote-pid = <1>;
1238 hexagon_smp2p_out: master-kernel {
1239 qcom,entry-name = "master-kernel";
1241 #qcom,smem-state-cells = <1>;
1244 hexagon_smp2p_in: slave-kernel {
1245 qcom,entry-name = "slave-kernel";
1247 interrupt-controller;
1248 #interrupt-cells = <2>;
1253 compatible = "qcom,smp2p";
1254 qcom,smem = <451>, <431>;
1256 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
1258 qcom,ipc = <&apcs 8 18>;
1260 qcom,local-pid = <0>;
1261 qcom,remote-pid = <4>;
1263 wcnss_smp2p_out: master-kernel {
1264 qcom,entry-name = "master-kernel";
1266 #qcom,smem-state-cells = <1>;
1269 wcnss_smp2p_in: slave-kernel {
1270 qcom,entry-name = "slave-kernel";
1272 interrupt-controller;
1273 #interrupt-cells = <2>;
1278 compatible = "qcom,smsm";
1280 #address-cells = <1>;
1283 qcom,ipc-1 = <&apcs 0 13>;
1284 qcom,ipc-6 = <&apcs 0 19>;
1289 #qcom,smem-state-cells = <1>;
1292 hexagon_smsm: hexagon@1 {
1294 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
1296 interrupt-controller;
1297 #interrupt-cells = <2>;
1300 wcnss_smsm: wcnss@6 {
1302 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
1304 interrupt-controller;
1305 #interrupt-cells = <2>;
1310 #include "msm8916-pins.dtsi"