]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/linux-3.10.10-arm_kirkwood_setups.patch
OpenVPN: Added 'valid til (days)' field for N2N.
[people/pmueller/ipfire-2.x.git] / src / patches / linux-3.10.10-arm_kirkwood_setups.patch
CommitLineData
74194478
AF
1diff -Naur linux-3.10.10.org/arch/arm/Kconfig linux-3.10.10/arch/arm/Kconfig
2--- linux-3.10.10.org/arch/arm/Kconfig 2013-08-29 18:47:51.000000000 +0200
3+++ linux-3.10.10/arch/arm/Kconfig 2013-09-02 19:37:01.000000000 +0200
4@@ -217,7 +217,7 @@
5
6 config ARM_PATCH_PHYS_VIRT
7 bool "Patch physical to virtual translations at runtime" if EMBEDDED
8- default y
9+ default n
10 depends on !XIP_KERNEL && MMU
11 depends on !ARCH_REALVIEW || !SPARSEMEM
12 help
13diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c
14--- linux-3.10.10.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100
15+++ linux-3.10.10/arch/arm/mach-kirkwood/dreamplug-setup.c 2013-09-02 21:29:28.000000000 +0200
16@@ -0,0 +1,151 @@
17+/*
18+ * arch/arm/mach-kirkwood/dreamplug-setup.c
19+ *
20+ * Marvell DreamPlug Reference Board Setup
21+ *
22+ * This file is licensed under the terms of the GNU General Public
23+ * License version 2. This program is licensed "as is" without any
24+ * warranty of any kind, whether express or implied.
25+ */
26+
27+#include <linux/kernel.h>
28+#include <linux/init.h>
29+#include <linux/platform_device.h>
30+#include <linux/mtd/mtd.h>
31+#include <linux/mtd/partitions.h>
32+#include <linux/ata_platform.h>
33+#include <linux/mv643xx_eth.h>
34+#include <linux/gpio.h>
35+#include <linux/leds.h>
36+#include <linux/spi/flash.h>
37+#include <linux/spi/spi.h>
38+#include <asm/mach-types.h>
39+#include <asm/mach/arch.h>
40+#include <mach/kirkwood.h>
41+#include <linux/platform_data/mmc-mvsdio.h>
42+#include "common.h"
43+#include "mpp.h"
44+
45+static const struct flash_platform_data dreamplug_spi_slave_data = {
46+ .type = "mx25l1606e",
47+};
48+
49+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
50+ {
51+ .modalias = "m25p80",
52+ .platform_data = &dreamplug_spi_slave_data,
53+ .irq = -1,
54+ .max_speed_hz = 50000000,
55+ .bus_num = 0,
56+ .chip_select = 0,
57+ },
58+};
59+
60+static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
61+ .phy_addr = MV643XX_ETH_PHY_ADDR(0),
62+};
63+
64+static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
65+ .phy_addr = MV643XX_ETH_PHY_ADDR(1),
66+};
67+
68+static struct mv_sata_platform_data dreamplug_sata_data = {
69+ .n_ports = 1,
70+};
71+
72+static struct mvsdio_platform_data dreamplug_mvsdio_data = {
73+ /* unfortunately the CD signal has not been connected */
74+};
75+
76+static struct gpio_led dreamplug_led_pins[] = {
77+ {
78+ .name = "dreamplug:blue:bluetooth",
79+ .gpio = 47,
80+ .active_low = 1,
81+ },
82+ {
83+ .name = "dreamplug:green:wlan",
84+ .gpio = 48,
85+ .active_low = 1,
86+ },
87+ {
88+ .name = "dreamplug:blue:wlanap",
89+ .gpio = 49,
90+ .active_low = 1,
91+ },
92+};
93+
94+static struct gpio_led_platform_data dreamplug_led_data = {
95+ .leds = dreamplug_led_pins,
96+ .num_leds = ARRAY_SIZE(dreamplug_led_pins),
97+};
98+
99+static struct platform_device dreamplug_leds = {
100+ .name = "leds-gpio",
101+ .id = -1,
102+ .dev = {
103+ .platform_data = &dreamplug_led_data,
104+ }
105+};
106+
107+static unsigned int dreamplug_mpp_config[] __initdata = {
108+ MPP0_SPI_SCn,
109+ MPP1_SPI_MOSI,
110+ MPP2_SPI_SCK,
111+ MPP3_SPI_MISO,
112+ MPP4_GPIO,
113+ MPP5_GPO,
114+ MPP7_GPO,
115+ MPP18_GPO,
116+ MPP19_GPO,
117+ MPP47_GPIO, /* B_BLED */
118+ MPP48_GPIO, /* W_GLED */
119+ MPP49_GPIO, /* W_BLED */
120+ 0
121+};
122+
123+static void __init dreamplug_legacy_init(void)
124+{
125+ /*
126+ * Basic setup. Needs to be called early.
127+ */
128+ kirkwood_init();
129+ kirkwood_mpp_conf(dreamplug_mpp_config);
130+
131+ kirkwood_uart0_init();
132+
133+ spi_register_board_info(dreamplug_spi_slave_info,
134+ ARRAY_SIZE(dreamplug_spi_slave_info));
135+
136+ kirkwood_spi_init();
137+ kirkwood_ehci_init();
138+
139+ kirkwood_ge00_init(&dreamplug_ge00_data);
140+ kirkwood_ge01_init(&dreamplug_ge01_data);
141+ kirkwood_sata_init(&dreamplug_sata_data);
142+ kirkwood_sdio_init(&dreamplug_mvsdio_data);
143+
144+ platform_device_register(&dreamplug_leds);
145+}
146+
147+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
148+ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
149+ .atag_offset = 0x100,
150+ .init_machine = dreamplug_legacy_init,
151+ .map_io = kirkwood_map_io,
152+ .init_early = kirkwood_init_early,
153+ .init_irq = kirkwood_init_irq,
154+ .init_time = kirkwood_timer_init,
155+ .restart = kirkwood_restart,
156+MACHINE_END
157+
158+MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board")
159+ .atag_offset = 0x100,
160+ .init_machine = dreamplug_legacy_init,
161+ .map_io = kirkwood_map_io,
162+ .init_early = kirkwood_init_early,
163+ .init_irq = kirkwood_init_irq,
164+ .init_time = kirkwood_timer_init,
165+ .restart = kirkwood_restart,
166+
167+MACHINE_END
168diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c
169--- linux-3.10.10.org/arch/arm/mach-kirkwood/guruplug-setup.c 2013-08-29 18:47:51.000000000 +0200
170+++ linux-3.10.10/arch/arm/mach-kirkwood/guruplug-setup.c 2013-09-02 19:37:02.000000000 +0200
171@@ -11,6 +11,7 @@
172 #include <linux/kernel.h>
173 #include <linux/init.h>
174 #include <linux/platform_device.h>
175+#include <linux/mtd/mtd.h>
176 #include <linux/mtd/partitions.h>
177 #include <linux/ata_platform.h>
178 #include <linux/mv643xx_eth.h>
179@@ -27,15 +28,16 @@
180 {
181 .name = "u-boot",
182 .offset = 0,
183- .size = SZ_1M
184+ .size = SZ_1M,
185+ .mask_flags = MTD_WRITEABLE, /* read only */
186 }, {
187 .name = "uImage",
188 .offset = MTDPART_OFS_NXTBLK,
189- .size = SZ_4M
190+ .size = SZ_4M,
191 }, {
192 .name = "root",
193 .offset = MTDPART_OFS_NXTBLK,
194- .size = MTDPART_SIZ_FULL
195+ .size = MTDPART_SIZ_FULL,
196 },
197 };
198
199diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c
200--- linux-3.10.10.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100
201+++ linux-3.10.10/arch/arm/mach-kirkwood/iconnect-setup.c 2013-09-02 21:31:09.000000000 +0200
202@@ -0,0 +1,214 @@
203+/*
204+ * arch/arm/mach-kirkwood/iconnect-setup.c
205+ *
206+ * Iomega iConnect Wireless Data Station Board Setup
207+ *
208+ * This file is licensed under the terms of the GNU General Public
209+ * License version 2. This program is licensed "as is" without any
210+ * warranty of any kind, whether express or implied.
211+ */
212+
213+#include <linux/kernel.h>
214+#include <linux/init.h>
215+#include <linux/platform_device.h>
216+#include <linux/mtd/mtd.h>
217+#include <linux/mtd/partitions.h>
218+#include <linux/ata_platform.h>
219+#include <linux/mv643xx_eth.h>
220+#include <linux/gpio.h>
221+#include <linux/gpio_keys.h>
222+#include <linux/i2c.h>
223+#include <linux/input.h>
224+#include <linux/leds.h>
225+#include <asm/mach-types.h>
226+#include <asm/mach/arch.h>
227+#include <mach/kirkwood.h>
228+#include "common.h"
229+#include "mpp.h"
230+
231+static struct mtd_partition iconnect_nand_parts[] = {
232+ {
233+ .name = "u-boot",
234+ .offset = 0,
235+ .size = SZ_1M,
236+ .mask_flags = MTD_WRITEABLE, /* read only */
237+ }, {
238+ .name = "uImage",
239+ .offset = MTDPART_OFS_NXTBLK,
240+ .size = 0x440000,
241+ }, {
242+ .name = "uInit",
243+ .offset = MTDPART_OFS_NXTBLK,
244+ .size = 0x440000,
245+ }, {
246+ .name = "root",
247+ .offset = MTDPART_OFS_NXTBLK,
248+ .size = MTDPART_SIZ_FULL,
249+ },
250+};
251+
252+static struct mv643xx_eth_platform_data iconnect_ge00_data = {
253+ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB),
254+};
255+
256+static struct gpio_led iconnect_led_pins[] = {
257+ {
258+ .name = "iconnect:led_level",
259+ .default_trigger = "default-on",
260+ .gpio = 41,
261+ .active_low = 0,
262+ },
263+
264+ {
265+ .name = "iconnect:blue:power",
266+ .default_trigger = "default-on",
267+ .gpio = 42,
268+ .active_low = 0,
269+ },
270+ {
271+ .name = "iconnect:red:power",
272+ .default_trigger = "none",
273+ .gpio = 43,
274+ .active_low = 0,
275+ },
276+ {
277+ .name = "iconnect:blue:usb_1",
278+ .default_trigger = "none",
279+ .gpio = 44,
280+ .active_low = 0,
281+ },
282+ {
283+ .name = "iconnect:blue:usb_2",
284+ .default_trigger = "none",
285+ .gpio = 45,
286+ .active_low = 0,
287+ },
288+ {
289+ .name = "iconnect:blue:usb_3",
290+ .default_trigger = "none",
291+ .gpio = 46,
292+ .active_low = 0,
293+ },
294+ {
295+ .name = "iconnect:blue:usb_4",
296+ .default_trigger = "none",
297+ .gpio = 47,
298+ .active_low = 0,
299+ },
300+ {
301+ .name = "iconnect:blue:otb",
302+ .default_trigger = "none",
303+ .gpio = 48,
304+ .active_low = 0,
305+ },
306+};
307+
308+static struct gpio_led_platform_data iconnect_led_data = {
309+ .leds = iconnect_led_pins,
310+ .num_leds = ARRAY_SIZE(iconnect_led_pins),
311+};
312+
313+static struct platform_device iconnect_leds = {
314+ .name = "leds-gpio",
315+ .id = -1,
316+ .dev = {
317+ .platform_data = &iconnect_led_data,
318+ }
319+};
320+
321+static struct gpio_keys_button iconnect_buttons[] = {
322+ {
323+ .code = KEY_COPY,
324+ .gpio = 35,
325+ .desc = "OTB Button",
326+ .active_low = 1,
327+ },
328+ {
329+ .code = KEY_RESTART,
330+ .gpio = 12,
331+ .desc = "Reset",
332+ .active_low = 1,
333+ },
334+};
335+
336+static struct gpio_keys_platform_data iconnect_button_data = {
337+ .buttons = iconnect_buttons,
338+ .nbuttons = ARRAY_SIZE(iconnect_buttons),
339+};
340+
341+static struct platform_device iconnect_button_device = {
342+ .name = "gpio-keys",
343+ .id = -1,
344+ .num_resources = 0,
345+ .dev = {
346+ .platform_data = &iconnect_button_data,
347+ }
348+};
349+
350+static unsigned int iconnect_mpp_config[] __initdata = {
351+ MPP0_NF_IO2,
352+ MPP1_NF_IO3,
353+ MPP2_NF_IO4,
354+ MPP3_NF_IO5,
355+ MPP4_NF_IO6,
356+ MPP5_NF_IO7,
357+ MPP18_NF_IO0,
358+ MPP19_NF_IO1,
359+ MPP12_GPIO, /* Reset Button */
360+ MPP35_GPIO, /* OTB Button */
361+
362+ MPP41_GPIO, /* LED Level */
363+ MPP42_GPIO, /* Power LED blue */
364+ MPP43_GPIO, /* Power LED red */
365+ MPP44_GPIO, /* USB LED 1 */
366+ MPP45_GPIO, /* USB LED 2 */
367+ MPP46_GPIO, /* USB LED 3 */
368+ MPP47_GPIO, /* USB LED 4 */
369+ MPP48_GPIO, /* OTB LED */
370+ 0
371+};
372+
373+static struct i2c_board_info __initdata iconnect_i2c = {
374+ I2C_BOARD_INFO("lm63", 0x4c),
375+};
376+
377+static void __init iconnect_legacy_init(void)
378+{
379+ /*
380+ * Basic setup. Needs to be called early.
381+ */
382+ kirkwood_init();
383+ kirkwood_mpp_conf(iconnect_mpp_config);
384+
385+ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
386+ kirkwood_ehci_init();
387+ kirkwood_ge00_init(&iconnect_ge00_data);
388+
389+ kirkwood_uart0_init();
390+ platform_device_register(&iconnect_leds);
391+ platform_device_register(&iconnect_button_device);
392+
393+ kirkwood_i2c_init();
394+ i2c_register_board_info(0, &iconnect_i2c,1);
395+}
396+
397+static int __init iconnect_pci_init(void)
398+{
399+ if (machine_is_iconnect()) {
400+ kirkwood_pcie_init(KW_PCIE0);
401+ }
402+ return 0;
403+}
404+subsys_initcall(iconnect_pci_init);
405+
406+MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
407+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
408+ .atag_offset = 0x100,
409+ .init_machine = iconnect_legacy_init,
410+ .map_io = kirkwood_map_io,
411+ .init_early = kirkwood_init_early,
412+ .init_irq = kirkwood_init_irq,
413+ .init_time = kirkwood_timer_init,
414+ .restart = kirkwood_restart,
415+
416+MACHINE_END
417diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig linux-3.10.10/arch/arm/mach-kirkwood/Kconfig
418--- linux-3.10.10.org/arch/arm/mach-kirkwood/Kconfig 2013-08-29 18:47:51.000000000 +0200
419+++ linux-3.10.10/arch/arm/mach-kirkwood/Kconfig 2013-09-02 19:37:02.000000000 +0200
420@@ -116,6 +116,12 @@
421 Say 'Y' here if you want your kernel to support the
422 HP t5325 Thin Client.
423
424+config MACH_DREAMPLUG
425+ bool "Marvell DreamPlug Reference Board"
426+ help
427+ Say 'Y' here if you want your kernel to support the
428+ Marvell DreamPlug Reference Board.
429+
430 config MACH_TS219
431 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
432 help
433@@ -317,6 +323,18 @@
434 or MV6282. If you have the wrong one, the buttons will not
435 work.
436
437+config MACH_ICONNECT
438+ bool "Iomega iConnect Wireless Data Station"
439+ help
440+ Say 'Y' here if you want your kernel to support the
441+ Iomega iConnect Wireless Data Station.
442+
443+config MACH_NAS6210
444+ bool "Raidsonic ICY BOX IB-62x0"
445+ help
446+ Say 'Y' here if you want your kernel to support the
447+ Raidsonic ICY BOX IB-62x0.
448+
449 endmenu
450
451 endif
452diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile linux-3.10.10/arch/arm/mach-kirkwood/Makefile
453--- linux-3.10.10.org/arch/arm/mach-kirkwood/Makefile 2013-08-29 18:47:51.000000000 +0200
454+++ linux-3.10.10/arch/arm/mach-kirkwood/Makefile 2013-09-02 19:50:19.000000000 +0200
455@@ -5,6 +5,7 @@
456 obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
457 obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
458 obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
459+obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o
460 obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
461 obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
462 obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
463@@ -18,6 +19,8 @@
464 obj-$(CONFIG_MACH_T5325) += t5325-setup.o
465 obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
466 obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
467+obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o
468+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o
469
470 obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
471 obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o
472diff -Naur linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c
473--- linux-3.10.10.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
474+++ linux-3.10.10/arch/arm/mach-kirkwood/nas6210-setup.c 2013-09-02 21:32:36.000000000 +0200
475@@ -0,0 +1,185 @@
476+/*
477+ * arch/arm/mach-kirkwood/nas6210-setup.c
478+ *
479+ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
480+ *
481+ * This file is licensed under the terms of the GNU General Public
482+ * License version 2. This program is licensed "as is" without any
483+ * warranty of any kind, whether express or implied.
484+ */
485+
486+#include <linux/kernel.h>
487+#include <linux/init.h>
488+#include <linux/platform_device.h>
489+#include <linux/mtd/mtd.h>
490+#include <linux/mtd/partitions.h>
491+#include <linux/ata_platform.h>
492+#include <linux/mv643xx_eth.h>
493+#include <linux/gpio.h>
494+#include <linux/gpio_keys.h>
495+#include <linux/i2c.h>
496+#include <linux/input.h>
497+#include <linux/leds.h>
498+#include <asm/mach-types.h>
499+#include <asm/mach/arch.h>
500+#include <mach/kirkwood.h>
501+#include "common.h"
502+#include "mpp.h"
503+
504+#define NAS6210_GPIO_POWER_OFF 24
505+
506+static struct mtd_partition nas6210_nand_parts[] = {
507+ {
508+ .name = "u-boot",
509+ .offset = 0,
510+ .size = SZ_1M,
511+ .mask_flags = MTD_WRITEABLE, /* read only */
512+ }, {
513+ .name = "uImage",
514+ .offset = MTDPART_OFS_NXTBLK,
515+ .size = (SZ_1M*6),
516+ }, {
517+ .name = "root",
518+ .offset = MTDPART_OFS_NXTBLK,
519+ .size = MTDPART_SIZ_FULL,
520+ },
521+};
522+
523+static struct mv643xx_eth_platform_data nas6210_ge00_data = {
524+ .phy_addr = MV643XX_ETH_PHY_ADDR(8),
525+};
526+
527+static struct mv_sata_platform_data nas6210_sata_data = {
528+ .n_ports = 2,
529+};
530+
531+static struct gpio_led nas6210_led_pins[] = {
532+ {
533+ .name = "nas6210:green:power",
534+ .default_trigger = "default-on",
535+ .gpio = 25,
536+ .active_low = 0,
537+ },
538+ {
539+ .name = "nas6210:red:power",
540+ .default_trigger = "none",
541+ .gpio = 22,
542+ .active_low = 0,
543+ },
544+ {
545+ .name = "nas6210:red:usb_copy",
546+ .default_trigger = "none",
547+ .gpio = 27,
548+ .active_low = 0,
549+ },
550+};
551+
552+static struct gpio_led_platform_data nas6210_led_data = {
553+ .leds = nas6210_led_pins,
554+ .num_leds = ARRAY_SIZE(nas6210_led_pins),
555+};
556+
557+static struct platform_device nas6210_leds = {
558+ .name = "leds-gpio",
559+ .id = -1,
560+ .dev = {
561+ .platform_data = &nas6210_led_data,
562+ }
563+};
564+
565+static struct gpio_keys_button nas6210_buttons[] = {
566+ {
567+ .code = KEY_COPY,
568+ .gpio = 29,
569+ .desc = "USB Copy",
570+ .active_low = 1,
571+ },
572+ {
573+ .code = KEY_RESTART,
574+ .gpio = 28,
575+ .desc = "Reset",
576+ .active_low = 1,
577+ },
578+};
579+
580+static struct gpio_keys_platform_data nas6210_button_data = {
581+ .buttons = nas6210_buttons,
582+ .nbuttons = ARRAY_SIZE(nas6210_buttons),
583+};
584+
585+static struct platform_device nas6210_button_device = {
586+ .name = "gpio-keys",
587+ .id = -1,
588+ .num_resources = 0,
589+ .dev = {
590+ .platform_data = &nas6210_button_data,
591+ }
592+};
593+
594+static unsigned int nas6210_mpp_config[] __initdata = {
595+ MPP0_NF_IO2,
596+ MPP1_NF_IO3,
597+ MPP2_NF_IO4,
598+ MPP3_NF_IO5,
599+ MPP4_NF_IO6,
600+ MPP5_NF_IO7,
601+ MPP18_NF_IO0,
602+ MPP19_NF_IO1,
603+ MPP22_GPIO, /* Power LED red */
604+ MPP24_GPIO, /* Power off */
605+ MPP25_GPIO, /* Power LED green */
606+ MPP27_GPIO, /* USB transfer LED */
607+ MPP28_GPIO, /* Reset button */
608+ MPP29_GPIO, /* USB Copy button */
609+ 0
610+};
611+
612+void nas6210_power_off(void)
613+{
614+ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
615+ while(1);
616+}
617+
618+static void __init nas6210_init(void)
619+{
620+ /*
621+ * Basic setup. Needs to be called early.
622+ */
623+ kirkwood_init();
624+ kirkwood_mpp_conf(nas6210_mpp_config);
625+
626+ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
627+ kirkwood_ehci_init();
628+ kirkwood_ge00_init(&nas6210_ge00_data);
629+ kirkwood_sata_init(&nas6210_sata_data);
630+ kirkwood_uart0_init();
631+ platform_device_register(&nas6210_leds);
632+ platform_device_register(&nas6210_button_device);
633+
634+ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
635+ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
636+ pm_power_off = nas6210_power_off;
637+
638+ else
639+ pr_err("nas6210: failed to configure power-off gpio pin");
640+}
641+
642+static int __init nas6210_pci_init(void)
643+{
644+ if (machine_is_nas6210()) {
645+ kirkwood_pcie_init(KW_PCIE0);
646+ }
647+ return 0;
648+}
649+subsys_initcall(nas6210_pci_init);
650+
651+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
652+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
653+ .atag_offset = 0x00000100,
654+ .init_machine = nas6210_init,
655+ .map_io = kirkwood_map_io,
656+ .init_early = kirkwood_init_early,
657+ .init_irq = kirkwood_init_irq,
658+ .init_time = kirkwood_timer_init,
659+ .restart = kirkwood_restart,
660+MACHINE_END
661diff -Naur linux-3.10.10.org/arch/arm/tools/mach-types linux-3.10.10/arch/arm/tools/mach-types
662--- linux-3.10.10.org/arch/arm/tools/mach-types 2013-08-29 18:47:51.000000000 +0200
663+++ linux-3.10.10/arch/arm/tools/mach-types 2013-09-02 22:06:34.000000000 +0200
664@@ -447,6 +447,7 @@
665 smartq5 MACH_SMARTQ5 SMARTQ5 2534
666 davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548
667 mxt_td60 MACH_MXT_TD60 MXT_TD60 2550
668+guruplug MACH_GURUPLUG GURUPLUG 2601
669 capc7117 MACH_CAPC7117 CAPC7117 2612
670 icontrol MACH_ICONTROL ICONTROL 2624
671 gplugd MACH_GPLUGD GPLUGD 2625
672@@ -454,7 +455,7 @@
673 mx23evk MACH_MX23EVK MX23EVK 2629
674 ap4evb MACH_AP4EVB AP4EVB 2630
675 mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650
676-guruplug MACH_GURUPLUG GURUPLUG 2659
677+dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659
678 spear310 MACH_SPEAR310 SPEAR310 2660
679 spear320 MACH_SPEAR320 SPEAR320 2661
680 aquila MACH_AQUILA AQUILA 2676
681@@ -491,6 +492,7 @@
682 t5325 MACH_T5325 T5325 2846
683 income MACH_INCOME INCOME 2849
684 goni MACH_GONI GONI 2862
685+iconnect MACH_ICONNECT ICONNECT 2870
686 bv07 MACH_BV07 BV07 2882
687 openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884
688 devixp MACH_DEVIXP DEVIXP 2885
689@@ -520,6 +522,7 @@
690 vpr200 MACH_VPR200 VPR200 3087
691 torbreck MACH_TORBRECK TORBRECK 3090
692 prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103
693+nas6210 MACH_NAS6210 NAS6210 3104
694 paz00 MACH_PAZ00 PAZ00 3128
695 acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129
696 ag5evm MACH_AG5EVM AG5EVM 3189
697@@ -544,6 +547,7 @@
698 nspire MACH_NSPIRE NSPIRE 3503
699 nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522
700 mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543
701+dreamplug MACH_DREAMPLUG DREAMPLUG 3550
702 deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568
703 m28evk MACH_M28EVK M28EVK 3613
704 kota2 MACH_KOTA2 KOTA2 3616