Redwood[56] support for smc91x Ethernet driver
PATCH 1/1 Redwood[56] support for smc91x Ethernet driver
This patch for linux-2.5 enables the Redwood 5 and Redwood 6 platforms to use the smc91x ethernet driver.
Signed-off-by Dale Farnsworth <[email protected]>
Signed-off-by Matt Porter <[email protected]>
redwood5.c | 34 +++++++++++++++++++++++++++++++++- redwood5.h | 1 + redwood6.c | 34 ++++++++++++++++++++++++++++++++++ redwood6.h | 1 + 4 files changed, 69 insertions(+), 1 deletion(-)
arch/ppc/platforms/4xx/redwood5.c +33 -1
@@ -14,9 +14,41 @@#include <linux/config.h> #include <linux/init.h> #include <linux/pagemap.h> +#include <linux/device.h> +#include <linux/ioport.h> #include <asm/io.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 redwood5_setup_arch (void ) {
@@ -44,7 +76,7 @@printk ("\n" );#endif - +device_initcall (redwood5_platform_add_devices); }void __init
arch/ppc/platforms/4xx/redwood5.h +1 -0
@@ -34,6 +34,7 @@#define SMC91111_BASE_ADDR 0xf2000300 +#define SMC91111_REG_SIZE 16#define SMC91111_IRQ 28#ifdef MAX_HWIFS
arch/ppc/platforms/4xx/redwood6.c +34 -0
@@ -12,6 +12,8 @@#include <linux/config.h> #include <linux/init.h> #include <linux/pagemap.h> +#include <linux/device.h> +#include <linux/ioport.h> #include <asm/io.h> #include <asm/ppc4xx_pic.h> #include <linux/delay.h>
@@ -57,6 +59,36 @@ (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 redwood6_setup_arch (void )
@@ -119,6 +151,8 @@printk (KERN_INFO "IBM Redwood6 (STBx25XX) Platform\n" );printk (KERN_INFO "Port by MontaVista Software, Inc. ([email protected])\n" ); + +device_initcall (redwood6_platform_add_devices); }void __init
arch/ppc/platforms/4xx/redwood6.h +1 -0
@@ -33,6 +33,7 @@#endif /* !__ASSEMBLY__ */ #define SMC91111_BASE_ADDR 0xf2030300 +#define SMC91111_REG_SIZE 16#define SMC91111_IRQ 27#define IDE_XLINUX_MUX_BASE 0xf2040000#define IDE_DMA_ADDR 0xfce00000