]> Pileus Git - ~andy/linux/commitdiff
[ARM] SMDK6410: Add support for SMSC9115 ethernet controller
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 27 Jan 2009 16:18:01 +0000 (16:18 +0000)
committerBen Dooks <ben-linux@fluff.org>
Fri, 1 May 2009 10:38:45 +0000 (11:38 +0100)
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c6410/mach-smdk6410.c

index d0b9f09b7269952eeb8445d2d13bf9afeb33d95e..dfd84d00f8d0fa34ab54a17a80362a9ea0c89fb3 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/fb.h>
 #include <linux/gpio.h>
 #include <linux/delay.h>
+#include <linux/smsc911x.h>
 
 #include <video/platform_lcd.h>
 
@@ -44,6 +45,7 @@
 #include <plat/regs-sys.h>
 #include <plat/iic.h>
 #include <plat/fb.h>
+#include <plat/gpio-cfg.h>
 
 #include <plat/s3c6410.h>
 #include <plat/clock.h>
@@ -132,6 +134,37 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
        .vidcon1        = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
 };
 
+static struct resource smdk6410_smsc911x_resources[] = {
+       [0] = {
+               .start = 0x18000000,
+               .end   = 0x18000000 + SZ_64K - 1,
+               .flags = IORESOURCE_MEM,
+       },
+       [1] = {
+               .start = S3C_EINT(10),
+               .end   = S3C_EINT(10),
+               .flags = IORESOURCE_IRQ | IRQ_TYPE_LEVEL_LOW,
+       },
+};
+
+static struct smsc911x_platform_config smdk6410_smsc911x_pdata = {
+       .irq_polarity  = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
+       .irq_type      = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
+       .flags         = SMSC911X_USE_32BIT | SMSC911X_FORCE_INTERNAL_PHY,
+       .phy_interface = PHY_INTERFACE_MODE_MII,
+};
+
+
+static struct platform_device smdk6410_smsc911x = {
+       .name          = "smsc911x",
+       .id            = -1,
+       .num_resources = ARRAY_SIZE(smdk6410_smsc911x_resources),
+       .resource      = &smdk6410_smsc911x_resources[0],
+       .dev = {
+               .platform_data = &smdk6410_smsc911x_pdata,
+       },
+};
+
 static struct map_desc smdk6410_iodesc[] = {};
 
 static struct platform_device *smdk6410_devices[] __initdata = {
@@ -145,6 +178,8 @@ static struct platform_device *smdk6410_devices[] __initdata = {
        &s3c_device_i2c1,
        &s3c_device_fb,
        &smdk6410_lcd_powerdev,
+
+       &smdk6410_smsc911x,
 };
 
 static struct i2c_board_info i2c_devs0[] __initdata = {