blob: 52c7d644e492913bd38642d971b7c855bec51b73 [file] [log] [blame]
Antoine Tenart374ddcb2014-03-18 15:32:45 +01001/*
2 * Copyright (C) 2014 Antoine Ténart <antoine.tenart@free-electrons.com>
3 *
4 * This file is licensed under the terms of the GNU General Public
5 * License version 2. This program is licensed "as is" without any
6 * warranty of any kind, whether express or implied.
7 */
8
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10
11#include "skeleton.dtsi"
12
13/ {
14 model = "Marvell Armada 1500 pro (BG2-Q) SoC";
15 compatible = "marvell,berlin2q", "marvell,berlin";
16
17 cpus {
18 #address-cells = <1>;
19 #size-cells = <0>;
20
21 cpu@0 {
22 compatible = "arm,cortex-a9";
23 device_type = "cpu";
24 next-level-cache = <&l2>;
25 reg = <0>;
26 };
27
28 cpu@1 {
29 compatible = "arm,cortex-a9";
30 device_type = "cpu";
31 next-level-cache = <&l2>;
32 reg = <1>;
33 };
34
35 cpu@2 {
36 compatible = "arm,cortex-a9";
37 device_type = "cpu";
38 next-level-cache = <&l2>;
39 reg = <2>;
40 };
41
42 cpu@3 {
43 compatible = "arm,cortex-a9";
44 device_type = "cpu";
45 next-level-cache = <&l2>;
46 reg = <3>;
47 };
48 };
49
50 smclk: sysmgr-clock {
51 compatible = "fixed-clock";
52 #clock-cells = <0>;
53 clock-frequency = <25000000>;
54 };
55
56 cfgclk: config-clock {
57 compatible = "fixed-clock";
58 #clock-cells = <0>;
59 clock-frequency = <100000000>;
60 };
61
62 cpuclk: cpu-clock {
63 compatible = "fixed-clock";
64 #clock-cells = <0>;
65 clock-frequency = <1200000000>;
66 };
67
68 twdclk: twdclk {
69 compatible = "fixed-factor-clock";
70 #clock-cells = <0>;
71 clocks = <&cpuclk>;
72 clock-mult = <1>;
73 clock-div = <3>;
74 };
75
76 soc {
77 compatible = "simple-bus";
78 #address-cells = <1>;
79 #size-cells = <1>;
80
81 ranges = <0 0xf7000000 0x1000000>;
82 interrupt-parent = <&gic>;
83
84 l2: l2-cache-controller@ac0000 {
85 compatible = "arm,pl310-cache";
86 reg = <0xac0000 0x1000>;
87 cache-level = <2>;
88 };
89
Sebastian Hesselbarth0bd4b342014-03-13 13:32:34 +010090 scu: snoop-control-unit@ad0000 {
91 compatible = "arm,cortex-a9-scu";
92 reg = <0xad0000 0x58>;
93 };
94
Antoine Tenart374ddcb2014-03-18 15:32:45 +010095 local-timer@ad0600 {
96 compatible = "arm,cortex-a9-twd-timer";
97 reg = <0xad0600 0x20>;
98 clocks = <&twdclk>;
99 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
100 };
101
102 gic: interrupt-controller@ad1000 {
103 compatible = "arm,cortex-a9-gic";
104 reg = <0xad1000 0x1000>, <0xad0100 0x100>;
105 interrupt-controller;
106 #interrupt-cells = <3>;
107 };
108
109 apb@e80000 {
110 compatible = "simple-bus";
111 #address-cells = <1>;
112 #size-cells = <1>;
113
114 ranges = <0 0xe80000 0x10000>;
115 interrupt-parent = <&aic>;
116
Antoine Tenartcedf57f2014-04-16 21:18:41 +0200117 gpio0: gpio@0400 {
118 compatible = "snps,dw-apb-gpio";
119 reg = <0x0400 0x400>;
120 #address-cells = <1>;
121 #size-cells = <0>;
122
123 porta: gpio-port@0 {
124 compatible = "snps,dw-apb-gpio-port";
125 gpio-controller;
126 #gpio-cells = <2>;
127 snps,nr-gpios = <32>;
128 reg = <0>;
129 interrupt-controller;
130 #interrupt-cells = <2>;
131 interrupts = <0>;
132 };
133 };
134
135 gpio1: gpio@0800 {
136 compatible = "snps,dw-apb-gpio";
137 reg = <0x0800 0x400>;
138 #address-cells = <1>;
139 #size-cells = <0>;
140
141 portb: gpio-port@1 {
142 compatible = "snps,dw-apb-gpio-port";
143 gpio-controller;
144 #gpio-cells = <2>;
145 snps,nr-gpios = <32>;
146 reg = <0>;
147 interrupt-controller;
148 #interrupt-cells = <2>;
149 interrupts = <1>;
150 };
151 };
152
153 gpio2: gpio@0c00 {
154 compatible = "snps,dw-apb-gpio";
155 reg = <0x0c00 0x400>;
156 #address-cells = <1>;
157 #size-cells = <0>;
158
159 portc: gpio-port@2 {
160 compatible = "snps,dw-apb-gpio-port";
161 gpio-controller;
162 #gpio-cells = <2>;
163 snps,nr-gpios = <32>;
164 reg = <0>;
165 interrupt-controller;
166 #interrupt-cells = <2>;
167 interrupts = <2>;
168 };
169 };
170
171 gpio3: gpio@1000 {
172 compatible = "snps,dw-apb-gpio";
173 reg = <0x1000 0x400>;
174 #address-cells = <1>;
175 #size-cells = <0>;
176
177 portd: gpio-port@3 {
178 compatible = "snps,dw-apb-gpio-port";
179 gpio-controller;
180 #gpio-cells = <2>;
181 snps,nr-gpios = <32>;
182 reg = <0>;
183 interrupt-controller;
184 #interrupt-cells = <2>;
185 interrupts = <3>;
186 };
187 };
188
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100189 timer0: timer@2c00 {
190 compatible = "snps,dw-apb-timer";
191 reg = <0x2c00 0x14>;
192 clocks = <&cfgclk>;
193 clock-names = "timer";
194 interrupts = <8>;
195 };
196
197 timer1: timer@2c14 {
198 compatible = "snps,dw-apb-timer";
199 reg = <0x2c14 0x14>;
200 clocks = <&cfgclk>;
201 clock-names = "timer";
202 status = "disabled";
203 };
204
205 timer2: timer@2c28 {
206 compatible = "snps,dw-apb-timer";
207 reg = <0x2c28 0x14>;
208 clocks = <&cfgclk>;
209 clock-names = "timer";
210 status = "disabled";
211 };
212
213 timer3: timer@2c3c {
214 compatible = "snps,dw-apb-timer";
215 reg = <0x2c3c 0x14>;
216 clocks = <&cfgclk>;
217 clock-names = "timer";
218 status = "disabled";
219 };
220
221 timer4: timer@2c50 {
222 compatible = "snps,dw-apb-timer";
223 reg = <0x2c50 0x14>;
224 clocks = <&cfgclk>;
225 clock-names = "timer";
226 status = "disabled";
227 };
228
229 timer5: timer@2c64 {
230 compatible = "snps,dw-apb-timer";
231 reg = <0x2c64 0x14>;
232 clocks = <&cfgclk>;
233 clock-names = "timer";
234 status = "disabled";
235 };
236
237 timer6: timer@2c78 {
238 compatible = "snps,dw-apb-timer";
239 reg = <0x2c78 0x14>;
240 clocks = <&cfgclk>;
241 clock-names = "timer";
242 status = "disabled";
243 };
244
245 timer7: timer@2c8c {
246 compatible = "snps,dw-apb-timer";
247 reg = <0x2c8c 0x14>;
248 clocks = <&cfgclk>;
249 clock-names = "timer";
250 status = "disabled";
251 };
252
253 aic: interrupt-controller@3800 {
254 compatible = "snps,dw-apb-ictl";
255 reg = <0x3800 0x30>;
256 interrupt-controller;
257 #interrupt-cells = <1>;
258 interrupt-parent = <&gic>;
259 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
260 };
Antoine Tenartcedf57f2014-04-16 21:18:41 +0200261
262 gpio4: gpio@5000 {
263 compatible = "snps,dw-apb-gpio";
264 reg = <0x5000 0x400>;
265 #address-cells = <1>;
266 #size-cells = <0>;
267
268 porte: gpio-port@4 {
269 compatible = "snps,dw-apb-gpio-port";
270 gpio-controller;
271 #gpio-cells = <2>;
272 snps,nr-gpios = <32>;
273 reg = <0>;
274 };
275 };
276
277 gpio5: gpio@c000 {
278 compatible = "snps,dw-apb-gpio";
279 reg = <0xc000 0x400>;
280 #address-cells = <1>;
281 #size-cells = <0>;
282
283 portf: gpio-port@5 {
284 compatible = "snps,dw-apb-gpio-port";
285 gpio-controller;
286 #gpio-cells = <2>;
287 snps,nr-gpios = <32>;
288 reg = <0>;
289 };
290 };
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100291 };
292
Sebastian Hesselbarth0bd4b342014-03-13 13:32:34 +0100293 generic-regs@ea0110 {
294 compatible = "marvell,berlin-generic-regs", "syscon";
295 reg = <0xea0110 0x10>;
296 };
297
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100298 apb@fc0000 {
299 compatible = "simple-bus";
300 #address-cells = <1>;
301 #size-cells = <1>;
302
303 ranges = <0 0xfc0000 0x10000>;
304 interrupt-parent = <&sic>;
305
306 uart0: uart@9000 {
307 compatible = "snps,dw-apb-uart";
308 reg = <0x9000 0x100>;
309 interrupt-parent = <&sic>;
310 interrupts = <8>;
311 clocks = <&smclk>;
312 reg-shift = <2>;
313 status = "disabled";
314 };
315
316 uart1: uart@a000 {
317 compatible = "snps,dw-apb-uart";
318 reg = <0xa000 0x100>;
319 interrupt-parent = <&sic>;
320 interrupts = <9>;
321 clocks = <&smclk>;
322 reg-shift = <2>;
323 status = "disabled";
324 };
325
326 sic: interrupt-controller@e000 {
327 compatible = "snps,dw-apb-ictl";
328 reg = <0xe000 0x30>;
329 interrupt-controller;
330 #interrupt-cells = <1>;
331 interrupt-parent = <&gic>;
332 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
333 };
334 };
335 };
336};