diff options
Diffstat (limited to 'target/linux/ixp4xx')
-rw-r--r-- | target/linux/ixp4xx/patches-2.6.23/302-gpio_device.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.23/302-gpio_device.patch b/target/linux/ixp4xx/patches-2.6.23/302-gpio_device.patch new file mode 100644 index 000000000..0a1831b4f --- /dev/null +++ b/target/linux/ixp4xx/patches-2.6.23/302-gpio_device.patch @@ -0,0 +1,49 @@ +Index: linux-2.6.23.14/arch/arm/mach-ixp4xx/avila-setup.c +=================================================================== +--- linux-2.6.23.14.orig/arch/arm/mach-ixp4xx/avila-setup.c 2008-01-26 02:59:30.000000000 +0100 ++++ linux-2.6.23.14/arch/arm/mach-ixp4xx/avila-setup.c 2008-01-26 03:03:07.000000000 +0100 +@@ -183,6 +183,23 @@ + }; + #endif + ++#ifdef CONFIG_GPIO_DEVICE ++static struct resource avila_gpio_resources[] = { ++ { ++ .name = "gpio", ++ .start = AVILA_GPIO_MASK, ++ .end = AVILA_GPIO_MASK, ++ .flags = 0, ++ }, ++}; ++ ++static struct platform_device avila_gpio = { ++ .name = "GPIODEV", ++ .id = -1, ++ .num_resources = ARRAY_SIZE(avila_gpio_resources), ++ .resource = avila_gpio_resources, ++}; ++#endif + + static struct platform_device *avila_devices[] __initdata = { + &avila_i2c_gpio, +@@ -193,6 +210,9 @@ + #ifdef CONFIG_LEDS_IXP4XX + &avila_leds, + #endif ++#ifdef CONFIG_GPIO_DEVICE ++ &avila_gpio, ++#endif + }; + + static char avila_rtc_probe[] __initdata = "rtc-ds1672.probe=0,0x68 "; +Index: linux-2.6.23.14/include/asm-arm/arch-ixp4xx/avila.h +=================================================================== +--- linux-2.6.23.14.orig/include/asm-arm/arch-ixp4xx/avila.h 2008-01-26 03:03:27.000000000 +0100 ++++ linux-2.6.23.14/include/asm-arm/arch-ixp4xx/avila.h 2008-01-26 03:07:02.000000000 +0100 +@@ -38,3 +38,6 @@ + + /* User LED */ + #define AVILA_LED_USER_GPIO 3 ++ ++/* gpio mask used by platform device */ ++#define AVILA_GPIO_MASK (1 << 1) | (1 << 3) | (1 << 5) | (1 << 7) | (1 << 9) |