diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-01-27 11:18:01 -0500 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-05-01 06:38:45 -0400 |
commit | 3056ea0afba83d19af5f1f3daf6ed7211f0717da (patch) | |
tree | 27dcd52e3fcf00bd2e565ff582d1dee5818a34f2 | |
parent | d6662c351a827264706bf880a36cdd376808ba1c (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.c | 35 |
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 | ||
137 | static 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 | |||
150 | static 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 | |||
158 | static 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 | |||
135 | static struct map_desc smdk6410_iodesc[] = {}; | 168 | static struct map_desc smdk6410_iodesc[] = {}; |
136 | 169 | ||
137 | static struct platform_device *smdk6410_devices[] __initdata = { | 170 | static 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 | ||
150 | static struct i2c_board_info i2c_devs0[] __initdata = { | 185 | static struct i2c_board_info i2c_devs0[] __initdata = { |