1 /* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
13 #include <dt-bindings/interrupt-controller/arm-gic.h>
14 #include <dt-bindings/clock/qcom,gcc-msm8996.h>
15 #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
18 model = "Qualcomm Technologies, Inc. MSM8996";
20 interrupt-parent = <&intc>;
28 device_type = "memory";
29 /* We expect the bootloader to fill in the reg */
38 mba_region: mba@91500000 {
39 reg = <0x0 0x91500000 0x0 0x200000>;
43 slpi_region: slpi@90b00000 {
44 reg = <0x0 0x90b00000 0x0 0xa00000>;
48 venus_region: venus@90400000 {
49 reg = <0x0 0x90400000 0x0 0x700000>;
53 adsp_region: adsp@8ea00000 {
54 reg = <0x0 0x8ea00000 0x0 0x1a00000>;
58 mpss_region: mpss@88800000 {
59 reg = <0x0 0x88800000 0x0 0x6200000>;
63 smem_mem: smem-mem@86000000 {
64 reg = <0x0 0x86000000 0x0 0x200000>;
69 reg = <0x0 0x85800000 0x0 0x800000>;
74 reg = <0x0 0x86200000 0x0 0x2600000>;
85 compatible = "qcom,kryo";
87 enable-method = "psci";
88 next-level-cache = <&L2_0>;
97 compatible = "qcom,kryo";
99 enable-method = "psci";
100 next-level-cache = <&L2_0>;
105 compatible = "qcom,kryo";
107 enable-method = "psci";
108 next-level-cache = <&L2_1>;
110 compatible = "cache";
117 compatible = "qcom,kryo";
119 enable-method = "psci";
120 next-level-cache = <&L2_1>;
148 polling-delay-passive = <250>;
149 polling-delay = <1000>;
151 thermal-sensors = <&tsens0 3>;
155 temperature = <75000>;
161 temperature = <110000>;
169 polling-delay-passive = <250>;
170 polling-delay = <1000>;
172 thermal-sensors = <&tsens0 5>;
176 temperature = <75000>;
182 temperature = <110000>;
190 polling-delay-passive = <250>;
191 polling-delay = <1000>;
193 thermal-sensors = <&tsens0 8>;
197 temperature = <75000>;
203 temperature = <110000>;
211 polling-delay-passive = <250>;
212 polling-delay = <1000>;
214 thermal-sensors = <&tsens0 10>;
218 temperature = <75000>;
224 temperature = <110000>;
233 compatible = "arm,armv8-timer";
234 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
235 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
236 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
237 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
242 compatible = "fixed-clock";
244 clock-frequency = <19200000>;
245 clock-output-names = "xo_board";
248 sleep_clk: sleep_clk {
249 compatible = "fixed-clock";
251 clock-frequency = <32764>;
252 clock-output-names = "sleep_clk";
257 compatible = "arm,psci-1.0";
262 compatible = "qcom,tcsr-mutex";
263 syscon = <&tcsr_mutex_regs 0 0x1000>;
268 compatible = "qcom,smem";
269 memory-region = <&smem_mem>;
270 hwlocks = <&tcsr_mutex 3>;
274 #address-cells = <1>;
276 ranges = <0 0 0 0xffffffff>;
277 compatible = "simple-bus";
279 tcsr_mutex_regs: syscon@740000 {
280 compatible = "syscon";
281 reg = <0x740000 0x20000>;
284 intc: interrupt-controller@9bc0000 {
285 compatible = "arm,gic-v3";
286 #interrupt-cells = <3>;
287 interrupt-controller;
288 #redistributor-regions = <1>;
289 redistributor-stride = <0x0 0x40000>;
290 reg = <0x09bc0000 0x10000>,
291 <0x09c00000 0x100000>;
292 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
295 apcs: syscon@9820000 {
296 compatible = "syscon";
297 reg = <0x9820000 0x1000>;
300 gcc: clock-controller@300000 {
301 compatible = "qcom,gcc-msm8996";
304 #power-domain-cells = <1>;
305 reg = <0x300000 0x90000>;
308 blsp1_spi0: spi@07575000 {
309 compatible = "qcom,spi-qup-v2.2.1";
310 reg = <0x07575000 0x600>;
311 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
312 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
313 <&gcc GCC_BLSP1_AHB_CLK>;
314 clock-names = "core", "iface";
315 pinctrl-names = "default", "sleep";
316 pinctrl-0 = <&blsp1_spi0_default>;
317 pinctrl-1 = <&blsp1_spi0_sleep>;
318 #address-cells = <1>;
323 blsp2_i2c0: i2c@075b5000 {
324 compatible = "qcom,i2c-qup-v2.2.1";
325 reg = <0x075b5000 0x1000>;
326 interrupts = <GIC_SPI 101 0>;
327 clocks = <&gcc GCC_BLSP2_AHB_CLK>,
328 <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
329 clock-names = "iface", "core";
330 pinctrl-names = "default", "sleep";
331 pinctrl-0 = <&blsp2_i2c0_default>;
332 pinctrl-1 = <&blsp2_i2c0_sleep>;
333 #address-cells = <1>;
338 tsens0: thermal-sensor@4a8000 {
339 compatible = "qcom,msm8996-tsens";
340 reg = <0x4a8000 0x2000>;
341 #thermal-sensor-cells = <1>;
344 blsp2_uart1: serial@75b0000 {
345 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
346 reg = <0x75b0000 0x1000>;
347 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
349 <&gcc GCC_BLSP2_AHB_CLK>;
350 clock-names = "core", "iface";
354 blsp2_i2c1: i2c@075b6000 {
355 compatible = "qcom,i2c-qup-v2.2.1";
356 reg = <0x075b6000 0x1000>;
357 interrupts = <GIC_SPI 102 0>;
358 clocks = <&gcc GCC_BLSP2_AHB_CLK>,
359 <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>;
360 clock-names = "iface", "core";
361 pinctrl-names = "default", "sleep";
362 pinctrl-0 = <&blsp2_i2c1_default>;
363 pinctrl-1 = <&blsp2_i2c1_sleep>;
364 #address-cells = <1>;
369 blsp2_uart2: serial@75b1000 {
370 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
371 reg = <0x075b1000 0x1000>;
372 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
373 clocks = <&gcc GCC_BLSP2_UART3_APPS_CLK>,
374 <&gcc GCC_BLSP2_AHB_CLK>;
375 clock-names = "core", "iface";
379 blsp1_i2c2: i2c@07577000 {
380 compatible = "qcom,i2c-qup-v2.2.1";
381 reg = <0x07577000 0x1000>;
382 interrupts = <GIC_SPI 97 0>;
383 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
384 <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
385 clock-names = "iface", "core";
386 pinctrl-names = "default", "sleep";
387 pinctrl-0 = <&blsp1_i2c2_default>;
388 pinctrl-1 = <&blsp1_i2c2_sleep>;
389 #address-cells = <1>;
394 blsp2_spi5: spi@075ba000{
395 compatible = "qcom,spi-qup-v2.2.1";
396 reg = <0x075ba000 0x600>;
397 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
398 clocks = <&gcc GCC_BLSP2_QUP5_SPI_APPS_CLK>,
399 <&gcc GCC_BLSP2_AHB_CLK>;
400 clock-names = "core", "iface";
401 pinctrl-names = "default", "sleep";
402 pinctrl-0 = <&blsp2_spi5_default>;
403 pinctrl-1 = <&blsp2_spi5_sleep>;
404 #address-cells = <1>;
409 sdhc2: sdhci@74a4900 {
411 compatible = "qcom,sdhci-msm-v4";
412 reg = <0x74a4900 0x314>, <0x74a4000 0x800>;
413 reg-names = "hc_mem", "core_mem";
415 interrupts = <0 125 0>, <0 221 0>;
416 interrupt-names = "hc_irq", "pwr_irq";
418 clock-names = "iface", "core", "xo";
419 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
420 <&gcc GCC_SDCC2_APPS_CLK>,
425 msmgpio: pinctrl@1010000 {
426 compatible = "qcom,msm8996-pinctrl";
427 reg = <0x01010000 0x300000>;
428 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
431 interrupt-controller;
432 #interrupt-cells = <2>;
436 #address-cells = <1>;
439 compatible = "arm,armv7-timer-mem";
440 reg = <0x09840000 0x1000>;
441 clock-frequency = <19200000>;
445 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
446 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
447 reg = <0x09850000 0x1000>,
453 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
454 reg = <0x09870000 0x1000>;
460 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
461 reg = <0x09880000 0x1000>;
467 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
468 reg = <0x09890000 0x1000>;
474 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
475 reg = <0x098a0000 0x1000>;
481 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
482 reg = <0x098b0000 0x1000>;
488 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
489 reg = <0x098c0000 0x1000>;
494 spmi_bus: qcom,spmi@400f000 {
495 compatible = "qcom,spmi-pmic-arb";
496 reg = <0x400f000 0x1000>,
497 <0x4400000 0x800000>,
498 <0x4c00000 0x800000>,
499 <0x5800000 0x200000>,
500 <0x400a000 0x002100>;
501 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
502 interrupt-names = "periph_irq";
503 interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
506 #address-cells = <2>;
508 interrupt-controller;
509 #interrupt-cells = <4>;
512 mmcc: clock-controller@8c0000 {
513 compatible = "qcom,mmcc-msm8996";
516 #power-domain-cells = <1>;
517 reg = <0x8c0000 0x40000>;
518 assigned-clocks = <&mmcc MMPLL9_PLL>,
523 assigned-clock-rates = <624000000>,
532 compatible = "qcom,smp2p";
533 qcom,smem = <443>, <429>;
535 interrupts = <0 158 IRQ_TYPE_EDGE_RISING>;
537 qcom,ipc = <&apcs 16 10>;
539 qcom,local-pid = <0>;
540 qcom,remote-pid = <2>;
542 adsp_smp2p_out: master-kernel {
543 qcom,entry-name = "master-kernel";
544 #qcom,state-cells = <1>;
547 adsp_smp2p_in: slave-kernel {
548 qcom,entry-name = "slave-kernel";
550 interrupt-controller;
551 #interrupt-cells = <2>;
555 #include "msm8996-pins.dtsi"