Browse Source

RealView: Allow the in-kernel smc911x.c driver on RealView

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>
Catalin Marinas 16 years ago
parent
commit
0a5b2f6be7
1 changed files with 9 additions and 0 deletions
  1. 9 0
      arch/arm/mach-realview/core.c

+ 9 - 0
arch/arm/mach-realview/core.c

@@ -28,6 +28,7 @@
 #include <linux/clocksource.h>
 #include <linux/clocksource.h>
 #include <linux/clockchips.h>
 #include <linux/clockchips.h>
 #include <linux/io.h>
 #include <linux/io.h>
+#include <linux/smc911x.h>
 
 
 #include <asm/system.h>
 #include <asm/system.h>
 #include <mach/hardware.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);
 	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 = {
 static struct platform_device realview_eth_device = {
 	.name		= "smc911x",
 	.name		= "smc911x",
 	.id		= 0,
 	.id		= 0,
@@ -136,6 +143,8 @@ int realview_eth_register(const char *name, struct resource *res)
 	if (name)
 	if (name)
 		realview_eth_device.name = name;
 		realview_eth_device.name = name;
 	realview_eth_device.resource = res;
 	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);
 	return platform_device_register(&realview_eth_device);
 }
 }