1 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c
2 --- linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100
3 +++ linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c 2012-08-05 19:04:12.000000000 +0200
6 + * arch/arm/mach-kirkwood/dreamplug-setup.c
8 + * Marvell DreamPlug Reference Board Setup
10 + * This file is licensed under the terms of the GNU General Public
11 + * License version 2. This program is licensed "as is" without any
12 + * warranty of any kind, whether express or implied.
15 +#include <linux/kernel.h>
16 +#include <linux/init.h>
17 +#include <linux/platform_device.h>
18 +#include <linux/mtd/partitions.h>
19 +#include <linux/ata_platform.h>
20 +#include <linux/mv643xx_eth.h>
21 +#include <linux/gpio.h>
22 +#include <linux/leds.h>
23 +#include <linux/spi/flash.h>
24 +#include <linux/spi/spi.h>
25 +#include <linux/spi/orion_spi.h>
26 +#include <asm/mach-types.h>
27 +#include <asm/mach/arch.h>
28 +#include <mach/kirkwood.h>
29 +#include <plat/mvsdio.h>
33 +static const struct flash_platform_data dreamplug_spi_slave_data = {
34 + .type = "mx25l1606e",
37 +static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
39 + .modalias = "m25p80",
40 + .platform_data = &dreamplug_spi_slave_data,
42 + .max_speed_hz = 50000000,
48 +static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
49 + .phy_addr = MV643XX_ETH_PHY_ADDR(0),
52 +static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
53 + .phy_addr = MV643XX_ETH_PHY_ADDR(1),
56 +static struct mv_sata_platform_data dreamplug_sata_data = {
60 +static struct mvsdio_platform_data dreamplug_mvsdio_data = {
61 + /* unfortunately the CD signal has not been connected */
64 +static struct gpio_led dreamplug_led_pins[] = {
66 + .name = "dreamplug:blue:bluetooth",
71 + .name = "dreamplug:green:wlan",
76 + .name = "dreamplug:blue:wlanap",
82 +static struct gpio_led_platform_data dreamplug_led_data = {
83 + .leds = dreamplug_led_pins,
84 + .num_leds = ARRAY_SIZE(dreamplug_led_pins),
87 +static struct platform_device dreamplug_leds = {
88 + .name = "leds-gpio",
91 + .platform_data = &dreamplug_led_data,
95 +static unsigned int dreamplug_mpp_config[] __initdata = {
105 + MPP47_GPIO, /* B_BLED */
106 + MPP48_GPIO, /* W_GLED */
107 + MPP49_GPIO, /* W_BLED */
111 +static void __init dreamplug_init(void)
114 + * Basic setup. Needs to be called early.
117 + kirkwood_mpp_conf(dreamplug_mpp_config);
119 + kirkwood_uart0_init();
121 + spi_register_board_info(dreamplug_spi_slave_info,
122 + ARRAY_SIZE(dreamplug_spi_slave_info));
124 + kirkwood_spi_init();
125 + kirkwood_ehci_init();
127 + kirkwood_ge00_init(&dreamplug_ge00_data);
128 + kirkwood_ge01_init(&dreamplug_ge01_data);
129 + kirkwood_sata_init(&dreamplug_sata_data);
130 + kirkwood_sdio_init(&dreamplug_mvsdio_data);
132 + platform_device_register(&dreamplug_leds);
135 +MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
136 + /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
137 + .atag_offset = 0x100,
138 + .init_machine = dreamplug_init,
139 + .map_io = kirkwood_map_io,
140 + .init_early = kirkwood_init_early,
141 + .init_irq = kirkwood_init_irq,
142 + .timer = &kirkwood_timer,
144 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c
145 --- linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c 2012-08-02 15:38:04.000000000 +0200
146 +++ linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c 2012-08-05 19:05:22.000000000 +0200
148 #include <linux/kernel.h>
149 #include <linux/init.h>
150 #include <linux/platform_device.h>
151 +#include <linux/mtd/mtd.h>
152 #include <linux/mtd/partitions.h>
153 #include <linux/ata_platform.h>
154 #include <linux/mv643xx_eth.h>
161 + .mask_flags = MTD_WRITEABLE, /* read only */
164 .offset = MTDPART_OFS_NXTBLK,
169 .offset = MTDPART_OFS_NXTBLK,
170 - .size = MTDPART_SIZ_FULL
171 + .size = MTDPART_SIZ_FULL,
175 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c
176 --- linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100
177 +++ linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c 2012-08-05 19:06:06.000000000 +0200
180 + * arch/arm/mach-kirkwood/iconnect-setup.c
182 + * Iomega iConnect Wireless Data Station Board Setup
184 + * This file is licensed under the terms of the GNU General Public
185 + * License version 2. This program is licensed "as is" without any
186 + * warranty of any kind, whether express or implied.
189 +#include <linux/kernel.h>
190 +#include <linux/init.h>
191 +#include <linux/platform_device.h>
192 +#include <linux/mtd/mtd.h>
193 +#include <linux/mtd/partitions.h>
194 +#include <linux/ata_platform.h>
195 +#include <linux/mv643xx_eth.h>
196 +#include <linux/gpio.h>
197 +#include <linux/gpio_keys.h>
198 +#include <linux/i2c.h>
199 +#include <linux/input.h>
200 +#include <linux/leds.h>
201 +#include <asm/mach-types.h>
202 +#include <asm/mach/arch.h>
203 +#include <mach/kirkwood.h>
207 +static struct mtd_partition iconnect_nand_parts[] = {
212 + .mask_flags = MTD_WRITEABLE, /* read only */
215 + .offset = MTDPART_OFS_NXTBLK,
219 + .offset = MTDPART_OFS_NXTBLK,
223 + .offset = MTDPART_OFS_NXTBLK,
224 + .size = MTDPART_SIZ_FULL,
228 +static struct mv643xx_eth_platform_data iconnect_ge00_data = {
229 + .phy_addr = MV643XX_ETH_PHY_ADDR(0xB),
232 +static struct gpio_led iconnect_led_pins[] = {
234 + .name = "iconnect:led_level",
235 + .default_trigger = "default-on",
241 + .name = "iconnect:blue:power",
242 + .default_trigger = "default-on",
247 + .name = "iconnect:red:power",
248 + .default_trigger = "none",
253 + .name = "iconnect:blue:usb_1",
254 + .default_trigger = "none",
259 + .name = "iconnect:blue:usb_2",
260 + .default_trigger = "none",
265 + .name = "iconnect:blue:usb_3",
266 + .default_trigger = "none",
271 + .name = "iconnect:blue:usb_4",
272 + .default_trigger = "none",
277 + .name = "iconnect:blue:otb",
278 + .default_trigger = "none",
284 +static struct gpio_led_platform_data iconnect_led_data = {
285 + .leds = iconnect_led_pins,
286 + .num_leds = ARRAY_SIZE(iconnect_led_pins),
289 +static struct platform_device iconnect_leds = {
290 + .name = "leds-gpio",
293 + .platform_data = &iconnect_led_data,
297 +static struct gpio_keys_button iconnect_buttons[] = {
301 + .desc = "OTB Button",
305 + .code = KEY_RESTART,
312 +static struct gpio_keys_platform_data iconnect_button_data = {
313 + .buttons = iconnect_buttons,
314 + .nbuttons = ARRAY_SIZE(iconnect_buttons),
317 +static struct platform_device iconnect_button_device = {
318 + .name = "gpio-keys",
320 + .num_resources = 0,
322 + .platform_data = &iconnect_button_data,
326 +static unsigned int iconnect_mpp_config[] __initdata = {
335 + MPP12_GPIO, /* Reset Button */
336 + MPP35_GPIO, /* OTB Button */
338 + MPP41_GPIO, /* LED Level */
339 + MPP42_GPIO, /* Power LED blue */
340 + MPP43_GPIO, /* Power LED red */
341 + MPP44_GPIO, /* USB LED 1 */
342 + MPP45_GPIO, /* USB LED 2 */
343 + MPP46_GPIO, /* USB LED 3 */
344 + MPP47_GPIO, /* USB LED 4 */
345 + MPP48_GPIO, /* OTB LED */
349 +static struct i2c_board_info __initdata iconnect_i2c = {
350 + I2C_BOARD_INFO("lm63", 0x4c),
353 +static void __init iconnect_init(void)
356 + * Basic setup. Needs to be called early.
359 + kirkwood_mpp_conf(iconnect_mpp_config);
361 + kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
362 + kirkwood_ehci_init();
363 + kirkwood_ge00_init(&iconnect_ge00_data);
365 + kirkwood_uart0_init();
366 + platform_device_register(&iconnect_leds);
367 + platform_device_register(&iconnect_button_device);
369 + kirkwood_i2c_init();
370 + i2c_register_board_info(0, &iconnect_i2c,1);
373 +static int __init iconnect_pci_init(void)
375 + if (machine_is_iconnect()) {
376 + kirkwood_pcie_init(KW_PCIE0);
380 +subsys_initcall(iconnect_pci_init);
382 +MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
383 + /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
384 + .atag_offset = 0x100,
385 + .init_machine = iconnect_init,
386 + .map_io = kirkwood_map_io,
387 + .init_early = kirkwood_init_early,
388 + .init_irq = kirkwood_init_irq,
389 + .timer = &kirkwood_timer,
391 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig linux-3.2.25/arch/arm/mach-kirkwood/Kconfig
392 --- linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig 2012-08-02 15:38:04.000000000 +0200
393 +++ linux-3.2.25/arch/arm/mach-kirkwood/Kconfig 2012-08-05 18:45:22.015253501 +0200
395 Say 'Y' here if you want your kernel to support the
396 Marvell GuruPlug Reference Board.
398 +config MACH_DREAMPLUG
399 + bool "Marvell DreamPlug Reference Board"
401 + Say 'Y' here if you want your kernel to support the
402 + Marvell DreamPlug Reference Board.
405 bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
408 Say 'Y' here if you want your kernel to support the
409 HP t5325 Thin Client.
411 +config MACH_ICONNECT
412 + bool "Iomega iConnect Wireless Data Station"
414 + Say 'Y' here if you want your kernel to support the
415 + Iomega iConnect Wireless Data Station.
418 + bool "Raidsonic ICY BOX IB-62x0"
420 + Say 'Y' here if you want your kernel to support the
421 + Raidsonic ICY BOX IB-62x0.
426 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile linux-3.2.25/arch/arm/mach-kirkwood/Makefile
427 --- linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile 2012-08-02 15:38:04.000000000 +0200
428 +++ linux-3.2.25/arch/arm/mach-kirkwood/Makefile 2012-08-05 18:46:49.015253501 +0200
430 obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
431 obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
432 obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
433 +obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o
434 obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
435 obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
436 obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
438 obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
439 obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
440 obj-$(CONFIG_MACH_T5325) += t5325-setup.o
441 +obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o
442 +obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o
444 obj-$(CONFIG_CPU_IDLE) += cpuidle.o
445 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h linux-3.2.25/arch/arm/mach-kirkwood/mpp.h
446 --- linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h 2012-08-02 15:38:04.000000000 +0200
447 +++ linux-3.2.25/arch/arm/mach-kirkwood/mpp.h 2012-08-05 19:08:23.835566001 +0200
449 #define MPP11_SATA0_ACTn MPP( 11, 0x5, 0, 0, 0, 1, 1, 1, 1 )
451 #define MPP12_GPO MPP( 12, 0x0, 0, 1, 1, 1, 1, 1, 1 )
452 +#define MPP12_GPIO MPP( 12, 0x0, 1, 1, 1, 1, 1, 1, 1 )
453 #define MPP12_SD_CLK MPP( 12, 0x1, 0, 0, 1, 1, 1, 1, 1 )
454 #define MPP12_AU_SPDIF0 MPP( 12, 0xa, 0, 0, 0, 0, 0, 0, 1 )
455 #define MPP12_SPI_MOSI MPP( 12, 0xb, 0, 0, 0, 0, 0, 0, 1 )
456 diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c
457 --- linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
458 +++ linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c 2012-08-05 19:06:40.000000000 +0200
461 + * arch/arm/mach-kirkwood/nas6210-setup.c
463 + * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
465 + * This file is licensed under the terms of the GNU General Public
466 + * License version 2. This program is licensed "as is" without any
467 + * warranty of any kind, whether express or implied.
470 +#include <linux/kernel.h>
471 +#include <linux/init.h>
472 +#include <linux/platform_device.h>
473 +#include <linux/mtd/mtd.h>
474 +#include <linux/mtd/partitions.h>
475 +#include <linux/ata_platform.h>
476 +#include <linux/mv643xx_eth.h>
477 +#include <linux/gpio.h>
478 +#include <linux/gpio_keys.h>
479 +#include <linux/i2c.h>
480 +#include <linux/input.h>
481 +#include <linux/leds.h>
482 +#include <asm/mach-types.h>
483 +#include <asm/mach/arch.h>
484 +#include <mach/kirkwood.h>
488 +#define NAS6210_GPIO_POWER_OFF 24
490 +static struct mtd_partition nas6210_nand_parts[] = {
495 + .mask_flags = MTD_WRITEABLE, /* read only */
498 + .offset = MTDPART_OFS_NXTBLK,
502 + .offset = MTDPART_OFS_NXTBLK,
503 + .size = MTDPART_SIZ_FULL,
507 +static struct mv643xx_eth_platform_data nas6210_ge00_data = {
508 + .phy_addr = MV643XX_ETH_PHY_ADDR(8),
511 +static struct mv_sata_platform_data nas6210_sata_data = {
515 +static struct gpio_led nas6210_led_pins[] = {
517 + .name = "nas6210:green:power",
518 + .default_trigger = "default-on",
523 + .name = "nas6210:red:power",
524 + .default_trigger = "none",
529 + .name = "nas6210:red:usb_copy",
530 + .default_trigger = "none",
536 +static struct gpio_led_platform_data nas6210_led_data = {
537 + .leds = nas6210_led_pins,
538 + .num_leds = ARRAY_SIZE(nas6210_led_pins),
541 +static struct platform_device nas6210_leds = {
542 + .name = "leds-gpio",
545 + .platform_data = &nas6210_led_data,
549 +static struct gpio_keys_button nas6210_buttons[] = {
553 + .desc = "USB Copy",
557 + .code = KEY_RESTART,
564 +static struct gpio_keys_platform_data nas6210_button_data = {
565 + .buttons = nas6210_buttons,
566 + .nbuttons = ARRAY_SIZE(nas6210_buttons),
569 +static struct platform_device nas6210_button_device = {
570 + .name = "gpio-keys",
572 + .num_resources = 0,
574 + .platform_data = &nas6210_button_data,
578 +static unsigned int nas6210_mpp_config[] __initdata = {
587 + MPP22_GPIO, /* Power LED red */
588 + MPP24_GPIO, /* Power off */
589 + MPP25_GPIO, /* Power LED green */
590 + MPP27_GPIO, /* USB transfer LED */
591 + MPP28_GPIO, /* Reset button */
592 + MPP29_GPIO, /* USB Copy button */
596 +void nas6210_power_off(void)
598 + gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
602 +static void __init nas6210_init(void)
605 + * Basic setup. Needs to be called early.
608 + kirkwood_mpp_conf(nas6210_mpp_config);
610 + kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
611 + kirkwood_ehci_init();
612 + kirkwood_ge00_init(&nas6210_ge00_data);
613 + kirkwood_sata_init(&nas6210_sata_data);
614 + kirkwood_uart0_init();
615 + platform_device_register(&nas6210_leds);
616 + platform_device_register(&nas6210_button_device);
618 + if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
619 + gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
620 + pm_power_off = nas6210_power_off;
623 + pr_err("nas6210: failed to configure power-off gpio pin");
626 +static int __init nas6210_pci_init(void)
628 + if (machine_is_nas6210()) {
629 + kirkwood_pcie_init(KW_PCIE0);
633 +subsys_initcall(nas6210_pci_init);
635 +MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
636 + /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
637 + .atag_offset = 0x00000100,
638 + .init_machine = nas6210_init,
639 + .map_io = kirkwood_map_io,
640 + .init_early = kirkwood_init_early,
641 + .init_irq = kirkwood_init_irq,
642 + .timer = &kirkwood_timer,
644 diff -Naur linux-3.2.25.org/arch/arm/tools/mach-types linux-3.2.25/arch/arm/tools/mach-types
645 --- linux-3.2.25.org/arch/arm/tools/mach-types 2012-08-02 15:38:04.000000000 +0200
646 +++ linux-3.2.25/arch/arm/tools/mach-types 2012-08-05 18:39:17.218378501 +0200
648 mx23evk MACH_MX23EVK MX23EVK 2629
649 ap4evb MACH_AP4EVB AP4EVB 2630
650 mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650
651 -guruplug MACH_GURUPLUG GURUPLUG 2659
652 +dreamplug MACH_DREAMPLUG DREAMPLUG 2659
653 spear310 MACH_SPEAR310 SPEAR310 2660
654 -spear320 MACH_SPEAR320 SPEAR320 2661
655 +guruplug MACH_GURUPLUG GURUPLUG 2661
656 aquila MACH_AQUILA AQUILA 2676
657 sheeva_esata MACH_ESATA_SHEEVAPLUG ESATA_SHEEVAPLUG 2678
658 msm7x30_surf MACH_MSM7X30_SURF MSM7X30_SURF 2679