pinctrl: berlin: prepare to use regmap provided by syscon
[deliverable/linux.git] / arch / arm / boot / dts / berlin2q.dtsi
CommitLineData
374ddcbf
AT
1/*
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
414dcf8f 9#include <dt-bindings/clock/berlin2q.h>
374ddcbf
AT
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11
12#include "skeleton.dtsi"
13
14/ {
15 model = "Marvell Armada 1500 pro (BG2-Q) SoC";
16 compatible = "marvell,berlin2q", "marvell,berlin";
17
18 cpus {
19 #address-cells = <1>;
20 #size-cells = <0>;
d19c9367 21 enable-method = "marvell,berlin-smp";
374ddcbf
AT
22
23 cpu@0 {
24 compatible = "arm,cortex-a9";
25 device_type = "cpu";
26 next-level-cache = <&l2>;
27 reg = <0>;
28 };
29
30 cpu@1 {
31 compatible = "arm,cortex-a9";
32 device_type = "cpu";
33 next-level-cache = <&l2>;
34 reg = <1>;
35 };
36
37 cpu@2 {
38 compatible = "arm,cortex-a9";
39 device_type = "cpu";
40 next-level-cache = <&l2>;
41 reg = <2>;
42 };
43
44 cpu@3 {
45 compatible = "arm,cortex-a9";
46 device_type = "cpu";
47 next-level-cache = <&l2>;
48 reg = <3>;
49 };
50 };
51
414dcf8f 52 refclk: oscillator {
374ddcbf
AT
53 compatible = "fixed-clock";
54 #clock-cells = <0>;
55 clock-frequency = <25000000>;
56 };
57
374ddcbf
AT
58 soc {
59 compatible = "simple-bus";
60 #address-cells = <1>;
61 #size-cells = <1>;
62
63 ranges = <0 0xf7000000 0x1000000>;
64 interrupt-parent = <&gic>;
65
d4ce8042
JZ
66 pmu {
67 compatible = "arm,cortex-a9-pmu";
68 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
69 <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
70 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
71 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
72 };
73
0d859a6a
AT
74 sdhci0: sdhci@ab0000 {
75 compatible = "mrvl,pxav3-mmc";
76 reg = <0xab0000 0x200>;
77 clocks = <&chip CLKID_SDIO1XIN>;
78 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
79 status = "disabled";
80 };
81
82 sdhci1: sdhci@ab0800 {
83 compatible = "mrvl,pxav3-mmc";
84 reg = <0xab0800 0x200>;
85 clocks = <&chip CLKID_SDIO1XIN>;
86 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
87 status = "disabled";
88 };
89
90 sdhci2: sdhci@ab1000 {
91 compatible = "mrvl,pxav3-mmc";
92 reg = <0xab1000 0x200>;
93 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
96ed6046
JZ
94 clocks = <&chip CLKID_NFC_ECC>, <&chip CLKID_NFC>;
95 clock-names = "io", "core";
0d859a6a
AT
96 status = "disabled";
97 };
98
374ddcbf
AT
99 l2: l2-cache-controller@ac0000 {
100 compatible = "arm,pl310-cache";
101 reg = <0xac0000 0x1000>;
102 cache-level = <2>;
44991eb4
JZ
103 arm,data-latency = <2 2 2>;
104 arm,tag-latency = <2 2 2>;
374ddcbf
AT
105 };
106
0bd4b346
SH
107 scu: snoop-control-unit@ad0000 {
108 compatible = "arm,cortex-a9-scu";
109 reg = <0xad0000 0x58>;
110 };
111
374ddcbf
AT
112 local-timer@ad0600 {
113 compatible = "arm,cortex-a9-twd-timer";
114 reg = <0xad0600 0x20>;
414dcf8f 115 clocks = <&chip CLKID_TWD>;
2356d2f3 116 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
374ddcbf
AT
117 };
118
119 gic: interrupt-controller@ad1000 {
120 compatible = "arm,cortex-a9-gic";
121 reg = <0xad1000 0x1000>, <0xad0100 0x100>;
122 interrupt-controller;
123 #interrupt-cells = <3>;
124 };
125
c539711e
AT
126 usb_phy2: phy@a2f400 {
127 compatible = "marvell,berlin2-usb-phy";
128 reg = <0xa2f400 0x128>;
129 #phy-cells = <0>;
43225728 130 resets = <&chip_rst 0x104 14>;
c539711e
AT
131 status = "disabled";
132 };
133
134 usb2: usb@a30000 {
135 compatible = "chipidea,usb2";
136 reg = <0xa30000 0x10000>;
137 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
138 clocks = <&chip CLKID_USB2>;
139 phys = <&usb_phy2>;
140 phy-names = "usb-phy";
141 status = "disabled";
142 };
143
144 usb_phy0: phy@b74000 {
145 compatible = "marvell,berlin2-usb-phy";
146 reg = <0xb74000 0x128>;
147 #phy-cells = <0>;
43225728 148 resets = <&chip_rst 0x104 12>;
c539711e
AT
149 status = "disabled";
150 };
151
152 usb_phy1: phy@b78000 {
153 compatible = "marvell,berlin2-usb-phy";
154 reg = <0xb78000 0x128>;
155 #phy-cells = <0>;
43225728 156 resets = <&chip_rst 0x104 13>;
c539711e
AT
157 status = "disabled";
158 };
159
bdc06cd7
AT
160 eth0: ethernet@b90000 {
161 compatible = "marvell,pxa168-eth";
162 reg = <0xb90000 0x10000>;
163 clocks = <&chip CLKID_GETH0>;
164 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
165 /* set by bootloader */
166 local-mac-address = [00 00 00 00 00 00];
167 #address-cells = <1>;
168 #size-cells = <0>;
f5799dcf 169 phy-connection-type = "mii";
bdc06cd7
AT
170 phy-handle = <&ethphy0>;
171 status = "disabled";
172
173 ethphy0: ethernet-phy@0 {
174 reg = <0>;
175 };
176 };
177
d19c9367
AT
178 cpu-ctrl@dd0000 {
179 compatible = "marvell,berlin-cpu-ctrl";
180 reg = <0xdd0000 0x10000>;
181 };
182
374ddcbf
AT
183 apb@e80000 {
184 compatible = "simple-bus";
185 #address-cells = <1>;
186 #size-cells = <1>;
187
188 ranges = <0 0xe80000 0x10000>;
189 interrupt-parent = <&aic>;
190
cedf57fc
AT
191 gpio0: gpio@0400 {
192 compatible = "snps,dw-apb-gpio";
193 reg = <0x0400 0x400>;
194 #address-cells = <1>;
195 #size-cells = <0>;
196
197 porta: gpio-port@0 {
198 compatible = "snps,dw-apb-gpio-port";
199 gpio-controller;
200 #gpio-cells = <2>;
201 snps,nr-gpios = <32>;
202 reg = <0>;
203 interrupt-controller;
204 #interrupt-cells = <2>;
205 interrupts = <0>;
206 };
207 };
208
209 gpio1: gpio@0800 {
210 compatible = "snps,dw-apb-gpio";
211 reg = <0x0800 0x400>;
212 #address-cells = <1>;
213 #size-cells = <0>;
214
215 portb: gpio-port@1 {
216 compatible = "snps,dw-apb-gpio-port";
217 gpio-controller;
218 #gpio-cells = <2>;
219 snps,nr-gpios = <32>;
220 reg = <0>;
221 interrupt-controller;
222 #interrupt-cells = <2>;
223 interrupts = <1>;
224 };
225 };
226
227 gpio2: gpio@0c00 {
228 compatible = "snps,dw-apb-gpio";
229 reg = <0x0c00 0x400>;
230 #address-cells = <1>;
231 #size-cells = <0>;
232
233 portc: gpio-port@2 {
234 compatible = "snps,dw-apb-gpio-port";
235 gpio-controller;
236 #gpio-cells = <2>;
237 snps,nr-gpios = <32>;
238 reg = <0>;
239 interrupt-controller;
240 #interrupt-cells = <2>;
241 interrupts = <2>;
242 };
243 };
244
245 gpio3: gpio@1000 {
246 compatible = "snps,dw-apb-gpio";
247 reg = <0x1000 0x400>;
248 #address-cells = <1>;
249 #size-cells = <0>;
250
251 portd: gpio-port@3 {
252 compatible = "snps,dw-apb-gpio-port";
253 gpio-controller;
254 #gpio-cells = <2>;
255 snps,nr-gpios = <32>;
256 reg = <0>;
257 interrupt-controller;
258 #interrupt-cells = <2>;
259 interrupts = <3>;
260 };
261 };
262
99f3deb8
AT
263 i2c0: i2c@1400 {
264 compatible = "snps,designware-i2c";
265 #address-cells = <1>;
266 #size-cells = <0>;
267 reg = <0x1400 0x100>;
268 interrupt-parent = <&aic>;
269 interrupts = <4>;
270 clocks = <&chip CLKID_CFG>;
271 pinctrl-0 = <&twsi0_pmux>;
272 pinctrl-names = "default";
273 status = "disabled";
274 };
275
276 i2c1: i2c@1800 {
277 compatible = "snps,designware-i2c";
278 #address-cells = <1>;
279 #size-cells = <0>;
280 reg = <0x1800 0x100>;
281 interrupt-parent = <&aic>;
282 interrupts = <5>;
283 clocks = <&chip CLKID_CFG>;
284 pinctrl-0 = <&twsi1_pmux>;
285 pinctrl-names = "default";
286 status = "disabled";
287 };
288
374ddcbf
AT
289 timer0: timer@2c00 {
290 compatible = "snps,dw-apb-timer";
291 reg = <0x2c00 0x14>;
414dcf8f 292 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
293 clock-names = "timer";
294 interrupts = <8>;
295 };
296
297 timer1: timer@2c14 {
298 compatible = "snps,dw-apb-timer";
299 reg = <0x2c14 0x14>;
414dcf8f 300 clocks = <&chip CLKID_CFG>;
374ddcbf 301 clock-names = "timer";
374ddcbf
AT
302 };
303
304 timer2: timer@2c28 {
305 compatible = "snps,dw-apb-timer";
306 reg = <0x2c28 0x14>;
414dcf8f 307 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
308 clock-names = "timer";
309 status = "disabled";
310 };
311
312 timer3: timer@2c3c {
313 compatible = "snps,dw-apb-timer";
314 reg = <0x2c3c 0x14>;
414dcf8f 315 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
316 clock-names = "timer";
317 status = "disabled";
318 };
319
320 timer4: timer@2c50 {
321 compatible = "snps,dw-apb-timer";
322 reg = <0x2c50 0x14>;
414dcf8f 323 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
324 clock-names = "timer";
325 status = "disabled";
326 };
327
328 timer5: timer@2c64 {
329 compatible = "snps,dw-apb-timer";
330 reg = <0x2c64 0x14>;
414dcf8f 331 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
332 clock-names = "timer";
333 status = "disabled";
334 };
335
336 timer6: timer@2c78 {
337 compatible = "snps,dw-apb-timer";
338 reg = <0x2c78 0x14>;
414dcf8f 339 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
340 clock-names = "timer";
341 status = "disabled";
342 };
343
344 timer7: timer@2c8c {
345 compatible = "snps,dw-apb-timer";
346 reg = <0x2c8c 0x14>;
414dcf8f 347 clocks = <&chip CLKID_CFG>;
374ddcbf
AT
348 clock-names = "timer";
349 status = "disabled";
350 };
351
352 aic: interrupt-controller@3800 {
353 compatible = "snps,dw-apb-ictl";
354 reg = <0x3800 0x30>;
355 interrupt-controller;
356 #interrupt-cells = <1>;
357 interrupt-parent = <&gic>;
358 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
359 };
360 };
361
414dcf8f 362 chip: chip-control@ea0000 {
ffcc33a5 363 compatible = "marvell,berlin2q-chip-ctrl", "simple-mfd", "syscon";
414dcf8f
AB
364 #clock-cells = <1>;
365 reg = <0xea0000 0x400>, <0xdd0170 0x10>;
366 clocks = <&refclk>;
367 clock-names = "refclk";
99f3deb8
AT
368
369 twsi0_pmux: twsi0-pmux {
370 groups = "G6";
371 function = "twsi0";
372 };
373
374 twsi1_pmux: twsi1-pmux {
375 groups = "G7";
376 function = "twsi1";
377 };
43225728
AT
378
379 chip_rst: reset {
380 compatible = "marvell,berlin2-reset";
381 #reset-cells = <2>;
382 };
0bd4b346
SH
383 };
384
70a2b717
AT
385 ahci: sata@e90000 {
386 compatible = "marvell,berlin2q-ahci", "generic-ahci";
387 reg = <0xe90000 0x1000>;
388 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
389 clocks = <&chip CLKID_SATA>;
390 #address-cells = <1>;
391 #size-cells = <0>;
392
393 sata0: sata-port@0 {
394 reg = <0>;
395 phys = <&sata_phy 0>;
396 status = "disabled";
397 };
398
399 sata1: sata-port@1 {
400 reg = <1>;
401 phys = <&sata_phy 1>;
402 status = "disabled";
403 };
404 };
405
406 sata_phy: phy@e900a0 {
407 compatible = "marvell,berlin2q-sata-phy";
408 reg = <0xe900a0 0x200>;
409 clocks = <&chip CLKID_SATA>;
410 #address-cells = <1>;
411 #size-cells = <0>;
412 #phy-cells = <1>;
413 status = "disabled";
414
415 sata-phy@0 {
416 reg = <0>;
417 };
418
419 sata-phy@1 {
420 reg = <1>;
421 };
422 };
423
c539711e
AT
424 usb0: usb@ed0000 {
425 compatible = "chipidea,usb2";
426 reg = <0xed0000 0x10000>;
427 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
428 clocks = <&chip CLKID_USB0>;
429 phys = <&usb_phy0>;
430 phy-names = "usb-phy";
431 status = "disabled";
432 };
433
434 usb1: usb@ee0000 {
435 compatible = "chipidea,usb2";
436 reg = <0xee0000 0x10000>;
437 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
438 clocks = <&chip CLKID_USB1>;
439 phys = <&usb_phy1>;
440 phy-names = "usb-phy";
441 status = "disabled";
442 };
443
374ddcbf
AT
444 apb@fc0000 {
445 compatible = "simple-bus";
446 #address-cells = <1>;
447 #size-cells = <1>;
448
449 ranges = <0 0xfc0000 0x10000>;
450 interrupt-parent = <&sic>;
451
5138d5c5
JZ
452 sm_gpio1: gpio@5000 {
453 compatible = "snps,dw-apb-gpio";
454 reg = <0x5000 0x400>;
455 #address-cells = <1>;
456 #size-cells = <0>;
457
458 portf: gpio-port@5 {
459 compatible = "snps,dw-apb-gpio-port";
460 gpio-controller;
461 #gpio-cells = <2>;
462 snps,nr-gpios = <32>;
463 reg = <0>;
464 };
465 };
466
99f3deb8
AT
467 i2c2: i2c@7000 {
468 compatible = "snps,designware-i2c";
469 #address-cells = <1>;
470 #size-cells = <0>;
471 reg = <0x7000 0x100>;
472 interrupt-parent = <&sic>;
473 interrupts = <6>;
474 clocks = <&refclk>;
475 pinctrl-0 = <&twsi2_pmux>;
476 pinctrl-names = "default";
477 status = "disabled";
478 };
479
480 i2c3: i2c@8000 {
481 compatible = "snps,designware-i2c";
482 #address-cells = <1>;
483 #size-cells = <0>;
484 reg = <0x8000 0x100>;
485 interrupt-parent = <&sic>;
486 interrupts = <7>;
487 clocks = <&refclk>;
488 pinctrl-0 = <&twsi3_pmux>;
489 pinctrl-names = "default";
490 status = "disabled";
491 };
492
374ddcbf
AT
493 uart0: uart@9000 {
494 compatible = "snps,dw-apb-uart";
495 reg = <0x9000 0x100>;
496 interrupt-parent = <&sic>;
497 interrupts = <8>;
414dcf8f 498 clocks = <&refclk>;
374ddcbf 499 reg-shift = <2>;
50cc24ff
AT
500 pinctrl-0 = <&uart0_pmux>;
501 pinctrl-names = "default";
374ddcbf
AT
502 status = "disabled";
503 };
504
505 uart1: uart@a000 {
506 compatible = "snps,dw-apb-uart";
507 reg = <0xa000 0x100>;
508 interrupt-parent = <&sic>;
509 interrupts = <9>;
414dcf8f 510 clocks = <&refclk>;
374ddcbf 511 reg-shift = <2>;
50cc24ff
AT
512 pinctrl-0 = <&uart1_pmux>;
513 pinctrl-names = "default";
374ddcbf
AT
514 status = "disabled";
515 };
516
5138d5c5
JZ
517 sm_gpio0: gpio@c000 {
518 compatible = "snps,dw-apb-gpio";
519 reg = <0xc000 0x400>;
520 #address-cells = <1>;
521 #size-cells = <0>;
522
523 porte: gpio-port@4 {
524 compatible = "snps,dw-apb-gpio-port";
525 gpio-controller;
526 #gpio-cells = <2>;
527 snps,nr-gpios = <32>;
528 reg = <0>;
529 };
530 };
531
50cc24ff 532 sysctrl: pin-controller@d000 {
ffcc33a5 533 compatible = "marvell,berlin2q-system-ctrl", "simple-mfd", "syscon";
50cc24ff
AT
534 reg = <0xd000 0x100>;
535
536 uart0_pmux: uart0-pmux {
537 groups = "GSM12";
538 function = "uart0";
539 };
540
541 uart1_pmux: uart1-pmux {
542 groups = "GSM14";
543 function = "uart1";
544 };
99f3deb8
AT
545
546 twsi2_pmux: twsi2-pmux {
547 groups = "GSM13";
548 function = "twsi2";
549 };
550
551 twsi3_pmux: twsi3-pmux {
552 groups = "GSM14";
553 function = "twsi3";
554 };
50cc24ff
AT
555 };
556
374ddcbf
AT
557 sic: interrupt-controller@e000 {
558 compatible = "snps,dw-apb-ictl";
559 reg = <0xe000 0x30>;
560 interrupt-controller;
561 #interrupt-cells = <1>;
562 interrupt-parent = <&gic>;
563 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
564 };
565 };
566 };
567};
This page took 0.095031 seconds and 5 git commands to generate.