diff options
author | Ramax Lo <ramaxlo@gmail.com> | 2008-07-07 13:12:37 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2008-07-07 13:13:01 -0400 |
commit | 66493c2d88d5086399c5a485d6e41cb76b241a1f (patch) | |
tree | 77a89e6e382d5ecb3ab30f00f9ab28c127db923c /arch/arm/mach-s3c2440/mach-at2440evb.c | |
parent | 4ab9897172b7ff3a1a37b65b53f71c5795a577b0 (diff) |
[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/mach-at2440evb.c')
-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 @@ | |||
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/io.h> | 21 | #include <linux/io.h> |
22 | #include <linux/serial_core.h> | 22 | #include <linux/serial_core.h> |
23 | #include <linux/dm9000.h> | ||
23 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
24 | 25 | ||
25 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
@@ -127,6 +128,40 @@ static struct s3c2410_platform_nand at2440evb_nand_info = { | |||
127 | .sets = at2440evb_nand_sets, | 128 | .sets = at2440evb_nand_sets, |
128 | }; | 129 | }; |
129 | 130 | ||
131 | /* DM9000AEP 10/100 ethernet controller */ | ||
132 | |||
133 | static struct resource at2440evb_dm9k_resource[] = { | ||
134 | [0] = { | ||
135 | .start = S3C2410_CS3, | ||
136 | .end = S3C2410_CS3 + 3, | ||
137 | .flags = IORESOURCE_MEM | ||
138 | }, | ||
139 | [1] = { | ||
140 | .start = S3C2410_CS3 + 4, | ||
141 | .end = S3C2410_CS3 + 7, | ||
142 | .flags = IORESOURCE_MEM | ||
143 | }, | ||
144 | [2] = { | ||
145 | .start = IRQ_EINT7, | ||
146 | .end = IRQ_EINT7, | ||
147 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, | ||
148 | } | ||
149 | }; | ||
150 | |||
151 | static struct dm9000_plat_data at2440evb_dm9k_pdata = { | ||
152 | .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), | ||
153 | }; | ||
154 | |||
155 | static struct platform_device at2440evb_device_eth = { | ||
156 | .name = "dm9000", | ||
157 | .id = -1, | ||
158 | .num_resources = ARRAY_SIZE(at2440evb_dm9k_resource), | ||
159 | .resource = at2440evb_dm9k_resource, | ||
160 | .dev = { | ||
161 | .platform_data = &at2440evb_dm9k_pdata, | ||
162 | }, | ||
163 | }; | ||
164 | |||
130 | static struct platform_device *at2440evb_devices[] __initdata = { | 165 | static struct platform_device *at2440evb_devices[] __initdata = { |
131 | &s3c_device_usb, | 166 | &s3c_device_usb, |
132 | &s3c_device_wdt, | 167 | &s3c_device_wdt, |
@@ -134,6 +169,7 @@ static struct platform_device *at2440evb_devices[] __initdata = { | |||
134 | &s3c_device_i2c, | 169 | &s3c_device_i2c, |
135 | &s3c_device_rtc, | 170 | &s3c_device_rtc, |
136 | &s3c_device_nand, | 171 | &s3c_device_nand, |
172 | &at2440evb_device_eth, | ||
137 | }; | 173 | }; |
138 | 174 | ||
139 | static void __init at2440evb_map_io(void) | 175 | static void __init at2440evb_map_io(void) |