blob: 2c34bfb13632079331c7122bccc5650c688cf630 [file] [log] [blame]
Antoine Tenart374ddcb2014-03-18 15:32:45 +01001/*
2 * Copyright (C) 2014 Antoine Ténart <antoine.tenart@free-electrons.com>
3 *
Antoine Tenartaf989452015-04-27 21:39:46 +02004 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is licensed under the terms of the GNU General Public
10 * License version 2. This program is licensed "as is" without any
11 * warranty of any kind, whether express or implied.
12 *
13 * Or, alternatively,
14 *
15 * b) Permission is hereby granted, free of charge, to any person
16 * obtaining a copy of this software and associated documentation
17 * files (the "Software"), to deal in the Software without
18 * restriction, including without limitation the rights to use,
19 * copy, modify, merge, publish, distribute, sublicense, and/or
20 * sell copies of the Software, and to permit persons to whom the
21 * Software is furnished to do so, subject to the following
22 * conditions:
23 *
24 * The above copyright notice and this permission notice shall be
25 * included in all copies or substantial portions of the Software.
26 *
27 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
29 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
30 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
31 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
32 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
33 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
34 * OTHER DEALINGS IN THE SOFTWARE.
Antoine Tenart374ddcb2014-03-18 15:32:45 +010035 */
36
Alexandre Belloni414dcf82014-05-12 22:07:35 +020037#include <dt-bindings/clock/berlin2q.h>
Antoine Tenart374ddcb2014-03-18 15:32:45 +010038#include <dt-bindings/interrupt-controller/arm-gic.h>
39
40#include "skeleton.dtsi"
41
42/ {
43 model = "Marvell Armada 1500 pro (BG2-Q) SoC";
44 compatible = "marvell,berlin2q", "marvell,berlin";
45
Jisheng Zhang487eacb2015-09-14 14:42:12 +080046 aliases {
47 serial0 = &uart0;
48 serial1 = &uart1;
49 };
50
Antoine Tenart374ddcb2014-03-18 15:32:45 +010051 cpus {
52 #address-cells = <1>;
53 #size-cells = <0>;
Antoine Ténartd19c9362014-06-04 18:03:46 +020054 enable-method = "marvell,berlin-smp";
Antoine Tenart374ddcb2014-03-18 15:32:45 +010055
56 cpu@0 {
57 compatible = "arm,cortex-a9";
58 device_type = "cpu";
59 next-level-cache = <&l2>;
60 reg = <0>;
Antoine Tenart23998642015-09-17 12:15:02 +020061
62 clocks = <&chip_clk CLKID_CPU>;
63 clock-latency = <100000>;
64 /* Can be modified by the bootloader */
65 operating-points = <
66 /* kHz uV */
67 1200000 1200000
68 1000000 1200000
69 800000 1200000
70 600000 1200000
71 >;
Antoine Tenart374ddcb2014-03-18 15:32:45 +010072 };
73
74 cpu@1 {
75 compatible = "arm,cortex-a9";
76 device_type = "cpu";
77 next-level-cache = <&l2>;
78 reg = <1>;
79 };
80
81 cpu@2 {
82 compatible = "arm,cortex-a9";
83 device_type = "cpu";
84 next-level-cache = <&l2>;
85 reg = <2>;
86 };
87
88 cpu@3 {
89 compatible = "arm,cortex-a9";
90 device_type = "cpu";
91 next-level-cache = <&l2>;
92 reg = <3>;
93 };
94 };
95
Alexandre Belloni414dcf82014-05-12 22:07:35 +020096 refclk: oscillator {
Antoine Tenart374ddcb2014-03-18 15:32:45 +010097 compatible = "fixed-clock";
98 #clock-cells = <0>;
99 clock-frequency = <25000000>;
100 };
101
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100102 soc {
103 compatible = "simple-bus";
104 #address-cells = <1>;
105 #size-cells = <1>;
106
107 ranges = <0 0xf7000000 0x1000000>;
108 interrupt-parent = <&gic>;
109
Jisheng Zhangd4ce8042014-12-26 16:57:59 +0800110 pmu {
111 compatible = "arm,cortex-a9-pmu";
112 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
113 <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
114 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
115 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
116 };
117
Antoine Tenart0d859a62014-05-19 22:03:00 +0200118 sdhci0: sdhci@ab0000 {
119 compatible = "mrvl,pxav3-mmc";
120 reg = <0xab0000 0x200>;
Jisheng Zhangb5010d22015-12-07 21:09:25 +0800121 clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
122 clock-names = "io", "core";
Antoine Tenart0d859a62014-05-19 22:03:00 +0200123 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
124 status = "disabled";
125 };
126
127 sdhci1: sdhci@ab0800 {
128 compatible = "mrvl,pxav3-mmc";
129 reg = <0xab0800 0x200>;
Jisheng Zhangb5010d22015-12-07 21:09:25 +0800130 clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
131 clock-names = "io", "core";
Antoine Tenart0d859a62014-05-19 22:03:00 +0200132 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
133 status = "disabled";
134 };
135
136 sdhci2: sdhci@ab1000 {
137 compatible = "mrvl,pxav3-mmc";
138 reg = <0xab1000 0x200>;
139 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
Jisheng Zhang5d756142015-12-07 21:09:24 +0800140 clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_SDIO>;
Jisheng Zhang96ed6042014-12-31 16:57:50 +0800141 clock-names = "io", "core";
Antoine Tenart0d859a62014-05-19 22:03:00 +0200142 status = "disabled";
143 };
144
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100145 l2: l2-cache-controller@ac0000 {
146 compatible = "arm,pl310-cache";
147 reg = <0xac0000 0x1000>;
148 cache-level = <2>;
Jisheng Zhang44991eb2014-06-12 17:38:40 +0800149 arm,data-latency = <2 2 2>;
150 arm,tag-latency = <2 2 2>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100151 };
152
Sebastian Hesselbarth0bd4b342014-03-13 13:32:34 +0100153 scu: snoop-control-unit@ad0000 {
154 compatible = "arm,cortex-a9-scu";
155 reg = <0xad0000 0x58>;
156 };
157
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100158 local-timer@ad0600 {
159 compatible = "arm,cortex-a9-twd-timer";
160 reg = <0xad0600 0x20>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200161 clocks = <&chip_clk CLKID_TWD>;
Jisheng Zhang2356d2f2014-12-26 16:58:00 +0800162 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100163 };
164
165 gic: interrupt-controller@ad1000 {
166 compatible = "arm,cortex-a9-gic";
167 reg = <0xad1000 0x1000>, <0xad0100 0x100>;
168 interrupt-controller;
169 #interrupt-cells = <3>;
170 };
171
Antoine Tenartc5397112014-11-17 14:35:44 +0100172 usb_phy2: phy@a2f400 {
Thomas Hebb1f744fd2015-10-01 21:00:00 +0200173 compatible = "marvell,berlin2cd-usb-phy";
Antoine Tenartc5397112014-11-17 14:35:44 +0100174 reg = <0xa2f400 0x128>;
175 #phy-cells = <0>;
Antoine Tenart43225722015-05-16 00:50:40 +0200176 resets = <&chip_rst 0x104 14>;
Antoine Tenartc5397112014-11-17 14:35:44 +0100177 status = "disabled";
178 };
179
180 usb2: usb@a30000 {
181 compatible = "chipidea,usb2";
182 reg = <0xa30000 0x10000>;
183 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200184 clocks = <&chip_clk CLKID_USB2>;
Antoine Tenartc5397112014-11-17 14:35:44 +0100185 phys = <&usb_phy2>;
186 phy-names = "usb-phy";
187 status = "disabled";
188 };
189
190 usb_phy0: phy@b74000 {
Thomas Hebb1f744fd2015-10-01 21:00:00 +0200191 compatible = "marvell,berlin2cd-usb-phy";
Antoine Tenartc5397112014-11-17 14:35:44 +0100192 reg = <0xb74000 0x128>;
193 #phy-cells = <0>;
Antoine Tenart43225722015-05-16 00:50:40 +0200194 resets = <&chip_rst 0x104 12>;
Antoine Tenartc5397112014-11-17 14:35:44 +0100195 status = "disabled";
196 };
197
198 usb_phy1: phy@b78000 {
Thomas Hebb1f744fd2015-10-01 21:00:00 +0200199 compatible = "marvell,berlin2cd-usb-phy";
Antoine Tenartc5397112014-11-17 14:35:44 +0100200 reg = <0xb78000 0x128>;
201 #phy-cells = <0>;
Antoine Tenart43225722015-05-16 00:50:40 +0200202 resets = <&chip_rst 0x104 13>;
Antoine Tenartc5397112014-11-17 14:35:44 +0100203 status = "disabled";
204 };
205
Antoine Ténartbdc06cd2014-09-30 16:28:15 +0200206 eth0: ethernet@b90000 {
207 compatible = "marvell,pxa168-eth";
208 reg = <0xb90000 0x10000>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200209 clocks = <&chip_clk CLKID_GETH0>;
Antoine Ténartbdc06cd2014-09-30 16:28:15 +0200210 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
211 /* set by bootloader */
212 local-mac-address = [00 00 00 00 00 00];
213 #address-cells = <1>;
214 #size-cells = <0>;
Antoine Ténartf5799dc2014-10-22 20:26:51 +0200215 phy-connection-type = "mii";
Antoine Ténartbdc06cd2014-09-30 16:28:15 +0200216 phy-handle = <&ethphy0>;
217 status = "disabled";
218
219 ethphy0: ethernet-phy@0 {
220 reg = <0>;
221 };
222 };
223
Antoine Ténartd19c9362014-06-04 18:03:46 +0200224 cpu-ctrl@dd0000 {
225 compatible = "marvell,berlin-cpu-ctrl";
226 reg = <0xdd0000 0x10000>;
227 };
228
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100229 apb@e80000 {
230 compatible = "simple-bus";
231 #address-cells = <1>;
232 #size-cells = <1>;
233
234 ranges = <0 0xe80000 0x10000>;
235 interrupt-parent = <&aic>;
236
Antoine Tenartcedf57f2014-04-16 21:18:41 +0200237 gpio0: gpio@0400 {
238 compatible = "snps,dw-apb-gpio";
239 reg = <0x0400 0x400>;
240 #address-cells = <1>;
241 #size-cells = <0>;
242
243 porta: gpio-port@0 {
244 compatible = "snps,dw-apb-gpio-port";
245 gpio-controller;
246 #gpio-cells = <2>;
247 snps,nr-gpios = <32>;
248 reg = <0>;
249 interrupt-controller;
250 #interrupt-cells = <2>;
251 interrupts = <0>;
252 };
253 };
254
255 gpio1: gpio@0800 {
256 compatible = "snps,dw-apb-gpio";
257 reg = <0x0800 0x400>;
258 #address-cells = <1>;
259 #size-cells = <0>;
260
261 portb: gpio-port@1 {
262 compatible = "snps,dw-apb-gpio-port";
263 gpio-controller;
264 #gpio-cells = <2>;
265 snps,nr-gpios = <32>;
266 reg = <0>;
267 interrupt-controller;
268 #interrupt-cells = <2>;
269 interrupts = <1>;
270 };
271 };
272
273 gpio2: gpio@0c00 {
274 compatible = "snps,dw-apb-gpio";
275 reg = <0x0c00 0x400>;
276 #address-cells = <1>;
277 #size-cells = <0>;
278
279 portc: gpio-port@2 {
280 compatible = "snps,dw-apb-gpio-port";
281 gpio-controller;
282 #gpio-cells = <2>;
283 snps,nr-gpios = <32>;
284 reg = <0>;
285 interrupt-controller;
286 #interrupt-cells = <2>;
287 interrupts = <2>;
288 };
289 };
290
291 gpio3: gpio@1000 {
292 compatible = "snps,dw-apb-gpio";
293 reg = <0x1000 0x400>;
294 #address-cells = <1>;
295 #size-cells = <0>;
296
297 portd: gpio-port@3 {
298 compatible = "snps,dw-apb-gpio-port";
299 gpio-controller;
300 #gpio-cells = <2>;
301 snps,nr-gpios = <32>;
302 reg = <0>;
303 interrupt-controller;
304 #interrupt-cells = <2>;
305 interrupts = <3>;
306 };
307 };
308
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200309 i2c0: i2c@1400 {
310 compatible = "snps,designware-i2c";
311 #address-cells = <1>;
312 #size-cells = <0>;
313 reg = <0x1400 0x100>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200314 interrupts = <4>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200315 clocks = <&chip_clk CLKID_CFG>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200316 pinctrl-0 = <&twsi0_pmux>;
317 pinctrl-names = "default";
318 status = "disabled";
319 };
320
321 i2c1: i2c@1800 {
322 compatible = "snps,designware-i2c";
323 #address-cells = <1>;
324 #size-cells = <0>;
325 reg = <0x1800 0x100>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200326 interrupts = <5>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200327 clocks = <&chip_clk CLKID_CFG>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200328 pinctrl-0 = <&twsi1_pmux>;
329 pinctrl-names = "default";
330 status = "disabled";
331 };
332
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100333 timer0: timer@2c00 {
334 compatible = "snps,dw-apb-timer";
335 reg = <0x2c00 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200336 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100337 clock-names = "timer";
338 interrupts = <8>;
339 };
340
341 timer1: timer@2c14 {
342 compatible = "snps,dw-apb-timer";
343 reg = <0x2c14 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200344 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100345 clock-names = "timer";
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100346 };
347
348 timer2: timer@2c28 {
349 compatible = "snps,dw-apb-timer";
350 reg = <0x2c28 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200351 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100352 clock-names = "timer";
353 status = "disabled";
354 };
355
356 timer3: timer@2c3c {
357 compatible = "snps,dw-apb-timer";
358 reg = <0x2c3c 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200359 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100360 clock-names = "timer";
361 status = "disabled";
362 };
363
364 timer4: timer@2c50 {
365 compatible = "snps,dw-apb-timer";
366 reg = <0x2c50 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200367 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100368 clock-names = "timer";
369 status = "disabled";
370 };
371
372 timer5: timer@2c64 {
373 compatible = "snps,dw-apb-timer";
374 reg = <0x2c64 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200375 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100376 clock-names = "timer";
377 status = "disabled";
378 };
379
380 timer6: timer@2c78 {
381 compatible = "snps,dw-apb-timer";
382 reg = <0x2c78 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200383 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100384 clock-names = "timer";
385 status = "disabled";
386 };
387
388 timer7: timer@2c8c {
389 compatible = "snps,dw-apb-timer";
390 reg = <0x2c8c 0x14>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200391 clocks = <&chip_clk CLKID_CFG>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100392 clock-names = "timer";
393 status = "disabled";
394 };
395
396 aic: interrupt-controller@3800 {
397 compatible = "snps,dw-apb-ictl";
398 reg = <0x3800 0x30>;
399 interrupt-controller;
400 #interrupt-cells = <1>;
401 interrupt-parent = <&gic>;
402 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
403 };
404 };
405
Alexandre Belloni414dcf82014-05-12 22:07:35 +0200406 chip: chip-control@ea0000 {
Antoine Tenartf3f94f72015-05-16 01:54:58 +0200407 compatible = "simple-mfd", "syscon";
Alexandre Belloni414dcf82014-05-12 22:07:35 +0200408 reg = <0xea0000 0x400>, <0xdd0170 0x10>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200409
Antoine Tenarta457b862015-05-16 01:48:21 +0200410 chip_clk: clock {
411 compatible = "marvell,berlin2q-clk";
412 #clock-cells = <1>;
413 clocks = <&refclk>;
414 clock-names = "refclk";
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200415 };
416
Antoine Tenart630c9862015-05-16 01:18:07 +0200417 soc_pinctrl: pin-controller {
418 compatible = "marvell,berlin2q-soc-pinctrl";
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200419
Jisheng Zhangac4111a2015-11-30 21:54:39 +0800420 sd1_pmux: sd1-pmux {
421 groups = "G31";
422 function = "sd1";
423 };
424
Antoine Tenart630c9862015-05-16 01:18:07 +0200425 twsi0_pmux: twsi0-pmux {
426 groups = "G6";
427 function = "twsi0";
428 };
429
430 twsi1_pmux: twsi1-pmux {
431 groups = "G7";
432 function = "twsi1";
433 };
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200434 };
Antoine Tenart43225722015-05-16 00:50:40 +0200435
436 chip_rst: reset {
437 compatible = "marvell,berlin2-reset";
438 #reset-cells = <2>;
Alexandre Belloni414dcf82014-05-12 22:07:35 +0200439 };
Sebastian Hesselbarth0bd4b342014-03-13 13:32:34 +0100440 };
441
Antoine Ténart70a2b712014-07-30 20:14:00 +0200442 ahci: sata@e90000 {
443 compatible = "marvell,berlin2q-ahci", "generic-ahci";
444 reg = <0xe90000 0x1000>;
445 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200446 clocks = <&chip_clk CLKID_SATA>;
Antoine Ténart70a2b712014-07-30 20:14:00 +0200447 #address-cells = <1>;
448 #size-cells = <0>;
449
450 sata0: sata-port@0 {
451 reg = <0>;
452 phys = <&sata_phy 0>;
453 status = "disabled";
454 };
455
456 sata1: sata-port@1 {
457 reg = <1>;
458 phys = <&sata_phy 1>;
459 status = "disabled";
460 };
461 };
462
463 sata_phy: phy@e900a0 {
464 compatible = "marvell,berlin2q-sata-phy";
465 reg = <0xe900a0 0x200>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200466 clocks = <&chip_clk CLKID_SATA>;
Antoine Ténart70a2b712014-07-30 20:14:00 +0200467 #address-cells = <1>;
468 #size-cells = <0>;
469 #phy-cells = <1>;
470 status = "disabled";
471
472 sata-phy@0 {
473 reg = <0>;
474 };
475
476 sata-phy@1 {
477 reg = <1>;
478 };
479 };
480
Antoine Tenartc5397112014-11-17 14:35:44 +0100481 usb0: usb@ed0000 {
482 compatible = "chipidea,usb2";
483 reg = <0xed0000 0x10000>;
484 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200485 clocks = <&chip_clk CLKID_USB0>;
Antoine Tenartc5397112014-11-17 14:35:44 +0100486 phys = <&usb_phy0>;
487 phy-names = "usb-phy";
488 status = "disabled";
489 };
490
491 usb1: usb@ee0000 {
492 compatible = "chipidea,usb2";
493 reg = <0xee0000 0x10000>;
494 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
Antoine Tenarta457b862015-05-16 01:48:21 +0200495 clocks = <&chip_clk CLKID_USB1>;
Antoine Tenartc5397112014-11-17 14:35:44 +0100496 phys = <&usb_phy1>;
497 phy-names = "usb-phy";
498 status = "disabled";
499 };
500
Antoine Tenart956d8212015-10-02 16:59:48 +0200501 pwm: pwm@f20000 {
502 compatible = "marvell,berlin-pwm";
503 reg = <0xf20000 0x40>;
504 clocks = <&chip_clk CLKID_CFG>;
505 #pwm-cells = <3>;
506 };
507
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100508 apb@fc0000 {
509 compatible = "simple-bus";
510 #address-cells = <1>;
511 #size-cells = <1>;
512
513 ranges = <0 0xfc0000 0x10000>;
514 interrupt-parent = <&sic>;
515
Jisheng Zhanga94eaa92015-11-16 19:09:47 +0800516 wdt0: watchdog@1000 {
517 compatible = "snps,dw-wdt";
518 reg = <0x1000 0x100>;
519 clocks = <&refclk>;
520 interrupts = <0>;
521 };
522
523 wdt1: watchdog@2000 {
524 compatible = "snps,dw-wdt";
525 reg = <0x2000 0x100>;
526 clocks = <&refclk>;
527 interrupts = <1>;
528 status = "disabled";
529 };
530
531 wdt2: watchdog@3000 {
532 compatible = "snps,dw-wdt";
533 reg = <0x3000 0x100>;
534 clocks = <&refclk>;
535 interrupts = <2>;
536 status = "disabled";
537 };
538
Jisheng Zhang5138d5c2014-12-26 16:58:01 +0800539 sm_gpio1: gpio@5000 {
540 compatible = "snps,dw-apb-gpio";
541 reg = <0x5000 0x400>;
542 #address-cells = <1>;
543 #size-cells = <0>;
544
545 portf: gpio-port@5 {
546 compatible = "snps,dw-apb-gpio-port";
547 gpio-controller;
548 #gpio-cells = <2>;
549 snps,nr-gpios = <32>;
550 reg = <0>;
551 };
552 };
553
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200554 i2c2: i2c@7000 {
555 compatible = "snps,designware-i2c";
556 #address-cells = <1>;
557 #size-cells = <0>;
558 reg = <0x7000 0x100>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200559 interrupts = <6>;
560 clocks = <&refclk>;
561 pinctrl-0 = <&twsi2_pmux>;
562 pinctrl-names = "default";
563 status = "disabled";
564 };
565
566 i2c3: i2c@8000 {
567 compatible = "snps,designware-i2c";
568 #address-cells = <1>;
569 #size-cells = <0>;
570 reg = <0x8000 0x100>;
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200571 interrupts = <7>;
572 clocks = <&refclk>;
573 pinctrl-0 = <&twsi3_pmux>;
574 pinctrl-names = "default";
575 status = "disabled";
576 };
577
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100578 uart0: uart@9000 {
579 compatible = "snps,dw-apb-uart";
580 reg = <0x9000 0x100>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100581 interrupts = <8>;
Alexandre Belloni414dcf82014-05-12 22:07:35 +0200582 clocks = <&refclk>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100583 reg-shift = <2>;
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200584 pinctrl-0 = <&uart0_pmux>;
585 pinctrl-names = "default";
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100586 status = "disabled";
587 };
588
589 uart1: uart@a000 {
590 compatible = "snps,dw-apb-uart";
591 reg = <0xa000 0x100>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100592 interrupts = <9>;
Alexandre Belloni414dcf82014-05-12 22:07:35 +0200593 clocks = <&refclk>;
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100594 reg-shift = <2>;
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200595 pinctrl-0 = <&uart1_pmux>;
596 pinctrl-names = "default";
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100597 status = "disabled";
598 };
599
Jisheng Zhang5138d5c2014-12-26 16:58:01 +0800600 sm_gpio0: gpio@c000 {
601 compatible = "snps,dw-apb-gpio";
602 reg = <0xc000 0x400>;
603 #address-cells = <1>;
604 #size-cells = <0>;
605
606 porte: gpio-port@4 {
607 compatible = "snps,dw-apb-gpio-port";
608 gpio-controller;
609 #gpio-cells = <2>;
610 snps,nr-gpios = <32>;
611 reg = <0>;
612 };
613 };
614
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200615 sysctrl: pin-controller@d000 {
Antoine Tenartf3f94f72015-05-16 01:54:58 +0200616 compatible = "simple-mfd", "syscon";
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200617 reg = <0xd000 0x100>;
618
Antoine Tenart630c9862015-05-16 01:18:07 +0200619 sys_pinctrl: pin-controller {
620 compatible = "marvell,berlin2q-system-pinctrl";
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200621
Antoine Tenart630c9862015-05-16 01:18:07 +0200622 uart0_pmux: uart0-pmux {
623 groups = "GSM12";
624 function = "uart0";
625 };
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200626
Antoine Tenart630c9862015-05-16 01:18:07 +0200627 uart1_pmux: uart1-pmux {
628 groups = "GSM14";
629 function = "uart1";
630 };
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200631
Antoine Tenart630c9862015-05-16 01:18:07 +0200632 twsi2_pmux: twsi2-pmux {
633 groups = "GSM13";
634 function = "twsi2";
635 };
636
637 twsi3_pmux: twsi3-pmux {
638 groups = "GSM14";
639 function = "twsi3";
640 };
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200641 };
642
Antoine Tenart5be23612015-05-18 11:19:20 +0200643 adc: adc {
644 compatible = "marvell,berlin2-adc";
645 interrupts = <12>, <14>;
646 interrupt-names = "adc", "tsen";
Antoine Ténart99f3deb2014-06-03 09:33:09 +0200647 };
Antoine Tenart50cc24f2014-05-18 20:15:57 +0200648 };
649
Antoine Tenart374ddcb2014-03-18 15:32:45 +0100650 sic: interrupt-controller@e000 {
651 compatible = "snps,dw-apb-ictl";
652 reg = <0xe000 0x30>;
653 interrupt-controller;
654 #interrupt-cells = <1>;
655 interrupt-parent = <&gic>;
656 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
657 };
658 };
659 };
660};