diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index f01de807b72f..8b52ea95d4f6 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -20,6 +20,8 @@ | |||
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/dm9000.h> | 21 | #include <linux/dm9000.h> |
22 | 22 | ||
23 | #include <net/ax88796.h> | ||
24 | |||
23 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
25 | #include <asm/mach/irq.h> | 27 | #include <asm/mach/irq.h> |
@@ -409,6 +411,61 @@ static struct s3c2410_platform_i2c bast_i2c_info = { | |||
409 | .max_freq = 130*1000, | 411 | .max_freq = 130*1000, |
410 | }; | 412 | }; |
411 | 413 | ||
414 | /* Asix AX88796 10/100 ethernet controller */ | ||
415 | |||
416 | static struct ax_plat_data bast_asix_platdata = { | ||
417 | .flags = AXFLG_MAC_FROMDEV, | ||
418 | .wordlength = 2, | ||
419 | .dcr_val = 0x48, | ||
420 | .rcr_val = 0x40, | ||
421 | }; | ||
422 | |||
423 | static struct resource bast_asix_resource[] = { | ||
424 | [0] = { | ||
425 | .start = S3C2410_CS5 + BAST_PA_ASIXNET, | ||
426 | .end = S3C2410_CS5 + BAST_PA_ASIXNET + (0x18 * 0x20) - 1, | ||
427 | .flags = IORESOURCE_MEM, | ||
428 | }, | ||
429 | [1] = { | ||
430 | .start = S3C2410_CS5 + BAST_PA_ASIXNET + (0x1f * 0x20), | ||
431 | .end = S3C2410_CS5 + BAST_PA_ASIXNET + (0x1f * 0x20), | ||
432 | .flags = IORESOURCE_MEM, | ||
433 | }, | ||
434 | [2] = { | ||
435 | .start = IRQ_ASIX, | ||
436 | .end = IRQ_ASIX, | ||
437 | .flags = IORESOURCE_IRQ | ||
438 | } | ||
439 | }; | ||
440 | |||
441 | static struct platform_device bast_device_asix = { | ||
442 | .name = "ax88796", | ||
443 | .id = 0, | ||
444 | .num_resources = ARRAY_SIZE(bast_asix_resource), | ||
445 | .resource = bast_asix_resource, | ||
446 | .dev = { | ||
447 | .platform_data = &bast_asix_platdata | ||
448 | } | ||
449 | }; | ||
450 | |||
451 | /* Asix AX88796 10/100 ethernet controller parallel port */ | ||
452 | |||
453 | static struct resource bast_asixpp_resource[] = { | ||
454 | [0] = { | ||
455 | .start = S3C2410_CS5 + BAST_PA_ASIXNET + (0x18 * 0x20), | ||
456 | .end = S3C2410_CS5 + BAST_PA_ASIXNET + (0x1b * 0x20) - 1, | ||
457 | .flags = IORESOURCE_MEM, | ||
458 | } | ||
459 | }; | ||
460 | |||
461 | static struct platform_device bast_device_axpp = { | ||
462 | .name = "ax88796-pp", | ||
463 | .id = 0, | ||
464 | .num_resources = ARRAY_SIZE(bast_asixpp_resource), | ||
465 | .resource = bast_asixpp_resource, | ||
466 | }; | ||
467 | |||
468 | /* LCD/VGA controller */ | ||
412 | 469 | ||
413 | static struct s3c2410fb_mach_info __initdata bast_lcd_info = { | 470 | static struct s3c2410fb_mach_info __initdata bast_lcd_info = { |
414 | .width = 640, | 471 | .width = 640, |
@@ -453,6 +510,8 @@ static struct platform_device *bast_devices[] __initdata = { | |||
453 | &s3c_device_nand, | 510 | &s3c_device_nand, |
454 | &bast_device_nor, | 511 | &bast_device_nor, |
455 | &bast_device_dm9k, | 512 | &bast_device_dm9k, |
513 | &bast_device_asix, | ||
514 | &bast_device_axpp, | ||
456 | &bast_sio, | 515 | &bast_sio, |
457 | }; | 516 | }; |
458 | 517 | ||