aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2440
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2007-07-11 05:14:53 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-07-12 05:56:23 -0400
commiteac1d8dab03bde6d20679c961a6409c1b786c201 (patch)
treed7c770abf58aae7855adbc5819eafa6aa39469e9 /arch/arm/mach-s3c2440
parent7dcca30a32aadb0520417521b0c44f42d09fe05c (diff)
[ARM] 4466/1: ANUBIS: Anubis AX88796 support
This patch adds the resources necessary for the AX88796 driver to attach to the AX88796 network controller fitted on the Simtec Anubis board. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-s3c2440')
-rw-r--r--arch/arm/mach-s3c2440/mach-anubis.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c
index bff7ddd06a52..64456f9a0f6d 100644
--- a/arch/arm/mach-s3c2440/mach-anubis.c
+++ b/arch/arm/mach-s3c2440/mach-anubis.c
@@ -42,6 +42,8 @@
42#include <linux/mtd/nand_ecc.h> 42#include <linux/mtd/nand_ecc.h>
43#include <linux/mtd/partitions.h> 43#include <linux/mtd/partitions.h>
44 44
45#include <net/ax88796.h>
46
45#include <asm/plat-s3c24xx/clock.h> 47#include <asm/plat-s3c24xx/clock.h>
46#include <asm/plat-s3c24xx/devs.h> 48#include <asm/plat-s3c24xx/devs.h>
47#include <asm/plat-s3c24xx/cpu.h> 49#include <asm/plat-s3c24xx/cpu.h>
@@ -260,6 +262,38 @@ static struct platform_device anubis_device_ide1 = {
260 .resource = anubis_ide1_resource, 262 .resource = anubis_ide1_resource,
261}; 263};
262 264
265/* Asix AX88796 10/100 ethernet controller */
266
267static struct ax_plat_data anubis_asix_platdata = {
268 .flags = AXFLG_MAC_FROMDEV,
269 .wordlength = 2,
270 .dcr_val = 0x48,
271 .rcr_val = 0x40,
272};
273
274static struct resource anubis_asix_resource[] = {
275 [0] = {
276 .start = S3C2410_CS5,
277 .end = S3C2410_CS5 + (0x20 * 0x20) -1,
278 .flags = IORESOURCE_MEM
279 },
280 [1] = {
281 .start = IRQ_ASIX,
282 .end = IRQ_ASIX,
283 .flags = IORESOURCE_IRQ
284 }
285};
286
287static struct platform_device anubis_device_asix = {
288 .name = "ax88796",
289 .id = 0,
290 .num_resources = ARRAY_SIZE(anubis_asix_resource),
291 .resource = anubis_asix_resource,
292 .dev = {
293 .platform_data = &anubis_asix_platdata,
294 }
295};
296
263/* Standard Anubis devices */ 297/* Standard Anubis devices */
264 298
265static struct platform_device *anubis_devices[] __initdata = { 299static struct platform_device *anubis_devices[] __initdata = {
@@ -271,6 +305,7 @@ static struct platform_device *anubis_devices[] __initdata = {
271 &s3c_device_nand, 305 &s3c_device_nand,
272 &anubis_device_ide0, 306 &anubis_device_ide0,
273 &anubis_device_ide1, 307 &anubis_device_ide1,
308 &anubis_device_asix,
274}; 309};
275 310
276static struct clk *anubis_clocks[] = { 311static struct clk *anubis_clocks[] = {