>From 58efa8d0019a7f777aaad2d43afb05170df25fae Mon Sep 17 00:00:00 2001 From: Arun KS <arunks@xxxxxxxxxxxxxxxxxxxx> 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 <arunks@xxxxxxxxxxxxxxxxxxxx> --- 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 <arunks@xxxxxxxxxxxxxxxxxxxx> 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 <arunks@xxxxxxxxxxxxxxxxxxxx> --- 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