blob: 00e9b6ff2f6e39f1931ab3cdfdb93e7bac4ebdd9 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * arch/ppc/platforms/85xx/mpc85xx_devices.c
3 *
4 * MPC85xx Device descriptions
5 *
Kumar Gala4c8d3d92005-11-13 16:06:30 -08006 * Maintainer: Kumar Gala <galak@kernel.crashing.org>
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 *
8 * Copyright 2005 Freescale Semiconductor Inc.
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <linux/init.h>
17#include <linux/module.h>
18#include <linux/device.h>
19#include <linux/serial_8250.h>
20#include <linux/fsl_devices.h>
21#include <asm/mpc85xx.h>
22#include <asm/irq.h>
23#include <asm/ppc_sys.h>
24
25/* We use offsets for IORESOURCE_MEM since we do not know at compile time
26 * what CCSRBAR is, will get fixed up by mach_mpc85xx_fixup
27 */
Andy Flemingb37665e2005-10-28 17:46:27 -070028struct gianfar_mdio_data mpc85xx_mdio_pdata = {
Andy Flemingb37665e2005-10-28 17:46:27 -070029};
Linus Torvalds1da177e2005-04-16 15:20:36 -070030
31static struct gianfar_platform_data mpc85xx_tsec1_pdata = {
32 .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
33 FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
34 FSL_GIANFAR_DEV_HAS_MULTI_INTR,
Linus Torvalds1da177e2005-04-16 15:20:36 -070035};
36
37static struct gianfar_platform_data mpc85xx_tsec2_pdata = {
38 .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
39 FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
40 FSL_GIANFAR_DEV_HAS_MULTI_INTR,
Linus Torvalds1da177e2005-04-16 15:20:36 -070041};
42
Kumar Gala5b37b702005-06-21 17:15:18 -070043static struct gianfar_platform_data mpc85xx_etsec1_pdata = {
44 .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
45 FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
46 FSL_GIANFAR_DEV_HAS_MULTI_INTR |
47 FSL_GIANFAR_DEV_HAS_CSUM | FSL_GIANFAR_DEV_HAS_VLAN |
48 FSL_GIANFAR_DEV_HAS_EXTENDED_HASH,
Kumar Gala5b37b702005-06-21 17:15:18 -070049};
50
51static struct gianfar_platform_data mpc85xx_etsec2_pdata = {
52 .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
53 FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
54 FSL_GIANFAR_DEV_HAS_MULTI_INTR |
55 FSL_GIANFAR_DEV_HAS_CSUM | FSL_GIANFAR_DEV_HAS_VLAN |
56 FSL_GIANFAR_DEV_HAS_EXTENDED_HASH,
Kumar Gala5b37b702005-06-21 17:15:18 -070057};
58
59static struct gianfar_platform_data mpc85xx_etsec3_pdata = {
60 .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
61 FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
62 FSL_GIANFAR_DEV_HAS_MULTI_INTR |
63 FSL_GIANFAR_DEV_HAS_CSUM | FSL_GIANFAR_DEV_HAS_VLAN |
64 FSL_GIANFAR_DEV_HAS_EXTENDED_HASH,
Kumar Gala5b37b702005-06-21 17:15:18 -070065};
66
67static struct gianfar_platform_data mpc85xx_etsec4_pdata = {
68 .device_flags = FSL_GIANFAR_DEV_HAS_GIGABIT |
69 FSL_GIANFAR_DEV_HAS_COALESCE | FSL_GIANFAR_DEV_HAS_RMON |
70 FSL_GIANFAR_DEV_HAS_MULTI_INTR |
71 FSL_GIANFAR_DEV_HAS_CSUM | FSL_GIANFAR_DEV_HAS_VLAN |
72 FSL_GIANFAR_DEV_HAS_EXTENDED_HASH,
Kumar Gala5b37b702005-06-21 17:15:18 -070073};
74
Linus Torvalds1da177e2005-04-16 15:20:36 -070075static struct gianfar_platform_data mpc85xx_fec_pdata = {
Andy Flemingb37665e2005-10-28 17:46:27 -070076 .device_flags = 0,
Linus Torvalds1da177e2005-04-16 15:20:36 -070077};
78
79static struct fsl_i2c_platform_data mpc85xx_fsl_i2c_pdata = {
80 .device_flags = FSL_I2C_DEV_SEPARATE_DFSRR,
81};
82
Kumar Gala5b37b702005-06-21 17:15:18 -070083static struct fsl_i2c_platform_data mpc85xx_fsl_i2c2_pdata = {
84 .device_flags = FSL_I2C_DEV_SEPARATE_DFSRR,
85};
86
Linus Torvalds1da177e2005-04-16 15:20:36 -070087static struct plat_serial8250_port serial_platform_data[] = {
88 [0] = {
89 .mapbase = 0x4500,
90 .irq = MPC85xx_IRQ_DUART,
91 .iotype = UPIO_MEM,
92 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ,
93 },
94 [1] = {
95 .mapbase = 0x4600,
96 .irq = MPC85xx_IRQ_DUART,
97 .iotype = UPIO_MEM,
98 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ,
99 },
Kumar Gala7f8cd802005-05-20 13:59:13 -0700100 { },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700101};
102
103struct platform_device ppc_sys_platform_devices[] = {
104 [MPC85xx_TSEC1] = {
105 .name = "fsl-gianfar",
106 .id = 1,
107 .dev.platform_data = &mpc85xx_tsec1_pdata,
108 .num_resources = 4,
109 .resource = (struct resource[]) {
110 {
111 .start = MPC85xx_ENET1_OFFSET,
112 .end = MPC85xx_ENET1_OFFSET +
113 MPC85xx_ENET1_SIZE - 1,
114 .flags = IORESOURCE_MEM,
115 },
116 {
117 .name = "tx",
118 .start = MPC85xx_IRQ_TSEC1_TX,
119 .end = MPC85xx_IRQ_TSEC1_TX,
120 .flags = IORESOURCE_IRQ,
121 },
122 {
123 .name = "rx",
124 .start = MPC85xx_IRQ_TSEC1_RX,
125 .end = MPC85xx_IRQ_TSEC1_RX,
126 .flags = IORESOURCE_IRQ,
127 },
128 {
129 .name = "error",
130 .start = MPC85xx_IRQ_TSEC1_ERROR,
131 .end = MPC85xx_IRQ_TSEC1_ERROR,
132 .flags = IORESOURCE_IRQ,
133 },
134 },
135 },
136 [MPC85xx_TSEC2] = {
137 .name = "fsl-gianfar",
138 .id = 2,
139 .dev.platform_data = &mpc85xx_tsec2_pdata,
140 .num_resources = 4,
141 .resource = (struct resource[]) {
142 {
143 .start = MPC85xx_ENET2_OFFSET,
144 .end = MPC85xx_ENET2_OFFSET +
145 MPC85xx_ENET2_SIZE - 1,
146 .flags = IORESOURCE_MEM,
147 },
148 {
149 .name = "tx",
150 .start = MPC85xx_IRQ_TSEC2_TX,
151 .end = MPC85xx_IRQ_TSEC2_TX,
152 .flags = IORESOURCE_IRQ,
153 },
154 {
155 .name = "rx",
156 .start = MPC85xx_IRQ_TSEC2_RX,
157 .end = MPC85xx_IRQ_TSEC2_RX,
158 .flags = IORESOURCE_IRQ,
159 },
160 {
161 .name = "error",
162 .start = MPC85xx_IRQ_TSEC2_ERROR,
163 .end = MPC85xx_IRQ_TSEC2_ERROR,
164 .flags = IORESOURCE_IRQ,
165 },
166 },
167 },
168 [MPC85xx_FEC] = {
169 .name = "fsl-gianfar",
170 .id = 3,
171 .dev.platform_data = &mpc85xx_fec_pdata,
172 .num_resources = 2,
173 .resource = (struct resource[]) {
174 {
175 .start = MPC85xx_ENET3_OFFSET,
176 .end = MPC85xx_ENET3_OFFSET +
177 MPC85xx_ENET3_SIZE - 1,
178 .flags = IORESOURCE_MEM,
179
180 },
181 {
182 .start = MPC85xx_IRQ_FEC,
183 .end = MPC85xx_IRQ_FEC,
184 .flags = IORESOURCE_IRQ,
185 },
186 },
187 },
188 [MPC85xx_IIC1] = {
189 .name = "fsl-i2c",
190 .id = 1,
191 .dev.platform_data = &mpc85xx_fsl_i2c_pdata,
192 .num_resources = 2,
193 .resource = (struct resource[]) {
194 {
195 .start = MPC85xx_IIC1_OFFSET,
196 .end = MPC85xx_IIC1_OFFSET +
197 MPC85xx_IIC1_SIZE - 1,
198 .flags = IORESOURCE_MEM,
199 },
200 {
201 .start = MPC85xx_IRQ_IIC1,
202 .end = MPC85xx_IRQ_IIC1,
203 .flags = IORESOURCE_IRQ,
204 },
205 },
206 },
207 [MPC85xx_DMA0] = {
208 .name = "fsl-dma",
209 .id = 0,
210 .num_resources = 2,
211 .resource = (struct resource[]) {
212 {
213 .start = MPC85xx_DMA0_OFFSET,
214 .end = MPC85xx_DMA0_OFFSET +
215 MPC85xx_DMA0_SIZE - 1,
216 .flags = IORESOURCE_MEM,
217 },
218 {
219 .start = MPC85xx_IRQ_DMA0,
220 .end = MPC85xx_IRQ_DMA0,
221 .flags = IORESOURCE_IRQ,
222 },
223 },
224 },
225 [MPC85xx_DMA1] = {
226 .name = "fsl-dma",
227 .id = 1,
228 .num_resources = 2,
229 .resource = (struct resource[]) {
230 {
231 .start = MPC85xx_DMA1_OFFSET,
232 .end = MPC85xx_DMA1_OFFSET +
233 MPC85xx_DMA1_SIZE - 1,
234 .flags = IORESOURCE_MEM,
235 },
236 {
237 .start = MPC85xx_IRQ_DMA1,
238 .end = MPC85xx_IRQ_DMA1,
239 .flags = IORESOURCE_IRQ,
240 },
241 },
242 },
243 [MPC85xx_DMA2] = {
244 .name = "fsl-dma",
245 .id = 2,
246 .num_resources = 2,
247 .resource = (struct resource[]) {
248 {
249 .start = MPC85xx_DMA2_OFFSET,
250 .end = MPC85xx_DMA2_OFFSET +
251 MPC85xx_DMA2_SIZE - 1,
252 .flags = IORESOURCE_MEM,
253 },
254 {
255 .start = MPC85xx_IRQ_DMA2,
256 .end = MPC85xx_IRQ_DMA2,
257 .flags = IORESOURCE_IRQ,
258 },
259 },
260 },
261 [MPC85xx_DMA3] = {
262 .name = "fsl-dma",
263 .id = 3,
264 .num_resources = 2,
265 .resource = (struct resource[]) {
266 {
267 .start = MPC85xx_DMA3_OFFSET,
268 .end = MPC85xx_DMA3_OFFSET +
269 MPC85xx_DMA3_SIZE - 1,
270 .flags = IORESOURCE_MEM,
271 },
272 {
273 .start = MPC85xx_IRQ_DMA3,
274 .end = MPC85xx_IRQ_DMA3,
275 .flags = IORESOURCE_IRQ,
276 },
277 },
278 },
279 [MPC85xx_DUART] = {
280 .name = "serial8250",
Russell King6df29de2005-09-08 16:04:41 +0100281 .id = PLAT8250_DEV_PLATFORM,
Linus Torvalds1da177e2005-04-16 15:20:36 -0700282 .dev.platform_data = serial_platform_data,
283 },
284 [MPC85xx_PERFMON] = {
285 .name = "fsl-perfmon",
286 .id = 1,
287 .num_resources = 2,
288 .resource = (struct resource[]) {
289 {
290 .start = MPC85xx_PERFMON_OFFSET,
291 .end = MPC85xx_PERFMON_OFFSET +
292 MPC85xx_PERFMON_SIZE - 1,
293 .flags = IORESOURCE_MEM,
294 },
295 {
296 .start = MPC85xx_IRQ_PERFMON,
297 .end = MPC85xx_IRQ_PERFMON,
298 .flags = IORESOURCE_IRQ,
299 },
300 },
301 },
302 [MPC85xx_SEC2] = {
303 .name = "fsl-sec2",
304 .id = 1,
305 .num_resources = 2,
306 .resource = (struct resource[]) {
307 {
308 .start = MPC85xx_SEC2_OFFSET,
309 .end = MPC85xx_SEC2_OFFSET +
310 MPC85xx_SEC2_SIZE - 1,
311 .flags = IORESOURCE_MEM,
312 },
313 {
314 .start = MPC85xx_IRQ_SEC2,
315 .end = MPC85xx_IRQ_SEC2,
316 .flags = IORESOURCE_IRQ,
317 },
318 },
319 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700320 [MPC85xx_CPM_FCC1] = {
321 .name = "fsl-cpm-fcc",
322 .id = 1,
323 .num_resources = 3,
324 .resource = (struct resource[]) {
325 {
326 .start = 0x91300,
327 .end = 0x9131F,
328 .flags = IORESOURCE_MEM,
329 },
330 {
331 .start = 0x91380,
332 .end = 0x9139F,
333 .flags = IORESOURCE_MEM,
334 },
335 {
336 .start = SIU_INT_FCC1,
337 .end = SIU_INT_FCC1,
338 .flags = IORESOURCE_IRQ,
339 },
340 },
341 },
342 [MPC85xx_CPM_FCC2] = {
343 .name = "fsl-cpm-fcc",
344 .id = 2,
345 .num_resources = 3,
346 .resource = (struct resource[]) {
347 {
348 .start = 0x91320,
349 .end = 0x9133F,
350 .flags = IORESOURCE_MEM,
351 },
352 {
353 .start = 0x913A0,
354 .end = 0x913CF,
355 .flags = IORESOURCE_MEM,
356 },
357 {
358 .start = SIU_INT_FCC2,
359 .end = SIU_INT_FCC2,
360 .flags = IORESOURCE_IRQ,
361 },
362 },
363 },
364 [MPC85xx_CPM_FCC3] = {
365 .name = "fsl-cpm-fcc",
366 .id = 3,
367 .num_resources = 3,
368 .resource = (struct resource[]) {
369 {
370 .start = 0x91340,
371 .end = 0x9135F,
372 .flags = IORESOURCE_MEM,
373 },
374 {
375 .start = 0x913D0,
376 .end = 0x913FF,
377 .flags = IORESOURCE_MEM,
378 },
379 {
380 .start = SIU_INT_FCC3,
381 .end = SIU_INT_FCC3,
382 .flags = IORESOURCE_IRQ,
383 },
384 },
385 },
386 [MPC85xx_CPM_I2C] = {
387 .name = "fsl-cpm-i2c",
388 .id = 1,
389 .num_resources = 2,
390 .resource = (struct resource[]) {
391 {
392 .start = 0x91860,
393 .end = 0x918BF,
394 .flags = IORESOURCE_MEM,
395 },
396 {
397 .start = SIU_INT_I2C,
398 .end = SIU_INT_I2C,
399 .flags = IORESOURCE_IRQ,
400 },
401 },
402 },
403 [MPC85xx_CPM_SCC1] = {
404 .name = "fsl-cpm-scc",
405 .id = 1,
406 .num_resources = 2,
407 .resource = (struct resource[]) {
408 {
409 .start = 0x91A00,
410 .end = 0x91A1F,
411 .flags = IORESOURCE_MEM,
412 },
413 {
414 .start = SIU_INT_SCC1,
415 .end = SIU_INT_SCC1,
416 .flags = IORESOURCE_IRQ,
417 },
418 },
419 },
420 [MPC85xx_CPM_SCC2] = {
421 .name = "fsl-cpm-scc",
422 .id = 2,
423 .num_resources = 2,
424 .resource = (struct resource[]) {
425 {
426 .start = 0x91A20,
427 .end = 0x91A3F,
428 .flags = IORESOURCE_MEM,
429 },
430 {
431 .start = SIU_INT_SCC2,
432 .end = SIU_INT_SCC2,
433 .flags = IORESOURCE_IRQ,
434 },
435 },
436 },
437 [MPC85xx_CPM_SCC3] = {
438 .name = "fsl-cpm-scc",
439 .id = 3,
440 .num_resources = 2,
441 .resource = (struct resource[]) {
442 {
443 .start = 0x91A40,
444 .end = 0x91A5F,
445 .flags = IORESOURCE_MEM,
446 },
447 {
448 .start = SIU_INT_SCC3,
449 .end = SIU_INT_SCC3,
450 .flags = IORESOURCE_IRQ,
451 },
452 },
453 },
454 [MPC85xx_CPM_SCC4] = {
455 .name = "fsl-cpm-scc",
456 .id = 4,
457 .num_resources = 2,
458 .resource = (struct resource[]) {
459 {
460 .start = 0x91A60,
461 .end = 0x91A7F,
462 .flags = IORESOURCE_MEM,
463 },
464 {
465 .start = SIU_INT_SCC4,
466 .end = SIU_INT_SCC4,
467 .flags = IORESOURCE_IRQ,
468 },
469 },
470 },
471 [MPC85xx_CPM_SPI] = {
472 .name = "fsl-cpm-spi",
473 .id = 1,
474 .num_resources = 2,
475 .resource = (struct resource[]) {
476 {
477 .start = 0x91AA0,
478 .end = 0x91AFF,
479 .flags = IORESOURCE_MEM,
480 },
481 {
482 .start = SIU_INT_SPI,
483 .end = SIU_INT_SPI,
484 .flags = IORESOURCE_IRQ,
485 },
486 },
487 },
488 [MPC85xx_CPM_MCC1] = {
489 .name = "fsl-cpm-mcc",
490 .id = 1,
491 .num_resources = 2,
492 .resource = (struct resource[]) {
493 {
494 .start = 0x91B30,
495 .end = 0x91B3F,
496 .flags = IORESOURCE_MEM,
497 },
498 {
499 .start = SIU_INT_MCC1,
500 .end = SIU_INT_MCC1,
501 .flags = IORESOURCE_IRQ,
502 },
503 },
504 },
505 [MPC85xx_CPM_MCC2] = {
506 .name = "fsl-cpm-mcc",
507 .id = 2,
508 .num_resources = 2,
509 .resource = (struct resource[]) {
510 {
511 .start = 0x91B50,
512 .end = 0x91B5F,
513 .flags = IORESOURCE_MEM,
514 },
515 {
516 .start = SIU_INT_MCC2,
517 .end = SIU_INT_MCC2,
518 .flags = IORESOURCE_IRQ,
519 },
520 },
521 },
522 [MPC85xx_CPM_SMC1] = {
523 .name = "fsl-cpm-smc",
524 .id = 1,
525 .num_resources = 2,
526 .resource = (struct resource[]) {
527 {
528 .start = 0x91A80,
529 .end = 0x91A8F,
530 .flags = IORESOURCE_MEM,
531 },
532 {
533 .start = SIU_INT_SMC1,
534 .end = SIU_INT_SMC1,
535 .flags = IORESOURCE_IRQ,
536 },
537 },
538 },
539 [MPC85xx_CPM_SMC2] = {
540 .name = "fsl-cpm-smc",
541 .id = 2,
542 .num_resources = 2,
543 .resource = (struct resource[]) {
544 {
545 .start = 0x91A90,
546 .end = 0x91A9F,
547 .flags = IORESOURCE_MEM,
548 },
549 {
550 .start = SIU_INT_SMC2,
551 .end = SIU_INT_SMC2,
552 .flags = IORESOURCE_IRQ,
553 },
554 },
555 },
556 [MPC85xx_CPM_USB] = {
557 .name = "fsl-cpm-usb",
558 .id = 2,
559 .num_resources = 2,
560 .resource = (struct resource[]) {
561 {
562 .start = 0x91B60,
563 .end = 0x91B7F,
564 .flags = IORESOURCE_MEM,
565 },
566 {
567 .start = SIU_INT_USB,
568 .end = SIU_INT_USB,
569 .flags = IORESOURCE_IRQ,
570 },
571 },
572 },
Kumar Gala5b37b702005-06-21 17:15:18 -0700573 [MPC85xx_eTSEC1] = {
574 .name = "fsl-gianfar",
575 .id = 1,
576 .dev.platform_data = &mpc85xx_etsec1_pdata,
577 .num_resources = 4,
578 .resource = (struct resource[]) {
579 {
580 .start = MPC85xx_ENET1_OFFSET,
581 .end = MPC85xx_ENET1_OFFSET +
582 MPC85xx_ENET1_SIZE - 1,
583 .flags = IORESOURCE_MEM,
584 },
585 {
586 .name = "tx",
587 .start = MPC85xx_IRQ_TSEC1_TX,
588 .end = MPC85xx_IRQ_TSEC1_TX,
589 .flags = IORESOURCE_IRQ,
590 },
591 {
592 .name = "rx",
593 .start = MPC85xx_IRQ_TSEC1_RX,
594 .end = MPC85xx_IRQ_TSEC1_RX,
595 .flags = IORESOURCE_IRQ,
596 },
597 {
598 .name = "error",
599 .start = MPC85xx_IRQ_TSEC1_ERROR,
600 .end = MPC85xx_IRQ_TSEC1_ERROR,
601 .flags = IORESOURCE_IRQ,
602 },
603 },
604 },
605 [MPC85xx_eTSEC2] = {
606 .name = "fsl-gianfar",
607 .id = 2,
608 .dev.platform_data = &mpc85xx_etsec2_pdata,
609 .num_resources = 4,
610 .resource = (struct resource[]) {
611 {
612 .start = MPC85xx_ENET2_OFFSET,
613 .end = MPC85xx_ENET2_OFFSET +
614 MPC85xx_ENET2_SIZE - 1,
615 .flags = IORESOURCE_MEM,
616 },
617 {
618 .name = "tx",
619 .start = MPC85xx_IRQ_TSEC2_TX,
620 .end = MPC85xx_IRQ_TSEC2_TX,
621 .flags = IORESOURCE_IRQ,
622 },
623 {
624 .name = "rx",
625 .start = MPC85xx_IRQ_TSEC2_RX,
626 .end = MPC85xx_IRQ_TSEC2_RX,
627 .flags = IORESOURCE_IRQ,
628 },
629 {
630 .name = "error",
631 .start = MPC85xx_IRQ_TSEC2_ERROR,
632 .end = MPC85xx_IRQ_TSEC2_ERROR,
633 .flags = IORESOURCE_IRQ,
634 },
635 },
636 },
637 [MPC85xx_eTSEC3] = {
638 .name = "fsl-gianfar",
639 .id = 3,
640 .dev.platform_data = &mpc85xx_etsec3_pdata,
641 .num_resources = 4,
642 .resource = (struct resource[]) {
643 {
644 .start = MPC85xx_ENET3_OFFSET,
645 .end = MPC85xx_ENET3_OFFSET +
646 MPC85xx_ENET3_SIZE - 1,
647 .flags = IORESOURCE_MEM,
648 },
649 {
650 .name = "tx",
651 .start = MPC85xx_IRQ_TSEC3_TX,
652 .end = MPC85xx_IRQ_TSEC3_TX,
653 .flags = IORESOURCE_IRQ,
654 },
655 {
656 .name = "rx",
657 .start = MPC85xx_IRQ_TSEC3_RX,
658 .end = MPC85xx_IRQ_TSEC3_RX,
659 .flags = IORESOURCE_IRQ,
660 },
661 {
662 .name = "error",
663 .start = MPC85xx_IRQ_TSEC3_ERROR,
664 .end = MPC85xx_IRQ_TSEC3_ERROR,
665 .flags = IORESOURCE_IRQ,
666 },
667 },
668 },
669 [MPC85xx_eTSEC4] = {
670 .name = "fsl-gianfar",
671 .id = 4,
672 .dev.platform_data = &mpc85xx_etsec4_pdata,
673 .num_resources = 4,
674 .resource = (struct resource[]) {
675 {
676 .start = 0x27000,
677 .end = 0x27fff,
678 .flags = IORESOURCE_MEM,
679 },
680 {
681 .name = "tx",
682 .start = MPC85xx_IRQ_TSEC4_TX,
683 .end = MPC85xx_IRQ_TSEC4_TX,
684 .flags = IORESOURCE_IRQ,
685 },
686 {
687 .name = "rx",
688 .start = MPC85xx_IRQ_TSEC4_RX,
689 .end = MPC85xx_IRQ_TSEC4_RX,
690 .flags = IORESOURCE_IRQ,
691 },
692 {
693 .name = "error",
694 .start = MPC85xx_IRQ_TSEC4_ERROR,
695 .end = MPC85xx_IRQ_TSEC4_ERROR,
696 .flags = IORESOURCE_IRQ,
697 },
698 },
699 },
700 [MPC85xx_IIC2] = {
701 .name = "fsl-i2c",
702 .id = 2,
703 .dev.platform_data = &mpc85xx_fsl_i2c2_pdata,
704 .num_resources = 2,
705 .resource = (struct resource[]) {
706 {
707 .start = 0x03100,
708 .end = 0x031ff,
709 .flags = IORESOURCE_MEM,
710 },
711 {
712 .start = MPC85xx_IRQ_IIC1,
713 .end = MPC85xx_IRQ_IIC1,
714 .flags = IORESOURCE_IRQ,
715 },
716 },
717 },
Andy Flemingb37665e2005-10-28 17:46:27 -0700718 [MPC85xx_MDIO] = {
719 .name = "fsl-gianfar_mdio",
720 .id = 0,
721 .dev.platform_data = &mpc85xx_mdio_pdata,
Kumar Gala7e78e5e2006-01-12 21:04:23 -0600722 .num_resources = 1,
723 .resource = (struct resource[]) {
724 {
725 .start = 0x24520,
726 .end = 0x2453f,
727 .flags = IORESOURCE_MEM,
728 },
729 },
Andy Flemingb37665e2005-10-28 17:46:27 -0700730 },
Linus Torvalds1da177e2005-04-16 15:20:36 -0700731};
732
733static int __init mach_mpc85xx_fixup(struct platform_device *pdev)
734{
735 ppc_sys_fixup_mem_resource(pdev, CCSRBAR);
736 return 0;
737}
738
739static int __init mach_mpc85xx_init(void)
740{
741 ppc_sys_device_fixup = mach_mpc85xx_fixup;
742 return 0;
743}
744
745postcore_initcall(mach_mpc85xx_init);