Commit 3796df42 authored by Matt Porter's avatar Matt Porter Committed by Linus Torvalds

[PATCH] ppc32: Redwood[56] support for smc91x Ethernet driver

This patch enables the Redwood 5 and Redwood 6 platforms to use the smc91x
ethernet driver.
Signed-off-by: default avatarDale Farnsworth <dale@farnsworth.org>
Signed-off-by: default avatarMatt Porter <mporter@kernel.crashing.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent eaa1db04
...@@ -14,9 +14,41 @@ ...@@ -14,9 +14,41 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/device.h>
#include <linux/ioport.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/machdep.h> #include <asm/machdep.h>
static struct resource smc91x_resources[] = {
[0] = {
.start = SMC91111_BASE_ADDR,
.end = SMC91111_BASE_ADDR + SMC91111_REG_SIZE - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = SMC91111_IRQ,
.end = SMC91111_IRQ,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device smc91x_device = {
.name = "smc91x",
.id = 0,
.num_resources = ARRAY_SIZE(smc91x_resources),
.resource = smc91x_resources,
};
static struct platform_device *redwood5_devs[] __initdata = {
&smc91x_device,
};
static int __init
redwood5_platform_add_devices(void)
{
return platform_add_devices(redwood5_devs, ARRAY_SIZE(redwood5_devs));
}
void __init void __init
redwood5_setup_arch(void) redwood5_setup_arch(void)
{ {
...@@ -44,7 +76,7 @@ redwood5_setup_arch(void) ...@@ -44,7 +76,7 @@ redwood5_setup_arch(void)
printk("\n"); printk("\n");
#endif #endif
device_initcall(redwood5_platform_add_devices);
} }
void __init void __init
......
...@@ -34,6 +34,7 @@ typedef struct board_info { ...@@ -34,6 +34,7 @@ typedef struct board_info {
#define SMC91111_BASE_ADDR 0xf2000300 #define SMC91111_BASE_ADDR 0xf2000300
#define SMC91111_REG_SIZE 16
#define SMC91111_IRQ 28 #define SMC91111_IRQ 28
#ifdef MAX_HWIFS #ifdef MAX_HWIFS
......
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
#include <linux/config.h> #include <linux/config.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/device.h>
#include <linux/ioport.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/ppc4xx_pic.h> #include <asm/ppc4xx_pic.h>
#include <linux/delay.h> #include <linux/delay.h>
...@@ -57,6 +59,36 @@ static u_char redwood6_IRQ_initsenses[] __initdata = { ...@@ -57,6 +59,36 @@ static u_char redwood6_IRQ_initsenses[] __initdata = {
(IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 31: Ext Int 6 */ (IRQ_SENSE_LEVEL | IRQ_POLARITY_NEGATIVE), /* 31: Ext Int 6 */
}; };
static struct resource smc91x_resources[] = {
[0] = {
.start = SMC91111_BASE_ADDR,
.end = SMC91111_BASE_ADDR + SMC91111_REG_SIZE - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = SMC91111_IRQ,
.end = SMC91111_IRQ,
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device smc91x_device = {
.name = "smc91x",
.id = 0,
.num_resources = ARRAY_SIZE(smc91x_resources),
.resource = smc91x_resources,
};
static struct platform_device *redwood6_devs[] __initdata = {
&smc91x_device,
};
static int __init
redwood6_platform_add_devices(void)
{
return platform_add_devices(redwood6_devs, ARRAY_SIZE(redwood6_devs));
}
void __init void __init
redwood6_setup_arch(void) redwood6_setup_arch(void)
...@@ -119,6 +151,8 @@ redwood6_setup_arch(void) ...@@ -119,6 +151,8 @@ redwood6_setup_arch(void)
printk(KERN_INFO "IBM Redwood6 (STBx25XX) Platform\n"); printk(KERN_INFO "IBM Redwood6 (STBx25XX) Platform\n");
printk(KERN_INFO printk(KERN_INFO
"Port by MontaVista Software, Inc. (source@mvista.com)\n"); "Port by MontaVista Software, Inc. (source@mvista.com)\n");
device_initcall(redwood6_platform_add_devices);
} }
void __init void __init
......
...@@ -33,6 +33,7 @@ typedef struct board_info { ...@@ -33,6 +33,7 @@ typedef struct board_info {
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#define SMC91111_BASE_ADDR 0xf2030300 #define SMC91111_BASE_ADDR 0xf2030300
#define SMC91111_REG_SIZE 16
#define SMC91111_IRQ 27 #define SMC91111_IRQ 27
#define IDE_XLINUX_MUX_BASE 0xf2040000 #define IDE_XLINUX_MUX_BASE 0xf2040000
#define IDE_DMA_ADDR 0xfce00000 #define IDE_DMA_ADDR 0xfce00000
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment