]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/linux-3.10.10-arm_kirkwood_setups.patch
asterisk addon: update to 11.13.1
[people/pmueller/ipfire-2.x.git] / src / patches / linux-3.10.10-arm_kirkwood_setups.patch
1 diff -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
13 diff -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
168 diff -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
199 diff -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
417 diff -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
452 diff -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
472 diff -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
661 diff -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