summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--target/linux/ifxmips/patches-2.6.30/500-arv452.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/target/linux/ifxmips/patches-2.6.30/500-arv452.patch b/target/linux/ifxmips/patches-2.6.30/500-arv452.patch
new file mode 100644
index 0000000000..77dcb7a2e2
--- /dev/null
+++ b/target/linux/ifxmips/patches-2.6.30/500-arv452.patch
@@ -0,0 +1,79 @@
+Index: linux-2.6.30.10/arch/mips/ifxmips/board.c
+===================================================================
+--- linux-2.6.30.10.orig/arch/mips/ifxmips/board.c 2010-03-24 16:45:31.000000000 +0100
++++ linux-2.6.30.10/arch/mips/ifxmips/board.c 2010-03-24 16:53:18.000000000 +0100
+@@ -52,6 +52,7 @@
+ EASY50712,
+ EASY4010,
+ ARV4519,
++ ARV452,
+ };
+
+ extern int ifxmips_pci_external_clock;
+@@ -141,6 +142,15 @@
+ { .name = "ifx:green:usb", .gpio = 19, .active_low = 1, },
+ };
+
++static struct gpio_led arv452_gpio_leds[] = {
++ { .name = "ifx:blue:power", .gpio = 3, .active_low = 1, },
++ { .name = "ifx:blue:adsl", .gpio = 4, .active_low = 1, },
++ { .name = "ifx:pink:internet", .gpio = 5, .active_low = 1, },
++ { .name = "ifx:red:power", .gpio = 6, .active_low = 1, },
++ { .name = "ifx:yello:wps", .gpio = 7, .active_low = 1, },
++ { .name = "ifx:red:wps", .gpio = 9, .active_low = 1, },
++};
++
+ static struct gpio_led_platform_data ifxmips_gpio_led_data;
+
+ static struct platform_device ifxmips_gpio_leds = {
+@@ -192,6 +202,14 @@
+ #endif
+ };
+
++struct platform_device *arv542_devs[] = {
++ /*&ifxmips_gpio,*/ &ifxmips_mii, &ifxmips_mtd,
++ &ifxmips_gpio_dev, &ifxmips_wdt, &dwc_usb,
++#ifdef CONFIG_LEDS_GPIO
++ &ifxmips_gpio_leds,
++#endif
++};
++
+ static struct gpio_led easy50712_leds[] = {
+ { .name = "ifx:green:test0", .gpio = 0,},
+ { .name = "ifx:green:test1", .gpio = 1,},
+@@ -237,7 +255,20 @@
+ .devs = arv5419_devs,
+ .reset_resource = {.name = "reset", .start = 1, .end = 14},
+ .pci_external_clock = 1,
++#ifdef CONFIG_LEDS_GPIO
+ .gpio_leds = arv4519_gpio_leds,
++#endif
++ }, {
++ /* arcaydian annex-b board used by airties, arcor */
++ .type = ARV452,
++ .name = "ARV452",
++ .system_type = SYSTEM_DANUBE_CHIPID2,
++ .devs = arv542_devs,
++ .reset_resource = {.name = "reset", .start = 1, .end = 14},
++ .pci_external_clock = 1,
++#ifdef CONFIG_LEDS_GPIO
++ .gpio_leds = arv452_gpio_leds,
++#endif
+ },
+ };
+
+@@ -382,6 +413,14 @@
+ ifxmips_gpio_led_data.num_leds = ARRAY_SIZE(arv4519_gpio_leds);
+ #endif
+ break;
++ case ARV452:
++ /* set some sane defaults for the gpios */
++ board->num_devs = ARRAY_SIZE(arv542_devs);
++ ifxmips_w32(0x8001e7ff, IFXMIPS_EBU_BUSCON1);
++#ifdef CONFIG_LEDS_GPIO
++ ifxmips_gpio_led_data.num_leds = ARRAY_SIZE(arv452_gpio_leds);
++#endif
++ break;
+ }
+ #ifdef CONFIG_LEDS_GPIO
+ ifxmips_gpio_led_data.leds = board->gpio_leds;