blob: 6681c6558d970fb7ce2112c48bebe5270ea5e673 [file] [log] [blame]
Kumar Gala57f0a7e2015-02-27 15:48:59 -06001/*
2 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
3 *
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.
7 *
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.
12 */
13
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
18/ {
19 model = "Qualcomm Technologies, Inc. MSM8916";
20 compatible = "qcom,msm8916";
21
22 interrupt-parent = <&intc>;
23
24 #address-cells = <2>;
25 #size-cells = <2>;
26
27 aliases { };
28
29 chosen { };
30
31 memory {
32 device_type = "memory";
33 /* We expect the bootloader to fill in the reg */
34 reg = <0 0 0 0>;
35 };
36
37 cpus {
38 #address-cells = <1>;
39 #size-cells = <0>;
40
41 CPU0: cpu@0 {
42 device_type = "cpu";
43 compatible = "arm,cortex-a53", "arm,armv8";
44 reg = <0x0>;
45 };
46
47 CPU1: cpu@1 {
48 device_type = "cpu";
49 compatible = "arm,cortex-a53", "arm,armv8";
50 reg = <0x1>;
51 };
52
53 CPU2: cpu@2 {
54 device_type = "cpu";
55 compatible = "arm,cortex-a53", "arm,armv8";
56 reg = <0x2>;
57 };
58
59 CPU3: cpu@3 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a53", "arm,armv8";
62 reg = <0x3>;
63 };
64 };
65
66 timer {
67 compatible = "arm,armv8-timer";
68 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
69 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
70 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
71 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
72 };
73
74 soc: soc {
75 #address-cells = <1>;
76 #size-cells = <1>;
77 ranges = <0 0 0 0xffffffff>;
78 compatible = "simple-bus";
79
Ivan T. Ivanov366655c2015-04-20 10:45:40 +030080 restart@4ab000 {
81 compatible = "qcom,pshold";
82 reg = <0x4ab000 0x4>;
83 };
84
Ivan T. Ivanova190a1c2015-04-20 10:45:41 +030085 msmgpio: pinctrl@1000000 {
Kumar Gala57f0a7e2015-02-27 15:48:59 -060086 compatible = "qcom,msm8916-pinctrl";
87 reg = <0x1000000 0x300000>;
88 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
89 gpio-controller;
90 #gpio-cells = <2>;
91 interrupt-controller;
92 #interrupt-cells = <2>;
Kumar Gala57f0a7e2015-02-27 15:48:59 -060093 };
94
95 gcc: qcom,gcc@1800000 {
96 compatible = "qcom,gcc-msm8916";
97 #clock-cells = <1>;
98 #reset-cells = <1>;
99 reg = <0x1800000 0x80000>;
100 };
101
102 blsp1_uart2: serial@78b0000 {
103 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
104 reg = <0x78b0000 0x200>;
105 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
106 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
107 clock-names = "core", "iface";
108 status = "disabled";
109 };
110
Ivan T. Ivanova0e5fb12015-06-04 12:19:01 +0300111 blsp_dma: dma@7884000 {
112 compatible = "qcom,bam-v1.7.0";
113 reg = <0x07884000 0x23000>;
114 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
115 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
116 clock-names = "bam_clk";
117 #dma-cells = <1>;
118 qcom,ee = <0>;
119 status = "disabled";
120 };
121
122 blsp_spi1: spi@78b5000 {
123 compatible = "qcom,spi-qup-v2.2.1";
124 reg = <0x078b5000 0x600>;
125 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
126 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
127 <&gcc GCC_BLSP1_AHB_CLK>;
128 clock-names = "core", "iface";
129 dmas = <&blsp_dma 5>, <&blsp_dma 4>;
130 dma-names = "rx", "tx";
131 pinctrl-names = "default", "sleep";
132 pinctrl-0 = <&spi1_default>;
133 pinctrl-1 = <&spi1_sleep>;
134 #address-cells = <1>;
135 #size-cells = <0>;
136 status = "disabled";
137 };
138
139 blsp_spi2: spi@78b6000 {
140 compatible = "qcom,spi-qup-v2.2.1";
141 reg = <0x078b6000 0x600>;
142 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
143 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
144 <&gcc GCC_BLSP1_AHB_CLK>;
145 clock-names = "core", "iface";
146 dmas = <&blsp_dma 7>, <&blsp_dma 6>;
147 dma-names = "rx", "tx";
148 pinctrl-names = "default", "sleep";
149 pinctrl-0 = <&spi2_default>;
150 pinctrl-1 = <&spi2_sleep>;
151 #address-cells = <1>;
152 #size-cells = <0>;
153 status = "disabled";
154 };
155
156 blsp_spi3: spi@78b7000 {
157 compatible = "qcom,spi-qup-v2.2.1";
158 reg = <0x078b7000 0x600>;
159 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
160 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
161 <&gcc GCC_BLSP1_AHB_CLK>;
162 clock-names = "core", "iface";
163 dmas = <&blsp_dma 9>, <&blsp_dma 8>;
164 dma-names = "rx", "tx";
165 pinctrl-names = "default", "sleep";
166 pinctrl-0 = <&spi3_default>;
167 pinctrl-1 = <&spi3_sleep>;
168 #address-cells = <1>;
169 #size-cells = <0>;
170 status = "disabled";
171 };
172
173 blsp_spi4: spi@78b8000 {
174 compatible = "qcom,spi-qup-v2.2.1";
175 reg = <0x078b8000 0x600>;
176 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
177 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
178 <&gcc GCC_BLSP1_AHB_CLK>;
179 clock-names = "core", "iface";
180 dmas = <&blsp_dma 11>, <&blsp_dma 10>;
181 dma-names = "rx", "tx";
182 pinctrl-names = "default", "sleep";
183 pinctrl-0 = <&spi4_default>;
184 pinctrl-1 = <&spi4_sleep>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 status = "disabled";
188 };
189
190 blsp_spi5: spi@78b9000 {
191 compatible = "qcom,spi-qup-v2.2.1";
192 reg = <0x078b9000 0x600>;
193 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
195 <&gcc GCC_BLSP1_AHB_CLK>;
196 clock-names = "core", "iface";
197 dmas = <&blsp_dma 13>, <&blsp_dma 12>;
198 dma-names = "rx", "tx";
199 pinctrl-names = "default", "sleep";
200 pinctrl-0 = <&spi5_default>;
201 pinctrl-1 = <&spi5_sleep>;
202 #address-cells = <1>;
203 #size-cells = <0>;
204 status = "disabled";
205 };
206
207 blsp_spi6: spi@78ba000 {
208 compatible = "qcom,spi-qup-v2.2.1";
209 reg = <0x078ba000 0x600>;
210 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
211 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
212 <&gcc GCC_BLSP1_AHB_CLK>;
213 clock-names = "core", "iface";
214 dmas = <&blsp_dma 15>, <&blsp_dma 14>;
215 dma-names = "rx", "tx";
216 pinctrl-names = "default", "sleep";
217 pinctrl-0 = <&spi6_default>;
218 pinctrl-1 = <&spi6_sleep>;
219 #address-cells = <1>;
220 #size-cells = <0>;
221 status = "disabled";
222 };
223
224 blsp_i2c4: i2c@78b8000 {
225 compatible = "qcom,i2c-qup-v2.2.1";
226 reg = <0x78b8000 0x1000>;
227 interrupts = <GIC_SPI 98 0>;
228 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
229 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
230 clock-names = "iface", "core";
231 pinctrl-names = "default", "sleep";
232 pinctrl-0 = <&i2c4_default>;
233 pinctrl-1 = <&i2c4_sleep>;
234 #address-cells = <1>;
235 #size-cells = <0>;
236 status = "disabled";
237 };
238
Kumar Gala57f0a7e2015-02-27 15:48:59 -0600239 intc: interrupt-controller@b000000 {
240 compatible = "qcom,msm-qgic2";
241 interrupt-controller;
242 #interrupt-cells = <3>;
243 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
244 };
245
246 timer@b020000 {
247 #address-cells = <1>;
248 #size-cells = <1>;
249 ranges;
250 compatible = "arm,armv7-timer-mem";
251 reg = <0xb020000 0x1000>;
252 clock-frequency = <19200000>;
253
254 frame@b021000 {
255 frame-number = <0>;
256 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
257 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
258 reg = <0xb021000 0x1000>,
259 <0xb022000 0x1000>;
260 };
261
262 frame@b023000 {
263 frame-number = <1>;
264 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
265 reg = <0xb023000 0x1000>;
266 status = "disabled";
267 };
268
269 frame@b024000 {
270 frame-number = <2>;
271 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
272 reg = <0xb024000 0x1000>;
273 status = "disabled";
274 };
275
276 frame@b025000 {
277 frame-number = <3>;
278 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
279 reg = <0xb025000 0x1000>;
280 status = "disabled";
281 };
282
283 frame@b026000 {
284 frame-number = <4>;
285 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
286 reg = <0xb026000 0x1000>;
287 status = "disabled";
288 };
289
290 frame@b027000 {
291 frame-number = <5>;
292 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
293 reg = <0xb027000 0x1000>;
294 status = "disabled";
295 };
296
297 frame@b028000 {
298 frame-number = <6>;
299 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
300 reg = <0xb028000 0x1000>;
301 status = "disabled";
302 };
303 };
Ivan T. Ivanov232461f2015-04-20 10:45:38 +0300304
305 spmi_bus: spmi@200f000 {
306 compatible = "qcom,spmi-pmic-arb";
307 reg = <0x200f000 0x001000>,
308 <0x2400000 0x400000>,
309 <0x2c00000 0x400000>,
310 <0x3800000 0x200000>,
311 <0x200a000 0x002100>;
312 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
313 interrupt-names = "periph_irq";
314 interrupts = <GIC_SPI 190 IRQ_TYPE_NONE>;
315 qcom,ee = <0>;
316 qcom,channel = <0>;
317 #address-cells = <2>;
318 #size-cells = <0>;
319 interrupt-controller;
320 #interrupt-cells = <4>;
321 };
Kumar Gala57f0a7e2015-02-27 15:48:59 -0600322 };
323};
Ivan T. Ivanov1b08a582015-06-04 12:19:00 +0300324
325#include "msm8916-pins.dtsi"