diff options
author | Ramax Lo <ramaxlo@gmail.com> | 2008-07-07 21:12:37 +0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2008-07-07 21:13:01 +0400 |
commit | 66493c2d88d5086399c5a485d6e41cb76b241a1f (patch) | |
tree | 77a89e6e382d5ecb3ab30f00f9ab28c127db923c /arch/arm/mach-s3c2440 | |
parent | 4ab9897172b7ff3a1a37b65b53f71c5795a577b0 (diff) | |
download | linux-66493c2d88d5086399c5a485d6e41cb76b241a1f.tar.xz |
[ARM] AT2440EVB: Add DM9000A network controller support.
Add DM9000AEP network controller support for AT2440EVB.
Signed-off-by: Ramax Lo <ramaxlo@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/mach-s3c2440')
-rw-r--r-- | arch/arm/mach-s3c2440/mach-at2440evb.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index 99f660564c11..f5e3c7f27639 100644 --- a/arch/arm/mach-s3c2440/mach-at2440evb.c +++ b/arch/arm/mach-s3c2440/mach-at2440evb.c @@ -20,6 +20,7 @@ #include <linux/init.h> #include <linux/io.h> #include <linux/serial_core.h> +#include <linux/dm9000.h> #include <linux/platform_device.h> #include <asm/mach/arch.h> @@ -127,6 +128,40 @@ static struct s3c2410_platform_nand at2440evb_nand_info = { .sets = at2440evb_nand_sets, }; +/* DM9000AEP 10/100 ethernet controller */ + +static struct resource at2440evb_dm9k_resource[] = { + [0] = { + .start = S3C2410_CS3, + .end = S3C2410_CS3 + 3, + .flags = IORESOURCE_MEM + }, + [1] = { + .start = S3C2410_CS3 + 4, + .end = S3C2410_CS3 + 7, + .flags = IORESOURCE_MEM + }, + [2] = { + .start = IRQ_EINT7, + .end = IRQ_EINT7, + .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, + } +}; + +static struct dm9000_plat_data at2440evb_dm9k_pdata = { + .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), +}; + +static struct platform_device at2440evb_device_eth = { + .name = "dm9000", + .id = -1, + .num_resources = ARRAY_SIZE(at2440evb_dm9k_resource), + .resource = at2440evb_dm9k_resource, + .dev = { + .platform_data = &at2440evb_dm9k_pdata, + }, +}; + static struct platform_device *at2440evb_devices[] __initdata = { &s3c_device_usb, &s3c_device_wdt, @@ -134,6 +169,7 @@ static struct platform_device *at2440evb_devices[] __initdata = { &s3c_device_i2c, &s3c_device_rtc, &s3c_device_nand, + &at2440evb_device_eth, }; static void __init at2440evb_map_io(void) |