Index: linux-2.6.23.17/arch/arm/mach-ixp4xx/avila-setup.c =================================================================== --- linux-2.6.23.17.orig/arch/arm/mach-ixp4xx/avila-setup.c +++ linux-2.6.23.17/arch/arm/mach-ixp4xx/avila-setup.c @@ -183,6 +183,23 @@ static struct platform_device avila_leds }; #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 @@ static struct platform_device *avila_dev #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.17/include/asm-arm/arch-ixp4xx/avila.h =================================================================== --- linux-2.6.23.17.orig/include/asm-arm/arch-ixp4xx/avila.h +++ linux-2.6.23.17/include/asm-arm/arch-ixp4xx/avila.h @@ -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)