2 * Copyright (C) 2012 Marvell Technology Group Ltd.
3 * Author: Haojian Zhuang <haojian.zhuang@marvell.com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * publishhed by the Free Software Foundation.
10 #include "skeleton.dtsi"
11 #include <dt-bindings/clock/marvell,mmp2.h>
26 compatible = "simple-bus";
27 interrupt-parent = <&intc>;
31 compatible = "marvell,tauros2-cache";
32 marvell,tauros2-cache-features = <0x3>;
35 axi@d4200000 { /* AXI */
36 compatible = "mrvl,axi-bus", "simple-bus";
39 reg = <0xd4200000 0x00200000>;
42 intc: interrupt-controller@d4282000 {
43 compatible = "mrvl,mmp2-intc";
45 #interrupt-cells = <1>;
46 reg = <0xd4282000 0x1000>;
47 mrvl,intc-nr-irqs = <64>;
50 intcmux4: interrupt-controller@d4282150 {
51 compatible = "mrvl,mmp2-mux-intc";
54 #interrupt-cells = <1>;
55 reg = <0x150 0x4>, <0x168 0x4>;
56 reg-names = "mux status", "mux mask";
57 mrvl,intc-nr-irqs = <2>;
60 intcmux5: interrupt-controller@d4282154 {
61 compatible = "mrvl,mmp2-mux-intc";
64 #interrupt-cells = <1>;
65 reg = <0x154 0x4>, <0x16c 0x4>;
66 reg-names = "mux status", "mux mask";
67 mrvl,intc-nr-irqs = <2>;
68 mrvl,clr-mfp-irq = <1>;
71 intcmux9: interrupt-controller@d4282180 {
72 compatible = "mrvl,mmp2-mux-intc";
75 #interrupt-cells = <1>;
76 reg = <0x180 0x4>, <0x17c 0x4>;
77 reg-names = "mux status", "mux mask";
78 mrvl,intc-nr-irqs = <3>;
81 intcmux17: interrupt-controller@d4282158 {
82 compatible = "mrvl,mmp2-mux-intc";
85 #interrupt-cells = <1>;
86 reg = <0x158 0x4>, <0x170 0x4>;
87 reg-names = "mux status", "mux mask";
88 mrvl,intc-nr-irqs = <5>;
91 intcmux35: interrupt-controller@d428215c {
92 compatible = "mrvl,mmp2-mux-intc";
95 #interrupt-cells = <1>;
96 reg = <0x15c 0x4>, <0x174 0x4>;
97 reg-names = "mux status", "mux mask";
98 mrvl,intc-nr-irqs = <15>;
101 intcmux51: interrupt-controller@d4282160 {
102 compatible = "mrvl,mmp2-mux-intc";
104 interrupt-controller;
105 #interrupt-cells = <1>;
106 reg = <0x160 0x4>, <0x178 0x4>;
107 reg-names = "mux status", "mux mask";
108 mrvl,intc-nr-irqs = <2>;
111 intcmux55: interrupt-controller@d4282188 {
112 compatible = "mrvl,mmp2-mux-intc";
114 interrupt-controller;
115 #interrupt-cells = <1>;
116 reg = <0x188 0x4>, <0x184 0x4>;
117 reg-names = "mux status", "mux mask";
118 mrvl,intc-nr-irqs = <2>;
121 usb_otg_phy0: usb-otg-phy@d4207000 {
122 compatible = "marvell,mmp2-usb-phy";
123 reg = <0xd4207000 0x40>;
128 usb_otg0: usb-otg@d4208000 {
129 compatible = "marvell,pxau2o-ehci";
130 reg = <0xd4208000 0x200>;
132 clocks = <&soc_clocks MMP2_CLK_USB>;
133 clock-names = "USBCLK";
134 phys = <&usb_otg_phy0>;
140 compatible = "mrvl,pxav3-mmc";
141 reg = <0xd4280000 0x120>;
142 clocks = <&soc_clocks MMP2_CLK_SDH0>;
149 compatible = "mrvl,pxav3-mmc";
150 reg = <0xd4280800 0x120>;
151 clocks = <&soc_clocks MMP2_CLK_SDH1>;
158 compatible = "mrvl,pxav3-mmc";
159 reg = <0xd4281000 0x120>;
160 clocks = <&soc_clocks MMP2_CLK_SDH2>;
167 compatible = "mrvl,pxav3-mmc";
168 reg = <0xd4281800 0x120>;
169 clocks = <&soc_clocks MMP2_CLK_SDH3>;
176 apb@d4000000 { /* APB */
177 compatible = "mrvl,apb-bus", "simple-bus";
178 #address-cells = <1>;
180 reg = <0xd4000000 0x00200000>;
183 timer0: timer@d4014000 {
184 compatible = "mrvl,mmp-timer";
185 reg = <0xd4014000 0x100>;
187 clocks = <&soc_clocks MMP2_CLK_TIMER>;
190 uart1: uart@d4030000 {
191 compatible = "mrvl,mmp-uart";
192 reg = <0xd4030000 0x1000>;
194 clocks = <&soc_clocks MMP2_CLK_UART0>;
195 resets = <&soc_clocks MMP2_CLK_UART0>;
199 uart2: uart@d4017000 {
200 compatible = "mrvl,mmp-uart";
201 reg = <0xd4017000 0x1000>;
203 clocks = <&soc_clocks MMP2_CLK_UART1>;
204 resets = <&soc_clocks MMP2_CLK_UART1>;
208 uart3: uart@d4018000 {
209 compatible = "mrvl,mmp-uart";
210 reg = <0xd4018000 0x1000>;
212 clocks = <&soc_clocks MMP2_CLK_UART2>;
213 resets = <&soc_clocks MMP2_CLK_UART2>;
217 uart4: uart@d4016000 {
218 compatible = "mrvl,mmp-uart";
219 reg = <0xd4016000 0x1000>;
221 clocks = <&soc_clocks MMP2_CLK_UART3>;
222 resets = <&soc_clocks MMP2_CLK_UART3>;
226 gpio: gpio@d4019000 {
227 compatible = "marvell,mmp2-gpio";
228 #address-cells = <1>;
230 reg = <0xd4019000 0x1000>;
234 interrupt-names = "gpio_mux";
235 clocks = <&soc_clocks MMP2_CLK_GPIO>;
236 resets = <&soc_clocks MMP2_CLK_GPIO>;
237 interrupt-controller;
238 #interrupt-cells = <2>;
241 gcb0: gpio@d4019000 {
242 reg = <0xd4019000 0x4>;
245 gcb1: gpio@d4019004 {
246 reg = <0xd4019004 0x4>;
249 gcb2: gpio@d4019008 {
250 reg = <0xd4019008 0x4>;
253 gcb3: gpio@d4019100 {
254 reg = <0xd4019100 0x4>;
257 gcb4: gpio@d4019104 {
258 reg = <0xd4019104 0x4>;
261 gcb5: gpio@d4019108 {
262 reg = <0xd4019108 0x4>;
266 twsi1: i2c@d4011000 {
267 compatible = "mrvl,mmp-twsi";
268 reg = <0xd4011000 0x1000>;
270 clocks = <&soc_clocks MMP2_CLK_TWSI0>;
271 resets = <&soc_clocks MMP2_CLK_TWSI0>;
272 #address-cells = <1>;
278 twsi2: i2c@d4031000 {
279 compatible = "mrvl,mmp-twsi";
280 reg = <0xd4031000 0x1000>;
281 interrupt-parent = <&intcmux17>;
283 clocks = <&soc_clocks MMP2_CLK_TWSI1>;
284 resets = <&soc_clocks MMP2_CLK_TWSI1>;
285 #address-cells = <1>;
290 twsi3: i2c@d4032000 {
291 compatible = "mrvl,mmp-twsi";
292 reg = <0xd4032000 0x1000>;
293 interrupt-parent = <&intcmux17>;
295 clocks = <&soc_clocks MMP2_CLK_TWSI2>;
296 resets = <&soc_clocks MMP2_CLK_TWSI2>;
297 #address-cells = <1>;
302 twsi4: i2c@d4033000 {
303 compatible = "mrvl,mmp-twsi";
304 reg = <0xd4033000 0x1000>;
305 interrupt-parent = <&intcmux17>;
307 clocks = <&soc_clocks MMP2_CLK_TWSI3>;
308 resets = <&soc_clocks MMP2_CLK_TWSI3>;
309 #address-cells = <1>;
315 twsi5: i2c@d4033800 {
316 compatible = "mrvl,mmp-twsi";
317 reg = <0xd4033800 0x1000>;
318 interrupt-parent = <&intcmux17>;
320 clocks = <&soc_clocks MMP2_CLK_TWSI4>;
321 resets = <&soc_clocks MMP2_CLK_TWSI4>;
322 #address-cells = <1>;
327 twsi6: i2c@d4034000 {
328 compatible = "mrvl,mmp-twsi";
329 reg = <0xd4034000 0x1000>;
330 interrupt-parent = <&intcmux17>;
332 clocks = <&soc_clocks MMP2_CLK_TWSI5>;
333 resets = <&soc_clocks MMP2_CLK_TWSI5>;
334 #address-cells = <1>;
340 compatible = "mrvl,mmp-rtc";
341 reg = <0xd4010000 0x1000>;
343 interrupt-names = "rtc 1Hz", "rtc alarm";
344 interrupt-parent = <&intcmux5>;
345 clocks = <&soc_clocks MMP2_CLK_RTC>;
346 resets = <&soc_clocks MMP2_CLK_RTC>;
351 compatible = "marvell,mmp2-ssp";
352 reg = <0xd4035000 0x1000>;
353 clocks = <&soc_clocks MMP2_CLK_SSP0>;
359 compatible = "marvell,mmp2-ssp";
360 reg = <0xd4036000 0x1000>;
361 clocks = <&soc_clocks MMP2_CLK_SSP1>;
367 compatible = "marvell,mmp2-ssp";
368 reg = <0xd4037000 0x1000>;
369 clocks = <&soc_clocks MMP2_CLK_SSP2>;
375 compatible = "marvell,mmp2-ssp";
376 reg = <0xd4039000 0x1000>;
377 clocks = <&soc_clocks MMP2_CLK_SSP3>;
384 compatible = "marvell,mmp2-clock";
385 reg = <0xd4050000 0x1000>,
388 reg-names = "mpmu", "apmu", "apbc";