diff options
Diffstat (limited to 'recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch')
-rw-r--r-- | recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch b/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch new file mode 100644 index 0000000000..ea032e2985 --- /dev/null +++ b/recipes/linux/linux-omap-psp-2.6.32/0016-ARM-OMAP-Overo-Add-support-for-second-ethernet-port.patch @@ -0,0 +1,110 @@ +From 0f494c3545ebbc375a7241ede3aa0db33295bebe Mon Sep 17 00:00:00 2001 +From: Steve Sakoman <sakoman@gmail.com> +Date: Tue, 15 Dec 2009 14:59:42 -0800 +Subject: [PATCH 16/43] ARM: OMAP: Overo: Add support for second ethernet port + +Signed-off-by: Steve Sakoman <sakoman@gmail.com> +--- + arch/arm/mach-omap2/board-overo.c | 56 +++++++++++++++++++++++++++++++++++-- + 1 files changed, 53 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c +index e0aebc3..6204b8c 100644 +--- a/arch/arm/mach-omap2/board-overo.c ++++ b/arch/arm/mach-omap2/board-overo.c +@@ -63,6 +63,8 @@ + + #define OVERO_SMSC911X_CS 5 + #define OVERO_SMSC911X_GPIO 176 ++#define OVERO_SMSC911X2_CS 4 ++#define OVERO_SMSC911X2_GPIO 65 + + #if defined(CONFIG_TOUCHSCREEN_ADS7846) || \ + defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) +@@ -137,6 +139,16 @@ static struct resource overo_smsc911x_resources[] = { + }, + }; + ++static struct resource overo_smsc911x2_resources[] = { ++ { ++ .name = "smsc911x2-memory", ++ .flags = IORESOURCE_MEM, ++ }, ++ { ++ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, ++ }, ++}; ++ + static struct smsc911x_platform_config overo_smsc911x_config = { + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, + .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, +@@ -146,7 +158,7 @@ static struct smsc911x_platform_config overo_smsc911x_config = { + + static struct platform_device overo_smsc911x_device = { + .name = "smsc911x", +- .id = -1, ++ .id = 0, + .num_resources = ARRAY_SIZE(overo_smsc911x_resources), + .resource = overo_smsc911x_resources, + .dev = { +@@ -154,9 +166,26 @@ static struct platform_device overo_smsc911x_device = { + }, + }; + ++static struct platform_device overo_smsc911x2_device = { ++ .name = "smsc911x", ++ .id = 1, ++ .num_resources = ARRAY_SIZE(overo_smsc911x2_resources), ++ .resource = overo_smsc911x2_resources, ++ .dev = { ++ .platform_data = &overo_smsc911x_config, ++ }, ++}; ++ ++static struct platform_device *smsc911x_devices[] = { ++ &overo_smsc911x_device, ++ &overo_smsc911x2_device, ++}; ++ + static inline void __init overo_init_smsc911x(void) + { +- unsigned long cs_mem_base; ++ unsigned long cs_mem_base, cs_mem_base2; ++ ++ /* set up first smsc911x chip */ + + if (gpmc_cs_request(OVERO_SMSC911X_CS, SZ_16M, &cs_mem_base) < 0) { + printk(KERN_ERR "Failed request for GPMC mem for smsc911x\n"); +@@ -177,7 +206,28 @@ static inline void __init overo_init_smsc911x(void) + overo_smsc911x_resources[1].start = OMAP_GPIO_IRQ(OVERO_SMSC911X_GPIO); + overo_smsc911x_resources[1].end = 0; + +- platform_device_register(&overo_smsc911x_device); ++ /* set up second smsc911x chip */ ++ ++ if (gpmc_cs_request(OVERO_SMSC911X2_CS, SZ_16M, &cs_mem_base2) < 0) { ++ printk(KERN_ERR "Failed request for GPMC mem for smsc911x2\n"); ++ return; ++ } ++ ++ overo_smsc911x2_resources[0].start = cs_mem_base2 + 0x0; ++ overo_smsc911x2_resources[0].end = cs_mem_base2 + 0xff; ++ ++ if ((gpio_request(OVERO_SMSC911X2_GPIO, "SMSC911X2 IRQ") == 0) && ++ (gpio_direction_input(OVERO_SMSC911X2_GPIO) == 0)) { ++ gpio_export(OVERO_SMSC911X2_GPIO, 0); ++ } else { ++ printk(KERN_ERR "could not obtain gpio for SMSC911X2 IRQ\n"); ++ return; ++ } ++ ++ overo_smsc911x2_resources[1].start = OMAP_GPIO_IRQ(OVERO_SMSC911X2_GPIO); ++ overo_smsc911x2_resources[1].end = 0; ++ ++ platform_add_devices(smsc911x_devices, ARRAY_SIZE(smsc911x_devices)); + } + + #else +-- +1.6.6.1 + |