blob: 8b73c80f1dad40995be65547ee5caa4a4fbffdaa [file] [log] [blame]
Jason Cooper3d468b62012-02-27 16:07:13 +00001/include/ "skeleton.dtsi"
2
Ezequiel Garcia3ec81e72013-07-26 10:18:04 -03003#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
4
Jason Cooper3d468b62012-02-27 16:07:13 +00005/ {
Andrew Lunn77843502012-07-18 19:22:54 +02006 compatible = "marvell,kirkwood";
Andrew Lunn278b45b2012-06-27 13:40:04 +02007 interrupt-parent = <&intc>;
8
Adam Baker33a66752013-06-02 22:59:50 +01009 cpus {
10 #address-cells = <1>;
11 #size-cells = <0>;
12
13 cpu@0 {
14 device_type = "cpu";
15 compatible = "marvell,feroceon";
Andrew Lunn22904142013-09-13 22:09:52 +020016 reg = <0>;
Adam Baker33a66752013-06-02 22:59:50 +010017 clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>;
18 clock-names = "cpu_clk", "ddrclk", "powersave";
19 };
20 };
21
Andrew Lunnf9e75922012-11-17 17:00:44 +010022 aliases {
23 gpio0 = &gpio0;
24 gpio1 = &gpio1;
25 };
Jason Cooper3d468b62012-02-27 16:07:13 +000026
Ezequiel Garcia455f81a2013-07-26 10:18:03 -030027 mbus {
28 compatible = "marvell,kirkwood-mbus", "simple-bus";
Ezequiel Garcia54397d82013-07-26 10:18:05 -030029 #address-cells = <2>;
30 #size-cells = <1>;
Jason Gunthorpe7f69f8a2013-09-17 12:41:46 -060031 /* If a board file needs to change this ranges it must replace it completely */
32 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 /* internal-regs */
33 MBUS_ID(0x01, 0x2f) 0 0xf4000000 0x10000 /* nand flash */
34 MBUS_ID(0x03, 0x01) 0 0xf5000000 0x10000 /* crypto sram */
35 >;
Ezequiel Garcia455f81a2013-07-26 10:18:03 -030036 controller = <&mbusc>;
Ezequiel Garcia54397d82013-07-26 10:18:05 -030037 pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */
38 pcie-io-aperture = <0xf2000000 0x100000>; /* 1 MiB I/O space */
Jason Gunthorpe34a30092013-09-17 12:43:09 -060039
40 crypto@0301 {
41 compatible = "marvell,orion-crypto";
42 reg = <MBUS_ID(0xf0, 0x01) 0x30000 0x10000>,
43 <MBUS_ID(0x03, 0x01) 0 0x800>;
44 reg-names = "regs", "sram";
45 interrupts = <22>;
46 clocks = <&gate_clk 17>;
47 status = "okay";
48 };
Jason Gunthorpe7045ff52013-09-17 12:44:33 -060049
50 nand: nand@012f {
51 #address-cells = <1>;
52 #size-cells = <1>;
53 cle = <0>;
54 ale = <1>;
55 bank-width = <1>;
56 compatible = "marvell,orion-nand";
57 reg = <MBUS_ID(0x01, 0x2f) 0 0x400>;
58 chip-delay = <25>;
59 /* set partition map and/or chip-delay in board dts */
60 clocks = <&gate_clk 7>;
61 status = "disabled";
62 };
Ezequiel Garcia455f81a2013-07-26 10:18:03 -030063 };
64
Jason Cooper163f2ce2012-03-15 01:00:27 +000065 ocp@f1000000 {
66 compatible = "simple-bus";
Jason Gunthorpe7045ff52013-09-17 12:44:33 -060067 ranges = <0x00000000 0xf1000000 0x0100000>;
Jason Cooper163f2ce2012-03-15 01:00:27 +000068 #address-cells = <1>;
69 #size-cells = <1>;
70
Ezequiel Garcia455f81a2013-07-26 10:18:03 -030071 mbusc: mbus-controller@20000 {
72 compatible = "marvell,mbus-controller";
73 reg = <0x20000 0x80>, <0x1500 0x20>;
74 };
75
Sebastian Hesselbarth15f18592013-07-02 13:03:38 +020076 timer: timer@20300 {
77 compatible = "marvell,orion-timer";
78 reg = <0x20300 0x20>;
79 interrupt-parent = <&bridge_intc>;
80 interrupts = <1>, <2>;
81 clocks = <&core_clk 0>;
82 };
83
84 intc: main-interrupt-ctrl@20200 {
85 compatible = "marvell,orion-intc";
86 interrupt-controller;
87 #interrupt-cells = <1>;
88 reg = <0x20200 0x10>, <0x20210 0x10>;
89 };
90
91 bridge_intc: bridge-interrupt-ctrl@20110 {
92 compatible = "marvell,orion-bridge-intc";
93 interrupt-controller;
94 #interrupt-cells = <1>;
95 reg = <0x20110 0x8>;
96 interrupts = <1>;
97 marvell,#interrupts = <6>;
98 };
99
Andrew Lunn1611f872012-11-17 15:22:28 +0100100 core_clk: core-clocks@10030 {
101 compatible = "marvell,kirkwood-core-clock";
102 reg = <0x10030 0x4>;
103 #clock-cells = <1>;
104 };
105
Andrew Lunn278b45b2012-06-27 13:40:04 +0200106 gpio0: gpio@10100 {
107 compatible = "marvell,orion-gpio";
108 #gpio-cells = <2>;
109 gpio-controller;
110 reg = <0x10100 0x40>;
Andrew Lunnf9e75922012-11-17 17:00:44 +0100111 ngpios = <32>;
112 interrupt-controller;
Sebastian Hesselbarth09d75bc2013-01-22 20:46:33 +0100113 #interrupt-cells = <2>;
Andrew Lunn278b45b2012-06-27 13:40:04 +0200114 interrupts = <35>, <36>, <37>, <38>;
Andrew Lunnde887472013-02-03 11:34:26 +0100115 clocks = <&gate_clk 7>;
Andrew Lunn278b45b2012-06-27 13:40:04 +0200116 };
117
118 gpio1: gpio@10140 {
119 compatible = "marvell,orion-gpio";
120 #gpio-cells = <2>;
121 gpio-controller;
122 reg = <0x10140 0x40>;
Andrew Lunnf9e75922012-11-17 17:00:44 +0100123 ngpios = <18>;
124 interrupt-controller;
Sebastian Hesselbarth09d75bc2013-01-22 20:46:33 +0100125 #interrupt-cells = <2>;
Andrew Lunn278b45b2012-06-27 13:40:04 +0200126 interrupts = <39>, <40>, <41>;
Andrew Lunnde887472013-02-03 11:34:26 +0100127 clocks = <&gate_clk 7>;
Andrew Lunn278b45b2012-06-27 13:40:04 +0200128 };
129
Jason Cooper163f2ce2012-03-15 01:00:27 +0000130 serial@12000 {
131 compatible = "ns16550a";
132 reg = <0x12000 0x100>;
133 reg-shift = <2>;
134 interrupts = <33>;
Andrew Lunn1611f872012-11-17 15:22:28 +0100135 clocks = <&gate_clk 7>;
Jason Cooper163f2ce2012-03-15 01:00:27 +0000136 status = "disabled";
137 };
138
139 serial@12100 {
140 compatible = "ns16550a";
141 reg = <0x12100 0x100>;
142 reg-shift = <2>;
143 interrupts = <34>;
Andrew Lunn1611f872012-11-17 15:22:28 +0100144 clocks = <&gate_clk 7>;
Jason Cooper163f2ce2012-03-15 01:00:27 +0000145 status = "disabled";
146 };
Jason Coopere871b872012-03-06 23:55:04 +0000147
Michael Walle76372122012-06-06 20:30:57 +0200148 spi@10600 {
149 compatible = "marvell,orion-spi";
150 #address-cells = <1>;
151 #size-cells = <0>;
152 cell-index = <0>;
153 interrupts = <23>;
154 reg = <0x10600 0x28>;
Andrew Lunn1611f872012-11-17 15:22:28 +0100155 clocks = <&gate_clk 7>;
Michael Walle76372122012-06-06 20:30:57 +0200156 status = "disabled";
157 };
158
Andrew Lunn1611f872012-11-17 15:22:28 +0100159 gate_clk: clock-gating-control@2011c {
160 compatible = "marvell,kirkwood-gating-clock";
161 reg = <0x2011c 0x4>;
162 clocks = <&core_clk 0>;
163 #clock-cells = <1>;
164 };
165
Sebastian Hesselbarth15f18592013-07-02 13:03:38 +0200166 wdt: watchdog-timer@20300 {
Andrew Lunn1e7bad02012-06-10 15:20:06 +0200167 compatible = "marvell,orion-wdt";
168 reg = <0x20300 0x28>;
Sebastian Hesselbarth15f18592013-07-02 13:03:38 +0200169 interrupt-parent = <&bridge_intc>;
170 interrupts = <3>;
Andrew Lunn1611f872012-11-17 15:22:28 +0100171 clocks = <&gate_clk 7>;
Andrew Lunn1e7bad02012-06-10 15:20:06 +0200172 status = "okay";
173 };
174
Andrew Lunnc896ed02012-11-18 11:44:57 +0100175 xor@60800 {
176 compatible = "marvell,orion-xor";
177 reg = <0x60800 0x100
178 0x60A00 0x100>;
179 status = "okay";
180 clocks = <&gate_clk 8>;
181
182 xor00 {
183 interrupts = <5>;
184 dmacap,memcpy;
185 dmacap,xor;
186 };
187 xor01 {
188 interrupts = <6>;
189 dmacap,memcpy;
190 dmacap,xor;
191 dmacap,memset;
192 };
193 };
194
195 xor@60900 {
196 compatible = "marvell,orion-xor";
197 reg = <0x60900 0x100
Quentin Armitageddf7e392013-09-19 12:00:29 +0100198 0x60B00 0x100>;
Andrew Lunnc896ed02012-11-18 11:44:57 +0100199 status = "okay";
200 clocks = <&gate_clk 16>;
201
202 xor00 {
203 interrupts = <7>;
204 dmacap,memcpy;
205 dmacap,xor;
206 };
207 xor01 {
208 interrupts = <8>;
209 dmacap,memcpy;
210 dmacap,xor;
211 dmacap,memset;
212 };
213 };
214
Andrew Lunnb6cf8072012-10-20 13:10:01 +0200215 ehci@50000 {
216 compatible = "marvell,orion-ehci";
217 reg = <0x50000 0x1000>;
218 interrupts = <19>;
Andrew Lunn53dfa8e2013-01-06 11:10:34 +0100219 clocks = <&gate_clk 3>;
Andrew Lunnb6cf8072012-10-20 13:10:01 +0200220 status = "okay";
221 };
222
Andrew Lunne91cac02012-07-20 13:51:55 +0200223 i2c@11000 {
224 compatible = "marvell,mv64xxx-i2c";
225 reg = <0x11000 0x20>;
226 #address-cells = <1>;
227 #size-cells = <0>;
228 interrupts = <29>;
229 clock-frequency = <100000>;
Andrew Lunn1611f872012-11-17 15:22:28 +0100230 clocks = <&gate_clk 7>;
Andrew Lunne91cac02012-07-20 13:51:55 +0200231 status = "disabled";
232 };
Andrew Lunnf37fbd32012-09-03 20:29:34 +0200233
Sebastian Hesselbarth876e2332013-07-07 22:34:56 +0200234 mdio: mdio-bus@72004 {
235 compatible = "marvell,orion-mdio";
236 #address-cells = <1>;
237 #size-cells = <0>;
238 reg = <0x72004 0x84>;
239 interrupts = <46>;
240 clocks = <&gate_clk 0>;
241 status = "disabled";
242
243 /* add phy nodes in board file */
244 };
245
246 eth0: ethernet-controller@72000 {
247 compatible = "marvell,kirkwood-eth";
248 #address-cells = <1>;
249 #size-cells = <0>;
250 reg = <0x72000 0x4000>;
251 clocks = <&gate_clk 0>;
252 marvell,tx-checksum-limit = <1600>;
253 status = "disabled";
254
255 ethernet0-port@0 {
256 device_type = "network";
257 compatible = "marvell,kirkwood-eth-port";
258 reg = <0>;
259 interrupts = <11>;
260 /* overwrite MAC address in bootloader */
261 local-mac-address = [00 00 00 00 00 00];
262 /* set phy-handle property in board file */
263 };
264 };
265
266 eth1: ethernet-controller@76000 {
267 compatible = "marvell,kirkwood-eth";
268 #address-cells = <1>;
269 #size-cells = <0>;
270 reg = <0x76000 0x4000>;
271 clocks = <&gate_clk 19>;
272 marvell,tx-checksum-limit = <1600>;
273 status = "disabled";
274
275 ethernet1-port@0 {
276 device_type = "network";
277 compatible = "marvell,kirkwood-eth-port";
278 reg = <0>;
279 interrupts = <15>;
280 /* overwrite MAC address in bootloader */
281 local-mac-address = [00 00 00 00 00 00];
282 /* set phy-handle property in board file */
283 };
284 };
Jason Cooper163f2ce2012-03-15 01:00:27 +0000285 };
286};