lkml.org 
[lkml]   [2004]   [Jul]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH][PPC32] 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 <dale@farnsworth.org>
Signed-off-by: Matt Porter <mporter@kernel.crashing.org>

redwood5.c | 34 +++++++++++++++++++++++++++++++++-
redwood5.h | 1 +
redwood6.c | 34 ++++++++++++++++++++++++++++++++++
redwood6.h | 1 +
4 files changed, 69 insertions(+), 1 deletion(-)

diff -Nru a/arch/ppc/platforms/4xx/redwood5.c b/arch/ppc/platforms/4xx/redwood5.c
--- a/arch/ppc/platforms/4xx/redwood5.c 2004-06-23 06:50:11 -07:00
+++ b/arch/ppc/platforms/4xx/redwood5.c 2004-06-23 06:50:11 -07:00
@@ -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
diff -Nru a/arch/ppc/platforms/4xx/redwood5.h b/arch/ppc/platforms/4xx/redwood5.h
--- a/arch/ppc/platforms/4xx/redwood5.h 2004-06-23 06:50:11 -07:00
+++ b/arch/ppc/platforms/4xx/redwood5.h 2004-06-23 06:50:11 -07:00
@@ -34,6 +34,7 @@


#define SMC91111_BASE_ADDR 0xf2000300
+#define SMC91111_REG_SIZE 16
#define SMC91111_IRQ 28

#ifdef MAX_HWIFS
diff -Nru a/arch/ppc/platforms/4xx/redwood6.c b/arch/ppc/platforms/4xx/redwood6.c
--- a/arch/ppc/platforms/4xx/redwood6.c 2004-06-23 06:50:11 -07:00
+++ b/arch/ppc/platforms/4xx/redwood6.c 2004-06-23 06:50:11 -07:00
@@ -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. (source@mvista.com)\n");
+
+ device_initcall(redwood6_platform_add_devices);
}

void __init
diff -Nru a/arch/ppc/platforms/4xx/redwood6.h b/arch/ppc/platforms/4xx/redwood6.h
--- a/arch/ppc/platforms/4xx/redwood6.h 2004-06-23 06:50:11 -07:00
+++ b/arch/ppc/platforms/4xx/redwood6.h 2004-06-23 06:50:11 -07:00
@@ -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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [W:0.031 / U:0.768 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site