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>
18 #include <dt-bindings/thermal/thermal.h>
19 #include <dt-bindings/arm/qcom-ids.h>
22 model = "Qualcomm Technologies, Inc. MSM8916";
23 compatible = "qcom,msm8916";
24 qcom,msm-id = <QCOM_ID_MSM8916 0>,
31 interrupt-parent = <&intc>;
37 sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
38 sdhc2 = &sdhc_2; /* SDC2 SD card slot */
44 device_type = "memory";
45 /* We expect the bootloader to fill in the reg */
54 reserve_aligned@86000000 {
55 reg = <0x0 0x86000000 0x0 0x0300000>;
59 smem_mem: smem_region@86300000 {
60 reg = <0x0 0x86300000 0x0 0x0100000>;
64 hypervisor_mem: hypervisor_region@86400000 {
66 reg = <0x0 0x86400000 0x0 0x0400000>;
69 modem_adsp_mem: modem_adsp_region@86800000 {
71 reg = <0x0 0x86800000 0x0 0x04800000>;
75 reg = <0x0 0x86700000 0x0 0xe0000>;
79 peripheral_mem: peripheral_region@8b600000 {
81 reg = <0x0 0x8b600000 0x0 0x0600000>;
84 wcnss_mem: wcnss@89300000 {
85 reg = <0x0 0x89300000 0x0 0x600000>;
89 vidc_mem: vidc_region@8f800000 {
91 reg = <0 0x8f800000 0 0x800000>;
101 compatible = "arm,cortex-a53", "arm,armv8";
103 enable-method = "qcom,arm-cortex-acc";
105 next-level-cache = <&L2_0>;
107 clock-latency = <200000>;
108 cpu-supply = <&pm8916_spmi_s2>;
109 /* cooling options */
110 cooling-min-level = <0>;
111 cooling-max-level = <7>;
112 #cooling-cells = <2>;
114 compatible = "arm,arch-cache";
116 power-domain = <&l2ccc_0>;
122 compatible = "arm,cortex-a53", "arm,armv8";
124 enable-method = "qcom,arm-cortex-acc";
126 next-level-cache = <&L2_0>;
128 clock-latency = <200000>;
129 cpu-supply = <&pm8916_spmi_s2>;
130 /* cooling options */
131 cooling-min-level = <0>;
132 cooling-max-level = <7>;
133 #cooling-cells = <2>;
138 compatible = "arm,cortex-a53", "arm,armv8";
140 enable-method = "qcom,arm-cortex-acc";
142 next-level-cache = <&L2_0>;
144 clock-latency = <200000>;
145 cpu-supply = <&pm8916_spmi_s2>;
146 /* cooling options */
147 cooling-min-level = <0>;
148 cooling-max-level = <7>;
149 #cooling-cells = <2>;
154 compatible = "arm,cortex-a53", "arm,armv8";
156 enable-method = "qcom,arm-cortex-acc";
158 next-level-cache = <&L2_0>;
160 clock-latency = <200000>;
161 cpu-supply = <&pm8916_spmi_s2>;
162 /* cooling options */
163 cooling-min-level = <0>;
164 cooling-max-level = <7>;
165 #cooling-cells = <2>;
170 compatible = "arm,armv8-pmuv3";
171 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>;
176 polling-delay-passive = <250>;
177 polling-delay = <1000>;
179 thermal-sensors = <&tsens 4>;
183 temperature = <75000>;
188 temperature = <100000>;
196 trip = <&cpu_alert0>;
197 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
203 polling-delay-passive = <250>;
204 polling-delay = <1000>;
206 thermal-sensors = <&tsens 3>;
210 temperature = <75000>;
215 temperature = <100000>;
223 trip = <&cpu_alert1>;
224 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
231 compatible = "arm,armv8-timer";
232 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
233 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
234 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
235 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
240 compatible = "fixed-clock";
242 clock-frequency = <19200000>;
243 clock-output-names = "xo_board";
246 sleep_clk: sleep_clk {
247 compatible = "fixed-clock";
249 clock-frequency = <32768>;
254 compatible = "simple-bus";
257 compatible = "qcom,scm";
258 clocks = <&gcc GCC_CRYPTO_CLK> , <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
259 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: qcom,gcc@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>;
298 compatible = "qcom,tcsr-mutex";
299 syscon = <&tcsr_mutex_regs 0 0x1000>;
303 rpm_msg_ram: memory@60000 {
304 compatible = "qcom,rpm-msg-ram";
305 reg = <0x60000 0x8000>;
308 blsp1_uart1: serial@78af000 {
309 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
310 reg = <0x78af000 0x200>;
311 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
312 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
313 clock-names = "core", "iface";
314 dmas = <&blsp_dma 1>, <&blsp_dma 0>;
315 dma-names = "rx", "tx";
319 apcs: syscon@b011000 {
320 compatible = "syscon";
321 reg = <0x0b011000 0x1000>;
324 a53cc: qcom,a53cc@0b016000 {
325 compatible = "qcom,clock-a53-msm8916";
326 reg = <0x0b016000 0x40>;
331 blsp1_uart2: serial@78b0000 {
332 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
333 reg = <0x78b0000 0x200>;
334 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
335 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
336 clock-names = "core", "iface";
337 dmas = <&blsp_dma 3>, <&blsp_dma 2>;
338 dma-names = "rx", "tx";
342 blsp_dma: dma@7884000 {
343 compatible = "qcom,bam-v1.7.0";
344 reg = <0x07884000 0x23000>;
345 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
346 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
347 clock-names = "bam_clk";
353 blsp_spi1: spi@78b5000 {
354 compatible = "qcom,spi-qup-v2.2.1";
355 reg = <0x078b5000 0x600>;
356 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
357 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
358 <&gcc GCC_BLSP1_AHB_CLK>;
359 clock-names = "core", "iface";
360 dmas = <&blsp_dma 5>, <&blsp_dma 4>;
361 dma-names = "rx", "tx";
362 pinctrl-names = "default", "sleep";
363 pinctrl-0 = <&spi1_default>;
364 pinctrl-1 = <&spi1_sleep>;
365 #address-cells = <1>;
370 blsp_spi2: spi@78b6000 {
371 compatible = "qcom,spi-qup-v2.2.1";
372 reg = <0x078b6000 0x600>;
373 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
374 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
375 <&gcc GCC_BLSP1_AHB_CLK>;
376 clock-names = "core", "iface";
377 dmas = <&blsp_dma 7>, <&blsp_dma 6>;
378 dma-names = "rx", "tx";
379 pinctrl-names = "default", "sleep";
380 pinctrl-0 = <&spi2_default>;
381 pinctrl-1 = <&spi2_sleep>;
382 #address-cells = <1>;
387 blsp_spi3: spi@78b7000 {
388 compatible = "qcom,spi-qup-v2.2.1";
389 reg = <0x078b7000 0x600>;
390 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
391 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
392 <&gcc GCC_BLSP1_AHB_CLK>;
393 clock-names = "core", "iface";
394 dmas = <&blsp_dma 9>, <&blsp_dma 8>;
395 dma-names = "rx", "tx";
396 pinctrl-names = "default", "sleep";
397 pinctrl-0 = <&spi3_default>;
398 pinctrl-1 = <&spi3_sleep>;
399 #address-cells = <1>;
404 blsp_spi4: spi@78b8000 {
405 compatible = "qcom,spi-qup-v2.2.1";
406 reg = <0x078b8000 0x600>;
407 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
408 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
409 <&gcc GCC_BLSP1_AHB_CLK>;
410 clock-names = "core", "iface";
411 dmas = <&blsp_dma 11>, <&blsp_dma 10>;
412 dma-names = "rx", "tx";
413 pinctrl-names = "default", "sleep";
414 pinctrl-0 = <&spi4_default>;
415 pinctrl-1 = <&spi4_sleep>;
416 #address-cells = <1>;
421 blsp_spi5: spi@78b9000 {
422 compatible = "qcom,spi-qup-v2.2.1";
423 reg = <0x078b9000 0x600>;
424 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
425 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
426 <&gcc GCC_BLSP1_AHB_CLK>;
427 clock-names = "core", "iface";
428 dmas = <&blsp_dma 13>, <&blsp_dma 12>;
429 dma-names = "rx", "tx";
430 pinctrl-names = "default", "sleep";
431 pinctrl-0 = <&spi5_default>;
432 pinctrl-1 = <&spi5_sleep>;
433 #address-cells = <1>;
438 blsp_spi6: spi@78ba000 {
439 compatible = "qcom,spi-qup-v2.2.1";
440 reg = <0x078ba000 0x600>;
441 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
442 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
443 <&gcc GCC_BLSP1_AHB_CLK>;
444 clock-names = "core", "iface";
445 dmas = <&blsp_dma 15>, <&blsp_dma 14>;
446 dma-names = "rx", "tx";
447 pinctrl-names = "default", "sleep";
448 pinctrl-0 = <&spi6_default>;
449 pinctrl-1 = <&spi6_sleep>;
450 #address-cells = <1>;
455 blsp_i2c2: i2c@78b6000 {
456 compatible = "qcom,i2c-qup-v2.2.1";
457 reg = <0x78b6000 0x1000>;
458 interrupts = <GIC_SPI 96 0>;
459 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
460 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
461 clock-names = "iface", "core";
462 pinctrl-names = "default", "sleep";
463 pinctrl-0 = <&i2c2_default>;
464 pinctrl-1 = <&i2c2_sleep>;
465 #address-cells = <1>;
470 blsp_i2c4: i2c@78b8000 {
471 compatible = "qcom,i2c-qup-v2.2.1";
472 reg = <0x78b8000 0x1000>;
473 interrupts = <GIC_SPI 98 0>;
474 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
475 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
476 clock-names = "iface", "core";
477 pinctrl-names = "default", "sleep";
478 pinctrl-0 = <&i2c4_default>;
479 pinctrl-1 = <&i2c4_sleep>;
480 #address-cells = <1>;
485 blsp_i2c6: i2c@78ba000 {
486 compatible = "qcom,i2c-qup-v2.2.1";
487 reg = <0x78ba000 0x1000>;
488 interrupts = <GIC_SPI 100 0>;
489 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
490 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
491 clock-names = "iface", "core";
492 pinctrl-names = "default", "sleep";
493 pinctrl-0 = <&i2c6_default>;
494 pinctrl-1 = <&i2c6_sleep>;
495 #address-cells = <1>;
500 sdhc_1: sdhci@07824000 {
501 compatible = "qcom,sdhci-msm-v4";
502 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
503 reg-names = "hc_mem", "core_mem";
505 interrupts = <0 123 0>, <0 138 0>;
506 interrupt-names = "hc_irq", "pwr_irq";
507 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
508 <&gcc GCC_SDCC1_AHB_CLK>;
509 clock-names = "core", "iface";
515 sdhc_2: sdhci@07864000 {
516 compatible = "qcom,sdhci-msm-v4";
517 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
518 reg-names = "hc_mem", "core_mem";
520 interrupts = <0 125 0>, <0 221 0>;
521 interrupt-names = "hc_irq", "pwr_irq";
522 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
523 <&gcc GCC_SDCC2_AHB_CLK>;
524 clock-names = "core", "iface";
529 usb_dev: usb@78d9000 {
530 compatible = "qcom,ci-hdrc";
531 reg = <0x78d9000 0x400>;
532 dr_mode = "peripheral";
533 interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>;
534 usb-phy = <&usb_otg>;
538 usb_host: ehci@78d9000 {
539 compatible = "qcom,ehci-host";
540 reg = <0x78d9000 0x400>;
541 interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>;
542 usb-phy = <&usb_otg>;
546 usb_otg: phy@78d9000 {
547 compatible = "qcom,usb-otg-snps";
548 reg = <0x78d9000 0x400>;
549 interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_BOTH>,
550 <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>;
552 v1p8-supply = <&pm8916_l7>;
553 v3p3-supply = <&pm8916_l13>;
554 qcom,vdd-levels = <1 5 7>;
555 qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>;
556 dr_mode = "peripheral";
557 qcom,otg-control = <2>; // PMIC
560 qcom,msm-bus,name = "usb2";
561 qcom,msm-bus,num-cases = <3>;
562 qcom,msm-bus,num-paths = <1>;
563 qcom,msm-bus,vectors-KBps =
568 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
569 <&gcc GCC_USB_HS_SYSTEM_CLK>,
570 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
571 clock-names = "iface", "core", "sleep";
573 resets = <&gcc GCC_USB2A_PHY_BCR>,
574 <&gcc GCC_USB_HS_BCR>;
575 reset-names = "phy", "link";
579 intc: interrupt-controller@b000000 {
580 compatible = "qcom,msm-qgic2";
581 interrupt-controller;
582 #interrupt-cells = <3>;
583 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
586 l2ccc_0: clock-controller@b011000 {
587 compatible = "qcom,8916-l2ccc";
588 reg = <0x0b011000 0x1000>;
592 #address-cells = <1>;
595 compatible = "arm,armv7-timer-mem";
596 reg = <0xb020000 0x1000>;
597 clock-frequency = <19200000>;
601 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
602 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
603 reg = <0xb021000 0x1000>,
609 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
610 reg = <0xb023000 0x1000>;
616 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
617 reg = <0xb024000 0x1000>;
623 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
624 reg = <0xb025000 0x1000>;
630 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
631 reg = <0xb026000 0x1000>;
637 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
638 reg = <0xb027000 0x1000>;
644 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
645 reg = <0xb028000 0x1000>;
650 spmi_bus: spmi@200f000 {
651 compatible = "qcom,spmi-pmic-arb";
652 reg = <0x200f000 0x001000>,
653 <0x2400000 0x400000>,
654 <0x2c00000 0x400000>,
655 <0x3800000 0x200000>,
656 <0x200a000 0x002100>;
657 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
658 interrupt-names = "periph_irq";
659 interrupts = <GIC_SPI 190 IRQ_TYPE_NONE>;
662 #address-cells = <2>;
664 interrupt-controller;
665 #interrupt-cells = <4>;
669 compatible = "qcom,prng";
670 reg = <0x00022000 0x200>;
671 clocks = <&gcc GCC_PRNG_AHB_CLK>;
672 clock-names = "core";
674 acc0: clock-controller@b088000 {
675 compatible = "qcom,arm-cortex-acc";
676 reg = <0x0b088000 0x1000>,
680 acc1: clock-controller@b098000 {
681 compatible = "qcom,arm-cortex-acc";
682 reg = <0x0b098000 0x1000>,
686 acc2: clock-controller@b0a8000 {
687 compatible = "qcom,arm-cortex-acc";
688 reg = <0x0b0a8000 0x1000>,
692 acc3: clock-controller@b0b8000 {
693 compatible = "qcom,arm-cortex-acc";
694 reg = <0x0b0b8000 0x1000>,
700 wcd_digital: codec-digital{
701 compatible = "syscon", "qcom,apq8016-wcd-digital-codec";
702 reg = <0x0771c000 0x400>;
705 lpass: lpass-cpu@07700000 {
707 compatible = "qcom,lpass-cpu-apq8016";
708 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
709 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
710 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
711 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
712 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
713 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
714 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
716 clock-names = "ahbix-clk",
723 #sound-dai-cells = <1>;
725 interrupts = <0 160 0>;
726 interrupt-names = "lpass-irq-lpaif";
727 reg = <0x07708000 0x10000>, <0x07702000 0x4>, <0x07702004 0x4>;
728 reg-names = "lpass-lpaif", "mic-iomux", "spkr-iomux";
733 compatible = "qcom,apq8016-sbc-sndcard";
734 reg = <0x07702000 0x4>, <0x07702004 0x4>;
735 reg-names = "mic-iomux", "spkr-iomux";
738 tcsr: syscon@1937000 {
739 compatible = "qcom,tcsr-msm8916", "syscon";
740 reg = <0x1937000 0x30000>;
743 uqfprom: eeprom@58000 {
744 compatible = "qcom,qfprom-msm8916";
745 reg = <0x58000 0x7000>;
749 compatible = "qcom,cpr";
750 reg = <0xb018000 0x1000>;
751 interrupts = <0 15 1>, <0 16 1>, <0 17 1>;
752 vdd-mx-supply = <&pm8916_l3>;
753 acc-syscon = <&tcsr>;
756 qcom,cpr-ref-clk = <19200>;
757 qcom,cpr-timer-delay-us = <5000>;
758 qcom,cpr-timer-cons-up = <0>;
759 qcom,cpr-timer-cons-down = <2>;
760 qcom,cpr-up-threshold = <0>;
761 qcom,cpr-down-threshold = <2>;
762 qcom,cpr-idle-clocks = <15>;
763 qcom,cpr-gcnt-us = <1>;
764 qcom,vdd-apc-step-up-limit = <1>;
765 qcom,vdd-apc-step-down-limit = <1>;
766 qcom,cpr-cpus = <&CPU0 &CPU1 &CPU2 &CPU3>;
769 qfprom: qfprom@5c000 {
770 compatible = "qcom,qfprom";
771 reg = <0x5c000 0x1000>;
772 #address-cells = <1>;
774 tsens_caldata: caldata@d0 {
777 tsens_calsel: calsel@ec {
782 tsens: thermal-sensor@4a8000 {
783 compatible = "qcom,msm8916-tsens";
784 reg = <0x4a8000 0x2000>;
785 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
786 nvmem-cell-names = "calib", "calib_sel";
787 qcom,tsens-slopes = <3200 3200 3200 3200 3200>;
788 qcom,sensor-id = <0 1 2 4 5>;
789 #thermal-sensor-cells = <1>;
793 compatible = "qcom,smp2p";
794 qcom,smem = <435>, <428>;
795 interrupts = <0 27 1>;
796 qcom,ipc = <&apcs 8 14>;
798 qcom,local-pid = <0>;
799 qcom,remote-pid = <1>;
801 q6_smp2p_out: master-kernel {
802 qcom,entry-name = "master-kernel";
809 q6_smp2p_in: slave-kernel {
810 qcom,entry-name = "slave-kernel";
813 interrupt-controller;
814 #interrupt-cells = <2>;
819 compatible = "qcom,smp2p";
820 qcom,smem = <451>, <431>;
822 interrupts = <0 143 1>;
824 qcom,ipc = <&apcs 8 18>;
826 qcom,local-pid = <0>;
827 qcom,remote-pid = <4>;
829 wcnss_smp2p_out: master-kernel {
830 qcom,entry-name = "master-kernel";
837 wcnss_smp2p_in: slave-kernel {
838 qcom,entry-name = "slave-kernel";
841 interrupt-controller;
842 #interrupt-cells = <2>;
847 compatible = "qcom,pil-q6v56-mss", "qcom,q6v5-pil";
848 reg = <0x04080000 0x100>,
856 reg-names = "qdsp6_base", "rmb_base", "restart_reg_sec",
857 "halt_q6", "halt_modem", "halt_nc";
859 interrupts-extended = <&intc 0 24 1>,
864 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
866 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, <&gcc GCC_BOOT_ROM_AHB_CLK>;
868 clock-names = "iface", "bus", "mem";
870 qcom,mx-supply = <&pm8916_l3>;
871 qcom,mx-uV = <1050000>;
872 qcom,pll-supply = <&pm8916_l7>;
873 qcom,pll-uV = <1800000>;
874 qcom,proxy-clock-names = "xo";
875 qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk";
877 qcom,firmware-name = "modem";
881 /* GPIO inputs from mss */
882 qcom,gpio-err-fatal = <&q6_smp2p_in 0 0>;
883 qcom,gpio-err-ready = <&q6_smp2p_in 1 0>;
884 qcom,gpio-proxy-unvote = <&q6_smp2p_in 2 0>;
885 qcom,gpio-stop-ack = <&q6_smp2p_in 3 0>;
886 qcom,gpio-ramdump-disable = <&q6_smp2p_in 15 0>;
887 /* GPIO output to mss */
888 qcom,gpio-force-stop = <&q6_smp2p_out 0 0>;
889 qcom,stop-gpio = <&q6_smp2p_out 0 0>;
890 memory-region = <&modem_adsp_mem>;
894 compatible = "qcom,pronto-v2-pil";
895 reg = <0x0a21b000 0x3000>;
898 memory-region = <&wcnss_mem>;
900 interrupts-extended = <&intc 0 149 IRQ_TYPE_EDGE_RISING>,
901 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
902 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
903 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
904 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
905 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
907 vddmx-supply = <&pm8916_l3>;
908 vddpx-supply = <&pm8916_l7>;
910 qcom,state = <&wcnss_smp2p_out 0>;
911 qcom,state-names = "stop";
913 pinctrl-names = "default";
914 pinctrl-0 = <&wcnss_default>;
917 compatible = "qcom,wcn3620";
919 clocks = <&rpmcc RPM_RF_CLK2>;
922 vddxo-supply = <&pm8916_l7>;
923 vddrfa-supply = <&pm8916_s3>;
924 vddpa-supply = <&pm8916_l9>;
925 vdddig-supply = <&pm8916_l5>;
929 qcom,rpm-log@29dc00 {
930 compatible = "qcom,rpm-log";
931 reg = <0x29dc00 0x4000>;
932 qcom,rpm-addr-phys = <0x200000>;
933 qcom,offset-version = <4>;
934 qcom,offset-page-buffer-addr = <36>;
935 qcom,offset-log-len = <40>;
936 qcom,offset-log-len-mask = <44>;
937 qcom,offset-page-indices = <56>;
940 vidc_rproc: vidc_tzpil@0 {
941 compatible = "qcom,tz-pil";
942 clocks = <&gcc GCC_CRYPTO_CLK>,
943 <&gcc GCC_CRYPTO_AHB_CLK>,
944 <&gcc GCC_CRYPTO_AXI_CLK>,
945 <&gcc CRYPTO_CLK_SRC>;
946 clock-names = "scm_core_clk", "scm_iface_clk",
947 "scm_bus_clk", "scm_src_clk";
948 qcom,firmware-name = "venus";
950 memory-region = <&vidc_mem>;
954 vidc: qcom,vidc@1d00000 {
955 compatible = "qcom,msm-vidc";
956 reg = <0x01d00000 0xff000>;
957 interrupts = <GIC_SPI 44 0>;
958 power-domains = <&gcc VENUS_GDSC>;
959 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
960 <&gcc GCC_VENUS0_AHB_CLK>,
961 <&gcc GCC_VENUS0_AXI_CLK>;
962 clock-names = "core_clk", "iface_clk", "bus_clk";
964 qcom,max-hw-load = <352800>; /* 720p @ 30 + 1080p @ 30 */
965 qcom,enable-idle-indicator;
966 rproc = <&vidc_rproc>;
967 qcom,iommu-cb = <&venus_ns>,
968 <&venus_sec_bitstream>,
970 <&venus_sec_non_pixel>;
976 compatible = "qcom,smem";
978 memory-region = <&smem_mem>;
979 qcom,rpm-msg-ram = <&rpm_msg_ram>;
981 hwlocks = <&tcsr_mutex 3>;
984 compatible = "qcom,smd";
987 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
988 qcom,ipc = <&apcs 8 0>;
989 qcom,smd-edge = <15>;
990 qcom,remote-pid = <0xffffffff>;
993 compatible = "qcom,rpm-msm8916";
994 qcom,smd-channels = "rpm_requests";
996 compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
1001 compatible = "qcom,rpm-msm-bus";
1004 compatible = "qcom,rpm-pm8916-regulators";
1034 interrupts = <0 25 1>;
1035 qcom,smd-edge = <0>;
1036 qcom,ipc = <&apcs 8 12>;
1037 qcom,remote-pid = <1>;
1039 compatible = "qcom,ipcrtr";
1040 qcom,smd-channels = "IPCRTR";
1044 pronto_smd_edge: pronto {
1045 interrupts = <0 142 1>;
1047 qcom,ipc = <&apcs 8 17>;
1048 qcom,smd-edge = <6>;
1049 qcom,remote-pid = <4>;
1052 compatible = "qcom,hci-smd";
1053 qcom,smd-channels = "APPS_RIVA_BT_CMD", "APPS_RIVA_BT_ACL";
1054 qcom,smd-channel-names = "event", "data";
1058 compatible = "qcom,ipcrtr";
1059 qcom,smd-channels = "IPCRTR";
1063 compatible = "qcom,wcn3620-wlan";
1064 qcom,smd-channels = "WLAN_CTRL";
1066 interrupts = <0 145 0>, <0 146 0>;
1067 interrupt-names = "wcnss_wlantx_irq", "wcnss_wlanrx_irq";
1069 qcom,wcnss-mmio = <0x0a000000 0x21b000>;
1071 // qcom,tx-enable-gpios = <&apps_smsm 10 0>;
1072 // qcom,tx-rings-empty-gpios = <&apps_smsm 9 0>;
1076 compatible = "qcom,wcnss";
1077 qcom,smd-channels = "WCNSS_CTRL";
1083 compatible = "qcom,smp2p";
1084 qcom,smem = <435>, <428>;
1086 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
1088 qcom,ipc = <&apcs 8 14>;
1090 qcom,local-pid = <0>;
1091 qcom,remote-pid = <1>;
1093 hexagon_smp2p_out: master-kernel {
1094 qcom,entry-name = "master-kernel";
1096 #qcom,state-cells = <1>;
1099 hexagon_smp2p_in: slave-kernel {
1100 qcom,entry-name = "slave-kernel";
1102 interrupt-controller;
1103 #interrupt-cells = <2>;
1108 compatible = "qcom,smp2p";
1109 qcom,smem = <451>, <431>;
1111 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
1113 qcom,ipc = <&apcs 8 18>;
1115 qcom,local-pid = <0>;
1116 qcom,remote-pid = <4>;
1118 wcnss_smp2p_out: master-kernel {
1119 qcom,entry-name = "master-kernel";
1121 #qcom,state-cells = <1>;
1124 wcnss_smp2p_in: slave-kernel {
1125 qcom,entry-name = "slave-kernel";
1127 interrupt-controller;
1128 #interrupt-cells = <2>;
1133 compatible = "qcom,smsm";
1135 #address-cells = <1>;
1138 qcom,ipc-1 = <&apcs 0 13>;
1139 qcom,ipc-6 = <&apcs 0 19>;
1144 #qcom,state-cells = <1>;
1147 hexagon_smsm: hexagon@1 {
1149 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
1151 interrupt-controller;
1152 #interrupt-cells = <2>;
1155 wcnss_smsm: wcnss@6 {
1157 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
1159 interrupt-controller;
1160 #interrupt-cells = <2>;
1165 #include "msm8916-pins.dtsi"
1166 #include "msm8916-iommu.dtsi"
1167 #include "msm8916-coresight.dtsi"
1168 #include "msm8916-bus.dtsi"