RealView: Allow the in-kernel smc911x.c driver on RealView
authorCatalin Marinas <catalin.marinas@arm.com>
Mon, 1 Dec 2008 14:54:59 +0000 (14:54 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 1 Dec 2008 14:54:59 +0000 (14:54 +0000)
This patch adds smc911x.c device configuration to the RealView
platforms. At some point it may be changed to the new smsc911x.c driver
(once complete testing was done).

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm/mach-realview/core.c

index d80208a1f1fe593f1e36b996f78fe3b2041132b2..86aa6d74126fe968778f905635111e18aae96f89 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/clocksource.h>
 #include <linux/clockchips.h>
 #include <linux/io.h>
+#include <linux/smc911x.h>
 
 #include <asm/system.h>
 #include <mach/hardware.h>
@@ -125,6 +126,12 @@ int realview_flash_register(struct resource *res, u32 num)
        return platform_device_register(&realview_flash_device);
 }
 
+static struct smc911x_platdata realview_smc911x_platdata = {
+       .flags          = SMC911X_USE_32BIT,
+       .irq_flags      = IRQF_SHARED,
+       .irq_polarity   = 1,
+};
+
 static struct platform_device realview_eth_device = {
        .name           = "smc911x",
        .id             = 0,
@@ -136,6 +143,8 @@ int realview_eth_register(const char *name, struct resource *res)
        if (name)
                realview_eth_device.name = name;
        realview_eth_device.resource = res;
+       if (strcmp(realview_eth_device.name, "smc911x") == 0)
+               realview_eth_device.dev.platform_data = &realview_smc911x_platdata;
 
        return platform_device_register(&realview_eth_device);
 }