>From 58efa8d0019a7f777aaad2d43afb05170df25fae Mon Sep 17 00:00:00 2001
From: Arun KS <[EMAIL PROTECTED]>
Date: Tue, 24 Jun 2008 16:01:32 +0530
Subject: [PATCH] OMAP2EVM: Adding ethernet support
OMAP2EVM: add ethernet support (smc911x)
Signed-off-by: Arun KS <[EMAIL PROTECTED]>
---
arch/arm/mach-omap2/board-omap2evm.c | 37 ++++++++++++++++++++++++++++
include/asm-arm/arch-omap/board-omap2evm.h | 5 ++-
2 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap2evm.c
b/arch/arm/mach-omap2/board-omap2evm.c
index d00e502..e9a2cef 100644
--- a/arch/arm/mach-omap2/board-omap2evm.c
+++ b/arch/arm/mach-omap2/board-omap2evm.c
@@ -27,11 +27,43 @@
#include <asm/arch/board.h>
#include <asm/arch/common.h>
+static struct resource omap2evm_smc911x_resources[] = {
+ [0] = {
+ .start = OMAP2EVM_ETHR_START,
+ .end = (OMAP2EVM_ETHR_START + OMAP2EVM_ETHR_SIZE - 1),
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = OMAP_GPIO_IRQ(OMAP2EVM_ETHR_GPIO_IRQ),
+ .end = OMAP_GPIO_IRQ(OMAP2EVM_ETHR_GPIO_IRQ),
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device omap2evm_smc911x_device = {
+ .name = "smc911x",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(omap2evm_smc911x_resources),
+ .resource = &omap2evm_smc911x_resources [0],
+};
+
+static inline void __init omap2evm_init_smc911x(void)
+{
+ if (omap_request_gpio(OMAP2EVM_ETHR_GPIO_IRQ) < 0) {
+ printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
+ OMAP2EVM_ETHR_GPIO_IRQ);
+ return;
+ }
+
+ omap_set_gpio_direction(OMAP2EVM_ETHR_GPIO_IRQ, 1);
+}
+
static void __init omap2_evm_init_irq(void)
{
omap2_init_common_hw();
omap_init_irq();
omap_gpio_init();
+ omap2evm_init_smc911x();
}
static struct omap_uart_config omap2_evm_uart_config __initdata = {
@@ -53,8 +85,13 @@ static int __init omap2_evm_i2c_init(void)
return 0;
}
+static struct platform_device *omap2_evm_devices[] __initdata = {
+ &omap2evm_smc911x_device,
+};
+
static void __init omap2_evm_init(void)
{
+ platform_add_devices(omap2_evm_devices, ARRAY_SIZE(omap2_evm_devices));
omap_board_config = omap2_evm_config;
omap_board_config_size = ARRAY_SIZE(omap2_evm_config);
omap_serial_init();
diff --git a/include/asm-arm/arch-omap/board-omap2evm.h
b/include/asm-arm/arch-omap/board-omap2evm.h
index 98273a9..d770c58 100644
--- a/include/asm-arm/arch-omap/board-omap2evm.h
+++ b/include/asm-arm/arch-omap/board-omap2evm.h
@@ -30,7 +30,8 @@
#define __ASM_ARCH_OMAP2_EVM_H
/* Placeholder for OMAP2EVM specific defines */
-#define OMAP24XX_ETHR_START 0x08000300
-#define OMAP24XX_ETHR_GPIO_IRQ 149
+#define OMAP2EVM_ETHR_START 0x2c000000
+#define OMAP2EVM_ETHR_SIZE 1024
+#define OMAP2EVM_ETHR_GPIO_IRQ 149
#endif /* __ASM_ARCH_OMAP2_EVM_H */
--
1.5.3.4
From 58efa8d0019a7f777aaad2d43afb05170df25fae Mon Sep 17 00:00:00 2001
From: Arun KS <[EMAIL PROTECTED]>
Date: Tue, 24 Jun 2008 16:01:32 +0530
Subject: [PATCH] OMAP2EVM: Adding ethernet support
OMAP2EVM: add ethernet support (smc911x)
Signed-off-by: Arun KS <[EMAIL PROTECTED]>
---
arch/arm/mach-omap2/board-omap2evm.c | 37 ++++++++++++++++++++++++++++
include/asm-arm/arch-omap/board-omap2evm.h | 5 ++-
2 files changed, 40 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-omap2evm.c b/arch/arm/mach-omap2/board-omap2evm.c
index d00e502..e9a2cef 100644
--- a/arch/arm/mach-omap2/board-omap2evm.c
+++ b/arch/arm/mach-omap2/board-omap2evm.c
@@ -27,11 +27,43 @@
#include <asm/arch/board.h>
#include <asm/arch/common.h>
+static struct resource omap2evm_smc911x_resources[] = {
+ [0] = {
+ .start = OMAP2EVM_ETHR_START,
+ .end = (OMAP2EVM_ETHR_START + OMAP2EVM_ETHR_SIZE - 1),
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = OMAP_GPIO_IRQ(OMAP2EVM_ETHR_GPIO_IRQ),
+ .end = OMAP_GPIO_IRQ(OMAP2EVM_ETHR_GPIO_IRQ),
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device omap2evm_smc911x_device = {
+ .name = "smc911x",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(omap2evm_smc911x_resources),
+ .resource = &omap2evm_smc911x_resources [0],
+};
+
+static inline void __init omap2evm_init_smc911x(void)
+{
+ if (omap_request_gpio(OMAP2EVM_ETHR_GPIO_IRQ) < 0) {
+ printk(KERN_ERR "Failed to request GPIO%d for smc911x IRQ\n",
+ OMAP2EVM_ETHR_GPIO_IRQ);
+ return;
+ }
+
+ omap_set_gpio_direction(OMAP2EVM_ETHR_GPIO_IRQ, 1);
+}
+
static void __init omap2_evm_init_irq(void)
{
omap2_init_common_hw();
omap_init_irq();
omap_gpio_init();
+ omap2evm_init_smc911x();
}
static struct omap_uart_config omap2_evm_uart_config __initdata = {
@@ -53,8 +85,13 @@ static int __init omap2_evm_i2c_init(void)
return 0;
}
+static struct platform_device *omap2_evm_devices[] __initdata = {
+ &omap2evm_smc911x_device,
+};
+
static void __init omap2_evm_init(void)
{
+ platform_add_devices(omap2_evm_devices, ARRAY_SIZE(omap2_evm_devices));
omap_board_config = omap2_evm_config;
omap_board_config_size = ARRAY_SIZE(omap2_evm_config);
omap_serial_init();
diff --git a/include/asm-arm/arch-omap/board-omap2evm.h b/include/asm-arm/arch-omap/board-omap2evm.h
index 98273a9..d770c58 100644
--- a/include/asm-arm/arch-omap/board-omap2evm.h
+++ b/include/asm-arm/arch-omap/board-omap2evm.h
@@ -30,7 +30,8 @@
#define __ASM_ARCH_OMAP2_EVM_H
/* Placeholder for OMAP2EVM specific defines */
-#define OMAP24XX_ETHR_START 0x08000300
-#define OMAP24XX_ETHR_GPIO_IRQ 149
+#define OMAP2EVM_ETHR_START 0x2c000000
+#define OMAP2EVM_ETHR_SIZE 1024
+#define OMAP2EVM_ETHR_GPIO_IRQ 149
#endif /* __ASM_ARCH_OMAP2_EVM_H */
--
1.5.3.4