-Index: linux-2.6.23.14/arch/arm/mach-ixp4xx/avila-setup.c
+Index: linux-2.6.24.7/include/asm-arm/arch-ixp4xx/avila.h
===================================================================
---- linux-2.6.23.14.orig/arch/arm/mach-ixp4xx/avila-setup.c 2008-01-25 18:26:06.000000000 +0100
-+++ linux-2.6.23.14/arch/arm/mach-ixp4xx/avila-setup.c 2008-01-25 18:44:02.000000000 +0100
-@@ -165,12 +165,34 @@
- }
+--- linux-2.6.24.7.orig/include/asm-arm/arch-ixp4xx/avila.h
++++ linux-2.6.24.7/include/asm-arm/arch-ixp4xx/avila.h
+@@ -36,4 +36,6 @@
+ #define AVILA_PCI_INTC_PIN 9
+ #define AVILA_PCI_INTD_PIN 8
+
+-
++/* User LEDs */
++#define AVILA_GW23XX_LED_USER_GPIO 3
++#define AVILA_GW23X7_LED_USER_GPIO 4
+Index: linux-2.6.24.7/arch/arm/mach-ixp4xx/avila-setup.c
+===================================================================
+--- linux-2.6.24.7.orig/arch/arm/mach-ixp4xx/avila-setup.c
++++ linux-2.6.24.7/arch/arm/mach-ixp4xx/avila-setup.c
+@@ -26,6 +26,7 @@
+ # include <linux/eeprom.h>
+ #endif
+
++#include <linux/leds.h>
+ #include <linux/i2c-gpio.h>
+
+ #include <asm/types.h>
+@@ -172,6 +173,25 @@ static struct platform_device avila_npec
+ .dev.platform_data = &avila_npec_data,
};
-+#ifdef CONFIG_LEDS_IXP4XX
-+static struct resource avila_led_resources[] = {
++static struct gpio_led avila_leds[] = {
+ {
-+ .name = "user",
-+ .start = AVILA_LED_USER_GPIO,
-+ .end = AVILA_LED_USER_GPIO,
-+ .flags = IXP4XX_GPIO_LOW,
-+ },
++ .name = "user", /* green led */
++ .gpio = AVILA_GW23XX_LED_USER_GPIO,
++ .active_low = 1,
++ }
+};
+
-+static struct platform_device avila_leds = {
-+ .name = "IXP4XX-GPIO-LED",
-+ .id = -1,
-+ .num_resources = ARRAY_SIZE(avila_led_resources),
-+ .resource = avila_led_resources,
++static struct gpio_led_platform_data avila_leds_data = {
++ .num_leds = 1,
++ .leds = avila_leds,
+};
-+#endif
+
++static struct platform_device avila_leds_device = {
++ .name = "leds-gpio",
++ .id = -1,
++ .dev.platform_data = &avila_leds_data,
++};
+
static struct platform_device *avila_devices[] __initdata = {
&avila_i2c_gpio,
&avila_flash,
- &avila_uart,
- &avila_eth[0],
- &avila_eth[1],
-+#ifdef CONFIG_LEDS_IXP4XX
-+ &avila_leds,
-+#endif
- };
+@@ -182,6 +202,8 @@ static void __init avila_gw23xx_setup(vo
+ {
+ platform_device_register(&avila_npeb_device);
+ platform_device_register(&avila_npec_device);
++
++ platform_device_register(&avila_leds_device);
+ }
- 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-25 18:26:02.000000000 +0100
-+++ linux-2.6.23.14/include/asm-arm/arch-ixp4xx/avila.h 2008-01-25 18:26:06.000000000 +0100
-@@ -36,4 +36,5 @@
- #define AVILA_PCI_INTC_PIN 9
- #define AVILA_PCI_INTD_PIN 8
+ #ifdef CONFIG_SENSORS_EEPROM
+@@ -189,6 +211,8 @@ static void __init avila_gw2342_setup(vo
+ {
+ platform_device_register(&avila_npeb_device);
+ platform_device_register(&avila_npec_device);
++
++ platform_device_register(&avila_leds_device);
+ }
--
-+/* User LED */
-+#define AVILA_LED_USER_GPIO 3
+ static void __init avila_gw2345_setup(void)
+@@ -199,22 +223,30 @@ static void __init avila_gw2345_setup(vo
+
+ avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */
+ platform_device_register(&avila_npec_device);
++
++ platform_device_register(&avila_leds_device);
+ }
+
+ static void __init avila_gw2347_setup(void)
+ {
+ platform_device_register(&avila_npeb_device);
++
++ avila_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO;
++ platform_device_register(&avila_leds_device);
+ }
+
+ static void __init avila_gw2348_setup(void)
+ {
+ platform_device_register(&avila_npeb_device);
+ platform_device_register(&avila_npec_device);
++
++ platform_device_register(&avila_leds_device);
+ }
+
+ static void __init avila_gw2353_setup(void)
+ {
+ platform_device_register(&avila_npeb_device);
++ platform_device_register(&avila_leds_device);
+ }
+
+ static void __init avila_gw2355_setup(void)
+@@ -225,11 +257,16 @@ static void __init avila_gw2355_setup(vo
+
+ avila_npec_data.phy = 16;
+ platform_device_register(&avila_npec_device);
++
++ platform_device_register(&avila_leds_device);
+ }
+
+ static void __init avila_gw2357_setup(void)
+ {
+ platform_device_register(&avila_npeb_device);
++
++ avila_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO;
++ platform_device_register(&avila_leds_device);
+ }
+
+ static struct avila_board_info avila_boards[] __initdata = {