X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/60289aade7304b10112a6839dcf293e719f057eb..095085228384edbd706366fbbe61c07a75532483:/target/linux/ixp4xx/patches-2.6.25/301-avila_led.patch?ds=inline diff --git a/target/linux/ixp4xx/patches-2.6.25/301-avila_led.patch b/target/linux/ixp4xx/patches-2.6.25/301-avila_led.patch index 14be023f7..7a079f537 100644 --- a/target/linux/ixp4xx/patches-2.6.25/301-avila_led.patch +++ b/target/linux/ixp4xx/patches-2.6.25/301-avila_led.patch @@ -1,19 +1,5 @@ -Index: linux-2.6.25.1/include/asm-arm/arch-ixp4xx/avila.h -=================================================================== ---- linux-2.6.25.1.orig/include/asm-arm/arch-ixp4xx/avila.h -+++ linux-2.6.25.1/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.25.1/arch/arm/mach-ixp4xx/avila-setup.c -=================================================================== ---- linux-2.6.25.1.orig/arch/arm/mach-ixp4xx/avila-setup.c -+++ linux-2.6.25.1/arch/arm/mach-ixp4xx/avila-setup.c +--- a/arch/arm/mach-ixp4xx/avila-setup.c ++++ b/arch/arm/mach-ixp4xx/avila-setup.c @@ -26,6 +26,7 @@ # include #endif @@ -22,11 +8,11 @@ Index: linux-2.6.25.1/arch/arm/mach-ixp4xx/avila-setup.c #include #include -@@ -172,6 +173,25 @@ static struct platform_device avila_npec +@@ -172,6 +173,72 @@ .dev.platform_data = &avila_npec_data, }; -+static struct gpio_led avila_leds[] = { ++static struct gpio_led avila_gpio_leds[] = { + { + .name = "user", /* green led */ + .gpio = AVILA_GW23XX_LED_USER_GPIO, @@ -34,52 +20,99 @@ Index: linux-2.6.25.1/arch/arm/mach-ixp4xx/avila-setup.c + } +}; + -+static struct gpio_led_platform_data avila_leds_data = { ++static struct gpio_led_platform_data avila_gpio_leds_data = { + .num_leds = 1, -+ .leds = avila_leds, ++ .leds = avila_gpio_leds, +}; + -+static struct platform_device avila_leds_device = { ++static struct platform_device avila_gpio_leds_device = { + .name = "leds-gpio", + .id = -1, -+ .dev.platform_data = &avila_leds_data, ++ .dev.platform_data = &avila_gpio_leds_data, ++}; ++ ++static struct latch_led avila_latch_leds[] = { ++ { ++ .name = "led0", /* green led */ ++ .bit = 0, ++ }, ++ { ++ .name = "led1", /* green led */ ++ .bit = 1, ++ }, ++ { ++ .name = "led2", /* green led */ ++ .bit = 2, ++ }, ++ { ++ .name = "led3", /* green led */ ++ .bit = 3, ++ }, ++ { ++ .name = "led4", /* green led */ ++ .bit = 4, ++ }, ++ { ++ .name = "led5", /* green led */ ++ .bit = 5, ++ }, ++ { ++ .name = "led6", /* green led */ ++ .bit = 6, ++ }, ++ { ++ .name = "led7", /* green led */ ++ .bit = 7, ++ } ++}; ++ ++static struct latch_led_platform_data avila_latch_leds_data = { ++ .num_leds = 8, ++ .leds = avila_latch_leds, ++ .mem = 0x51000000, ++}; ++ ++static struct platform_device avila_latch_leds_device = { ++ .name = "leds-latch", ++ .id = -1, ++ .dev.platform_data = &avila_latch_leds_data, +}; + static struct platform_device *avila_devices[] __initdata = { &avila_i2c_gpio, &avila_flash, -@@ -182,6 +202,8 @@ static void __init avila_gw23xx_setup(vo +@@ -182,6 +249,8 @@ { platform_device_register(&avila_npeb_device); platform_device_register(&avila_npec_device); + -+ platform_device_register(&avila_leds_device); ++ platform_device_register(&avila_gpio_leds_device); } #ifdef CONFIG_SENSORS_EEPROM -@@ -189,6 +211,8 @@ static void __init avila_gw2342_setup(vo +@@ -189,6 +258,8 @@ { platform_device_register(&avila_npeb_device); platform_device_register(&avila_npec_device); + -+ platform_device_register(&avila_leds_device); ++ platform_device_register(&avila_gpio_leds_device); } static void __init avila_gw2345_setup(void) -@@ -199,22 +223,30 @@ static void __init avila_gw2345_setup(vo +@@ -199,22 +270,30 @@ avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */ platform_device_register(&avila_npec_device); + -+ platform_device_register(&avila_leds_device); ++ platform_device_register(&avila_gpio_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); ++ avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO; ++ platform_device_register(&avila_gpio_leds_device); } static void __init avila_gw2348_setup(void) @@ -87,30 +120,53 @@ Index: linux-2.6.25.1/arch/arm/mach-ixp4xx/avila-setup.c platform_device_register(&avila_npeb_device); platform_device_register(&avila_npec_device); + -+ platform_device_register(&avila_leds_device); ++ platform_device_register(&avila_gpio_leds_device); } static void __init avila_gw2353_setup(void) { platform_device_register(&avila_npeb_device); -+ platform_device_register(&avila_leds_device); ++ platform_device_register(&avila_gpio_leds_device); } static void __init avila_gw2355_setup(void) -@@ -225,11 +257,16 @@ static void __init avila_gw2355_setup(vo +@@ -225,11 +304,29 @@ avila_npec_data.phy = 16; platform_device_register(&avila_npec_device); + -+ platform_device_register(&avila_leds_device); ++ platform_device_register(&avila_gpio_leds_device); ++ ++ *IXP4XX_EXP_CS4 |= 0xbfff3c03; ++ avila_latch_leds[0].name = "RXD"; ++ avila_latch_leds[1].name = "TXD"; ++ avila_latch_leds[2].name = "POL"; ++ avila_latch_leds[3].name = "LNK"; ++ avila_latch_leds[4].name = "ERR"; ++ avila_latch_leds_data.num_leds = 5; ++ avila_latch_leds_data.mem = 0x54000000; ++ platform_device_register(&avila_latch_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); ++ avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO; ++ platform_device_register(&avila_gpio_leds_device); ++ ++ *IXP4XX_EXP_CS1 |= 0xbfff3c03; ++ platform_device_register(&avila_latch_leds_device); } static struct avila_board_info avila_boards[] __initdata = { +--- a/include/asm-arm/arch-ixp4xx/avila.h ++++ b/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