summaryrefslogtreecommitdiffstats
path: root/target/linux/ifxmips/patches-2.6.30/500-arv452.patch
blob: 3ceeb2ca5ef4fa8ceafe704df4c773bafa589214 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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 17:16:53.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 *arv452_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 = arv452_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(arv452_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;