blob: 07bcc5194d2babd0d9f24e312986fc634af43c4c [file] [log] [blame]
Kim Phillips1b9a93e2006-08-29 18:13:31 -05001/*
2 * MPC8349E MDS Device Tree Source
3 *
4 * Copyright 2005, 2006 Freescale Semiconductor Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 */
11
12/ {
13 model = "MPC8349EMDS";
Kumar Galad71a1dc2007-02-16 09:57:22 -060014 compatible = "MPC8349EMDS", "MPC834xMDS", "MPC83xxMDS";
Kim Phillips1b9a93e2006-08-29 18:13:31 -050015 #address-cells = <1>;
16 #size-cells = <1>;
17
18 cpus {
Kim Phillips1b9a93e2006-08-29 18:13:31 -050019 #address-cells = <1>;
20 #size-cells = <0>;
21
22 PowerPC,8349@0 {
23 device_type = "cpu";
24 reg = <0>;
25 d-cache-line-size = <20>; // 32 bytes
26 i-cache-line-size = <20>; // 32 bytes
27 d-cache-size = <8000>; // L1, 32K
28 i-cache-size = <8000>; // L1, 32K
29 timebase-frequency = <0>; // from bootloader
30 bus-frequency = <0>; // from bootloader
31 clock-frequency = <0>; // from bootloader
32 32-bit;
33 };
34 };
35
36 memory {
37 device_type = "memory";
38 reg = <00000000 10000000>; // 256MB at 0
39 };
40
Li Yangea5b7a62007-02-07 13:51:09 +080041 bcsr@e2400000 {
42 device_type = "board-control";
43 reg = <e2400000 8000>;
44 };
45
Kim Phillips1b9a93e2006-08-29 18:13:31 -050046 soc8349@e0000000 {
47 #address-cells = <1>;
48 #size-cells = <1>;
49 #interrupt-cells = <2>;
50 device_type = "soc";
51 ranges = <0 e0000000 00100000>;
52 reg = <e0000000 00000200>;
53 bus-frequency = <0>;
54
55 wdt@200 {
56 device_type = "watchdog";
57 compatible = "mpc83xx_wdt";
58 reg = <200 100>;
59 };
60
61 i2c@3000 {
62 device_type = "i2c";
63 compatible = "fsl-i2c";
64 reg = <3000 100>;
65 interrupts = <e 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -060066 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -050067 dfsrr;
68 };
69
70 i2c@3100 {
71 device_type = "i2c";
72 compatible = "fsl-i2c";
73 reg = <3100 100>;
74 interrupts = <f 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -060075 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -050076 dfsrr;
77 };
78
79 spi@7000 {
80 device_type = "spi";
81 compatible = "mpc83xx_spi";
82 reg = <7000 1000>;
83 interrupts = <10 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -060084 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -050085 mode = <0>;
86 };
87
88 /* phy type (ULPI or SERIAL) are only types supportted for MPH */
89 /* port = 0 or 1 */
90 usb@22000 {
91 device_type = "usb";
92 compatible = "fsl-usb2-mph";
93 reg = <22000 1000>;
94 #address-cells = <1>;
95 #size-cells = <0>;
Kumar Galad71a1dc2007-02-16 09:57:22 -060096 interrupt-parent = < &ipic >;
97 interrupts = <27 8>;
Kim Phillips1b9a93e2006-08-29 18:13:31 -050098 phy_type = "ulpi";
99 port1;
100 };
101 /* phy type (ULPI, UTMI, UTMI_WIDE, SERIAL) */
102 usb@23000 {
103 device_type = "usb";
104 compatible = "fsl-usb2-dr";
105 reg = <23000 1000>;
106 #address-cells = <1>;
107 #size-cells = <0>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600108 interrupt-parent = < &ipic >;
109 interrupts = <26 8>;
Li Yangea5b7a62007-02-07 13:51:09 +0800110 dr_mode = "otg";
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500111 phy_type = "ulpi";
112 };
113
114 mdio@24520 {
115 device_type = "mdio";
116 compatible = "gianfar";
117 reg = <24520 20>;
118 #address-cells = <1>;
119 #size-cells = <0>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600120 phy0: ethernet-phy@0 {
121 interrupt-parent = < &ipic >;
122 interrupts = <11 8>;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500123 reg = <0>;
124 device_type = "ethernet-phy";
125 };
Kumar Galad71a1dc2007-02-16 09:57:22 -0600126 phy1: ethernet-phy@1 {
127 interrupt-parent = < &ipic >;
128 interrupts = <12 8>;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500129 reg = <1>;
130 device_type = "ethernet-phy";
131 };
132 };
133
134 ethernet@24000 {
135 device_type = "network";
136 model = "TSEC";
137 compatible = "gianfar";
138 reg = <24000 1000>;
139 address = [ 00 00 00 00 00 00 ];
140 local-mac-address = [ 00 00 00 00 00 00 ];
141 interrupts = <20 8 21 8 22 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600142 interrupt-parent = < &ipic >;
143 phy-handle = < &phy0 >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500144 };
145
146 ethernet@25000 {
147 #address-cells = <1>;
148 #size-cells = <0>;
149 device_type = "network";
150 model = "TSEC";
151 compatible = "gianfar";
152 reg = <25000 1000>;
153 address = [ 00 00 00 00 00 00 ];
154 local-mac-address = [ 00 00 00 00 00 00 ];
155 interrupts = <23 8 24 8 25 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600156 interrupt-parent = < &ipic >;
157 phy-handle = < &phy1 >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500158 };
159
160 serial@4500 {
161 device_type = "serial";
162 compatible = "ns16550";
163 reg = <4500 100>;
164 clock-frequency = <0>;
165 interrupts = <9 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600166 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500167 };
168
169 serial@4600 {
170 device_type = "serial";
171 compatible = "ns16550";
172 reg = <4600 100>;
173 clock-frequency = <0>;
174 interrupts = <a 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600175 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500176 };
177
178 pci@8500 {
179 interrupt-map-mask = <f800 0 0 7>;
180 interrupt-map = <
181
182 /* IDSEL 0x11 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600183 8800 0 0 1 &ipic 14 8
184 8800 0 0 2 &ipic 15 8
185 8800 0 0 3 &ipic 16 8
186 8800 0 0 4 &ipic 17 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500187
188 /* IDSEL 0x12 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600189 9000 0 0 1 &ipic 16 8
190 9000 0 0 2 &ipic 17 8
191 9000 0 0 3 &ipic 14 8
192 9000 0 0 4 &ipic 15 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500193
194 /* IDSEL 0x13 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600195 9800 0 0 1 &ipic 17 8
196 9800 0 0 2 &ipic 14 8
197 9800 0 0 3 &ipic 15 8
198 9800 0 0 4 &ipic 16 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500199
200 /* IDSEL 0x15 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600201 a800 0 0 1 &ipic 14 8
202 a800 0 0 2 &ipic 15 8
203 a800 0 0 3 &ipic 16 8
204 a800 0 0 4 &ipic 17 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500205
206 /* IDSEL 0x16 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600207 b000 0 0 1 &ipic 17 8
208 b000 0 0 2 &ipic 14 8
209 b000 0 0 3 &ipic 15 8
210 b000 0 0 4 &ipic 16 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500211
212 /* IDSEL 0x17 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600213 b800 0 0 1 &ipic 16 8
214 b800 0 0 2 &ipic 17 8
215 b800 0 0 3 &ipic 14 8
216 b800 0 0 4 &ipic 15 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500217
218 /* IDSEL 0x18 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600219 c000 0 0 1 &ipic 15 8
220 c000 0 0 2 &ipic 16 8
221 c000 0 0 3 &ipic 17 8
222 c000 0 0 4 &ipic 14 8>;
223 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500224 interrupts = <42 8>;
225 bus-range = <0 0>;
226 ranges = <02000000 0 a0000000 a0000000 0 10000000
227 42000000 0 80000000 80000000 0 10000000
228 01000000 0 00000000 e2000000 0 00100000>;
229 clock-frequency = <3f940aa>;
230 #interrupt-cells = <1>;
231 #size-cells = <2>;
232 #address-cells = <3>;
233 reg = <8500 100>;
234 compatible = "83xx";
235 device_type = "pci";
236 };
237
238 pci@8600 {
239 interrupt-map-mask = <f800 0 0 7>;
240 interrupt-map = <
241
242 /* IDSEL 0x11 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600243 8800 0 0 1 &ipic 14 8
244 8800 0 0 2 &ipic 15 8
245 8800 0 0 3 &ipic 16 8
246 8800 0 0 4 &ipic 17 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500247
248 /* IDSEL 0x12 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600249 9000 0 0 1 &ipic 16 8
250 9000 0 0 2 &ipic 17 8
251 9000 0 0 3 &ipic 14 8
252 9000 0 0 4 &ipic 15 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500253
254 /* IDSEL 0x13 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600255 9800 0 0 1 &ipic 17 8
256 9800 0 0 2 &ipic 14 8
257 9800 0 0 3 &ipic 15 8
258 9800 0 0 4 &ipic 16 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500259
260 /* IDSEL 0x15 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600261 a800 0 0 1 &ipic 14 8
262 a800 0 0 2 &ipic 15 8
263 a800 0 0 3 &ipic 16 8
264 a800 0 0 4 &ipic 17 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500265
266 /* IDSEL 0x16 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600267 b000 0 0 1 &ipic 17 8
268 b000 0 0 2 &ipic 14 8
269 b000 0 0 3 &ipic 15 8
270 b000 0 0 4 &ipic 16 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500271
272 /* IDSEL 0x17 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600273 b800 0 0 1 &ipic 16 8
274 b800 0 0 2 &ipic 17 8
275 b800 0 0 3 &ipic 14 8
276 b800 0 0 4 &ipic 15 8
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500277
278 /* IDSEL 0x18 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600279 c000 0 0 1 &ipic 15 8
280 c000 0 0 2 &ipic 16 8
281 c000 0 0 3 &ipic 17 8
282 c000 0 0 4 &ipic 14 8>;
283 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500284 interrupts = <42 8>;
285 bus-range = <0 0>;
286 ranges = <02000000 0 b0000000 b0000000 0 10000000
287 42000000 0 90000000 90000000 0 10000000
288 01000000 0 00000000 e2100000 0 00100000>;
289 clock-frequency = <3f940aa>;
290 #interrupt-cells = <1>;
291 #size-cells = <2>;
292 #address-cells = <3>;
293 reg = <8600 100>;
294 compatible = "83xx";
295 device_type = "pci";
296 };
297
298 /* May need to remove if on a part without crypto engine */
299 crypto@30000 {
300 device_type = "crypto";
301 model = "SEC2";
302 compatible = "talitos";
303 reg = <30000 10000>;
304 interrupts = <b 8>;
Kumar Galad71a1dc2007-02-16 09:57:22 -0600305 interrupt-parent = < &ipic >;
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500306 num-channels = <4>;
307 channel-fifo-len = <18>;
308 exec-units-mask = <0000007e>;
309 /* desc mask is for rev2.0,
310 * we need runtime fixup for >2.0 */
311 descriptor-types-mask = <01010ebf>;
312 };
313
314 /* IPIC
315 * interrupts cell = <intr #, sense>
316 * sense values match linux IORESOURCE_IRQ_* defines:
317 * sense == 8: Level, low assertion
318 * sense == 2: Edge, high-to-low change
319 */
Kumar Galad71a1dc2007-02-16 09:57:22 -0600320 ipic: pic@700 {
Kim Phillips1b9a93e2006-08-29 18:13:31 -0500321 interrupt-controller;
322 #address-cells = <0>;
323 #interrupt-cells = <2>;
324 reg = <700 100>;
325 built-in;
326 device_type = "ipic";
327 };
328 };
329};