aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-01-27 11:18:01 -0500
committerBen Dooks <ben-linux@fluff.org>2009-05-01 06:38:45 -0400
commit3056ea0afba83d19af5f1f3daf6ed7211f0717da (patch)
tree27dcd52e3fcf00bd2e565ff582d1dee5818a34f2
parentd6662c351a827264706bf880a36cdd376808ba1c (diff)
[ARM] SMDK6410: Add support for SMSC9115 ethernet controller
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
-rw-r--r--arch/arm/mach-s3c6410/mach-smdk6410.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
index d0b9f09b7269..dfd84d00f8d0 100644
--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
+++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
@@ -24,6 +24,7 @@
24#include <linux/fb.h> 24#include <linux/fb.h>
25#include <linux/gpio.h> 25#include <linux/gpio.h>
26#include <linux/delay.h> 26#include <linux/delay.h>
27#include <linux/smsc911x.h>
27 28
28#include <video/platform_lcd.h> 29#include <video/platform_lcd.h>
29 30
@@ -44,6 +45,7 @@
44#include <plat/regs-sys.h> 45#include <plat/regs-sys.h>
45#include <plat/iic.h> 46#include <plat/iic.h>
46#include <plat/fb.h> 47#include <plat/fb.h>
48#include <plat/gpio-cfg.h>
47 49
48#include <plat/s3c6410.h> 50#include <plat/s3c6410.h>
49#include <plat/clock.h> 51#include <plat/clock.h>
@@ -132,6 +134,37 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
132 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 134 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
133}; 135};
134 136
137static struct resource smdk6410_smsc911x_resources[] = {
138 [0] = {
139 .start = 0x18000000,
140 .end = 0x18000000 + SZ_64K - 1,
141 .flags = IORESOURCE_MEM,
142 },
143 [1] = {
144 .start = S3C_EINT(10),
145 .end = S3C_EINT(10),
146 .flags = IORESOURCE_IRQ | IRQ_TYPE_LEVEL_LOW,
147 },
148};
149
150static struct smsc911x_platform_config smdk6410_smsc911x_pdata = {
151 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
152 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
153 .flags = SMSC911X_USE_32BIT | SMSC911X_FORCE_INTERNAL_PHY,
154 .phy_interface = PHY_INTERFACE_MODE_MII,
155};
156
157
158static struct platform_device smdk6410_smsc911x = {
159 .name = "smsc911x",
160 .id = -1,
161 .num_resources = ARRAY_SIZE(smdk6410_smsc911x_resources),
162 .resource = &smdk6410_smsc911x_resources[0],
163 .dev = {
164 .platform_data = &smdk6410_smsc911x_pdata,
165 },
166};
167
135static struct map_desc smdk6410_iodesc[] = {}; 168static struct map_desc smdk6410_iodesc[] = {};
136 169
137static struct platform_device *smdk6410_devices[] __initdata = { 170static struct platform_device *smdk6410_devices[] __initdata = {
@@ -145,6 +178,8 @@ static struct platform_device *smdk6410_devices[] __initdata = {
145 &s3c_device_i2c1, 178 &s3c_device_i2c1,
146 &s3c_device_fb, 179 &s3c_device_fb,
147 &smdk6410_lcd_powerdev, 180 &smdk6410_lcd_powerdev,
181
182 &smdk6410_smsc911x,
148}; 183};
149 184
150static struct i2c_board_info i2c_devs0[] __initdata = { 185static struct i2c_board_info i2c_devs0[] __initdata = {