-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/db88f6281-bp-setup.c linux-3.14.22/arch/arm/mach-kirkwood/db88f6281-bp-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/db88f6281-bp-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/db88f6281-bp-setup.c 2014-11-05 22:07:58.828714499 +0100
-@@ -0,0 +1,108 @@
-+/*
-+ * arch/arm/mach-kirkwood/db88f6281-bp-setup.c
-+ *
-+ * Marvell DB-88F6281-BP Development Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/sizes.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <linux/platform_data/mmc-mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition db88f6281_nand_parts[] = {
-+ {
-+ .name = "u-boot",
-+ .offset = 0,
-+ .size = SZ_1M
-+ }, {
-+ .name = "uImage",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = SZ_4M
-+ }, {
-+ .name = "root",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = MTDPART_SIZ_FULL
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data db88f6281_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(8),
-+};
-+
-+static struct mv_sata_platform_data db88f6281_sata_data = {
-+ .n_ports = 2,
-+};
-+
-+static struct mvsdio_platform_data db88f6281_mvsdio_data = {
-+ .gpio_write_protect = 37,
-+ .gpio_card_detect = 38,
-+};
-+
-+static unsigned int db88f6281_mpp_config[] __initdata = {
-+ MPP0_NF_IO2,
-+ MPP1_NF_IO3,
-+ MPP2_NF_IO4,
-+ MPP3_NF_IO5,
-+ MPP4_NF_IO6,
-+ MPP5_NF_IO7,
-+ MPP18_NF_IO0,
-+ MPP19_NF_IO1,
-+ MPP37_GPIO,
-+ MPP38_GPIO,
-+ 0
-+};
-+
-+static void __init db88f6281_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+ kirkwood_mpp_conf(db88f6281_mpp_config);
-+
-+ kirkwood_nand_init(ARRAY_AND_SIZE(db88f6281_nand_parts), 25);
-+ kirkwood_ehci_init();
-+ kirkwood_ge00_init(&db88f6281_ge00_data);
-+ kirkwood_sata_init(&db88f6281_sata_data);
-+ kirkwood_uart0_init();
-+ kirkwood_sdio_init(&db88f6281_mvsdio_data);
-+}
-+
-+static int __init db88f6281_pci_init(void)
-+{
-+ if (machine_is_db88f6281_bp()) {
-+ u32 dev, rev;
-+
-+ kirkwood_pcie_id(&dev, &rev);
-+ if (dev == MV88F6282_DEV_ID)
-+ kirkwood_pcie_init(KW_PCIE1 | KW_PCIE0);
-+ else
-+ kirkwood_pcie_init(KW_PCIE0);
-+ }
-+ return 0;
-+}
-+subsys_initcall(db88f6281_pci_init);
-+
-+MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board")
-+ /* Maintainer: Saeed Bishara <saeed@marvell.com> */
-+ .atag_offset = 0x100,
-+ .init_machine = db88f6281_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/dockstar-setup.c linux-3.14.22/arch/arm/mach-kirkwood/dockstar-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/dockstar-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/dockstar-setup.c 2014-11-05 22:07:58.828714499 +0100
-@@ -0,0 +1,111 @@
-+/*
-+ * arch/arm/mach-kirkwood/dockstar-setup.c
-+ *
-+ * Seagate FreeAgent DockStar Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition dockstar_nand_parts[] = {
-+ {
-+ .name = "u-boot",
-+ .offset = 0,
-+ .size = SZ_1M
-+ }, {
-+ .name = "uImage",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = SZ_4M
-+ }, {
-+ .name = "root",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = MTDPART_SIZ_FULL
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data dockstar_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct gpio_led dockstar_led_pins[] = {
-+ {
-+ .name = "dockstar:green:health",
-+ .default_trigger = "default-on",
-+ .gpio = 46,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "dockstar:orange:misc",
-+ .default_trigger = "none",
-+ .gpio = 47,
-+ .active_low = 1,
-+ },
-+};
-+
-+static struct gpio_led_platform_data dockstar_led_data = {
-+ .leds = dockstar_led_pins,
-+ .num_leds = ARRAY_SIZE(dockstar_led_pins),
-+};
-+
-+static struct platform_device dockstar_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &dockstar_led_data,
-+ }
-+};
-+
-+static unsigned int dockstar_mpp_config[] __initdata = {
-+ MPP29_GPIO, /* USB Power Enable */
-+ MPP46_GPIO, /* LED green */
-+ MPP47_GPIO, /* LED orange */
-+ 0
-+};
-+
-+static void __init dockstar_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+
-+ /* setup gpio pin select */
-+ kirkwood_mpp_conf(dockstar_mpp_config);
-+
-+ kirkwood_uart0_init();
-+ kirkwood_nand_init(ARRAY_AND_SIZE(dockstar_nand_parts), 25);
-+
-+ if (gpio_request(29, "USB Power Enable") != 0 ||
-+ gpio_direction_output(29, 1) != 0)
-+ pr_err("can't set up GPIO 29 (USB Power Enable)\n");
-+ kirkwood_ehci_init();
-+
-+ kirkwood_ge00_init(&dockstar_ge00_data);
-+
-+ platform_device_register(&dockstar_leds);
-+}
-+
-+MACHINE_START(DOCKSTAR, "Seagate FreeAgent DockStar")
-+ .atag_offset = 0x100,
-+ .init_machine = dockstar_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.14.22/arch/arm/mach-kirkwood/dreamplug-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/dreamplug-setup.c 2014-11-05 22:07:58.833714499 +0100
-@@ -0,0 +1,151 @@
-+/*
-+ * arch/arm/mach-kirkwood/dreamplug-setup.c
-+ *
-+ * Marvell DreamPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <linux/spi/flash.h>
-+#include <linux/spi/spi.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <linux/platform_data/mmc-mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static const struct flash_platform_data dreamplug_spi_slave_data = {
-+ .type = "mx25l1606e",
-+};
-+
-+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
-+ {
-+ .modalias = "m25p80",
-+ .platform_data = &dreamplug_spi_slave_data,
-+ .irq = -1,
-+ .max_speed_hz = 50000000,
-+ .bus_num = 0,
-+ .chip_select = 0,
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(1),
-+};
-+
-+static struct mv_sata_platform_data dreamplug_sata_data = {
-+ .n_ports = 1,
-+};
-+
-+static struct mvsdio_platform_data dreamplug_mvsdio_data = {
-+ /* unfortunately the CD signal has not been connected */
-+};
-+
-+static struct gpio_led dreamplug_led_pins[] = {
-+ {
-+ .name = "dreamplug:blue:bluetooth",
-+ .gpio = 47,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "dreamplug:green:wlan",
-+ .gpio = 48,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "dreamplug:blue:wlanap",
-+ .gpio = 49,
-+ .active_low = 1,
-+ },
-+};
-+
-+static struct gpio_led_platform_data dreamplug_led_data = {
-+ .leds = dreamplug_led_pins,
-+ .num_leds = ARRAY_SIZE(dreamplug_led_pins),
-+};
-+
-+static struct platform_device dreamplug_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &dreamplug_led_data,
-+ }
-+};
-+
-+static unsigned int dreamplug_mpp_config[] __initdata = {
-+ MPP0_SPI_SCn,
-+ MPP1_SPI_MOSI,
-+ MPP2_SPI_SCK,
-+ MPP3_SPI_MISO,
-+ MPP4_GPIO,
-+ MPP5_GPO,
-+ MPP7_GPO,
-+ MPP18_GPO,
-+ MPP19_GPO,
-+ MPP47_GPIO, /* B_BLED */
-+ MPP48_GPIO, /* W_GLED */
-+ MPP49_GPIO, /* W_BLED */
-+ 0
-+};
-+
-+static void __init dreamplug_legacy_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+ kirkwood_mpp_conf(dreamplug_mpp_config);
-+
-+ kirkwood_uart0_init();
-+
-+ spi_register_board_info(dreamplug_spi_slave_info,
-+ ARRAY_SIZE(dreamplug_spi_slave_info));
-+
-+ kirkwood_spi_init();
-+ kirkwood_ehci_init();
-+
-+ kirkwood_ge00_init(&dreamplug_ge00_data);
-+ kirkwood_ge01_init(&dreamplug_ge01_data);
-+ kirkwood_sata_init(&dreamplug_sata_data);
-+ kirkwood_sdio_init(&dreamplug_mvsdio_data);
-+
-+ platform_device_register(&dreamplug_leds);
-+}
-+
-+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
-+ /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
-+ .atag_offset = 0x100,
-+ .init_machine = dreamplug_legacy_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-+
-+MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board")
-+ .atag_offset = 0x100,
-+ .init_machine = dreamplug_legacy_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+
-+MACHINE_END
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.14.22/arch/arm/mach-kirkwood/guruplug-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/guruplug-setup.c 2014-11-05 22:07:58.838714499 +0100
-@@ -0,0 +1,135 @@
-+/*
-+ * arch/arm/mach-kirkwood/guruplug-setup.c
-+ *
-+ * Marvell GuruPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <linux/platform_data/mmc-mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition guruplug_nand_parts[] = {
-+ {
-+ .name = "u-boot",
-+ .offset = 0,
-+ .size = SZ_1M,
-+ .mask_flags = MTD_WRITEABLE, /* read only */
-+ }, {
-+ .name = "uImage",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = SZ_4M,
-+ }, {
-+ .name = "root",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = MTDPART_SIZ_FULL,
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data guruplug_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv643xx_eth_platform_data guruplug_ge01_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(1),
-+};
-+
-+static struct mv_sata_platform_data guruplug_sata_data = {
-+ .n_ports = 1,
-+};
-+
-+static struct mvsdio_platform_data guruplug_mvsdio_data = {
-+ /* unfortunately the CD signal has not been connected */
-+ .gpio_card_detect = -1,
-+ .gpio_write_protect = -1,
-+};
-+
-+static struct gpio_led guruplug_led_pins[] = {
-+ {
-+ .name = "guruplug:red:health",
-+ .gpio = 46,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "guruplug:green:health",
-+ .gpio = 47,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "guruplug:red:wmode",
-+ .gpio = 48,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "guruplug:green:wmode",
-+ .gpio = 49,
-+ .active_low = 1,
-+ },
-+};
-+
-+static struct gpio_led_platform_data guruplug_led_data = {
-+ .leds = guruplug_led_pins,
-+ .num_leds = ARRAY_SIZE(guruplug_led_pins),
-+};
-+
-+static struct platform_device guruplug_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &guruplug_led_data,
-+ }
-+};
-+
-+static unsigned int guruplug_mpp_config[] __initdata = {
-+ MPP46_GPIO, /* M_RLED */
-+ MPP47_GPIO, /* M_GLED */
-+ MPP48_GPIO, /* B_RLED */
-+ MPP49_GPIO, /* B_GLED */
-+ 0
-+};
-+
-+static void __init guruplug_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+ kirkwood_mpp_conf(guruplug_mpp_config);
-+
-+ kirkwood_uart0_init();
-+ kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25);
-+
-+ kirkwood_ehci_init();
-+ kirkwood_ge00_init(&guruplug_ge00_data);
-+ kirkwood_ge01_init(&guruplug_ge01_data);
-+ kirkwood_sata_init(&guruplug_sata_data);
-+ kirkwood_sdio_init(&guruplug_mvsdio_data);
-+
-+ platform_device_register(&guruplug_leds);
-+}
-+
-+MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board")
-+ /* Maintainer: Siddarth Gore <gores@marvell.com> */
-+ .atag_offset = 0x100,
-+ .init_machine = guruplug_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.14.22/arch/arm/mach-kirkwood/iconnect-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/iconnect-setup.c 2014-11-05 22:07:58.843714499 +0100
-@@ -0,0 +1,214 @@
-+/*
-+ * arch/arm/mach-kirkwood/iconnect-setup.c
-+ *
-+ * Iomega iConnect Wireless Data Station Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/i2c.h>
-+#include <linux/input.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition iconnect_nand_parts[] = {
-+ {
-+ .name = "u-boot",
-+ .offset = 0,
-+ .size = SZ_1M,
-+ .mask_flags = MTD_WRITEABLE, /* read only */
-+ }, {
-+ .name = "uImage",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = 0x440000,
-+ }, {
-+ .name = "uInit",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = 0x440000,
-+ }, {
-+ .name = "root",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = MTDPART_SIZ_FULL,
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data iconnect_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(0xB),
-+};
-+
-+static struct gpio_led iconnect_led_pins[] = {
-+ {
-+ .name = "iconnect:led_level",
-+ .default_trigger = "default-on",
-+ .gpio = 41,
-+ .active_low = 0,
-+ },
-+
-+ {
-+ .name = "iconnect:blue:power",
-+ .default_trigger = "default-on",
-+ .gpio = 42,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "iconnect:red:power",
-+ .default_trigger = "none",
-+ .gpio = 43,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "iconnect:blue:usb_1",
-+ .default_trigger = "none",
-+ .gpio = 44,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "iconnect:blue:usb_2",
-+ .default_trigger = "none",
-+ .gpio = 45,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "iconnect:blue:usb_3",
-+ .default_trigger = "none",
-+ .gpio = 46,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "iconnect:blue:usb_4",
-+ .default_trigger = "none",
-+ .gpio = 47,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "iconnect:blue:otb",
-+ .default_trigger = "none",
-+ .gpio = 48,
-+ .active_low = 0,
-+ },
-+};
-+
-+static struct gpio_led_platform_data iconnect_led_data = {
-+ .leds = iconnect_led_pins,
-+ .num_leds = ARRAY_SIZE(iconnect_led_pins),
-+};
-+
-+static struct platform_device iconnect_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &iconnect_led_data,
-+ }
-+};
-+
-+static struct gpio_keys_button iconnect_buttons[] = {
-+ {
-+ .code = KEY_COPY,
-+ .gpio = 35,
-+ .desc = "OTB Button",
-+ .active_low = 1,
-+ },
-+ {
-+ .code = KEY_RESTART,
-+ .gpio = 12,
-+ .desc = "Reset",
-+ .active_low = 1,
-+ },
-+};
-+
-+static struct gpio_keys_platform_data iconnect_button_data = {
-+ .buttons = iconnect_buttons,
-+ .nbuttons = ARRAY_SIZE(iconnect_buttons),
-+};
-+
-+static struct platform_device iconnect_button_device = {
-+ .name = "gpio-keys",
-+ .id = -1,
-+ .num_resources = 0,
-+ .dev = {
-+ .platform_data = &iconnect_button_data,
-+ }
-+};
-+
-+static unsigned int iconnect_mpp_config[] __initdata = {
-+ MPP0_NF_IO2,
-+ MPP1_NF_IO3,
-+ MPP2_NF_IO4,
-+ MPP3_NF_IO5,
-+ MPP4_NF_IO6,
-+ MPP5_NF_IO7,
-+ MPP18_NF_IO0,
-+ MPP19_NF_IO1,
-+ MPP12_GPIO, /* Reset Button */
-+ MPP35_GPIO, /* OTB Button */
-+
-+ MPP41_GPIO, /* LED Level */
-+ MPP42_GPIO, /* Power LED blue */
-+ MPP43_GPIO, /* Power LED red */
-+ MPP44_GPIO, /* USB LED 1 */
-+ MPP45_GPIO, /* USB LED 2 */
-+ MPP46_GPIO, /* USB LED 3 */
-+ MPP47_GPIO, /* USB LED 4 */
-+ MPP48_GPIO, /* OTB LED */
-+ 0
-+};
-+
-+static struct i2c_board_info __initdata iconnect_i2c = {
-+ I2C_BOARD_INFO("lm63", 0x4c),
-+};
-+
-+static void __init iconnect_legacy_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+ kirkwood_mpp_conf(iconnect_mpp_config);
-+
-+ kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
-+ kirkwood_ehci_init();
-+ kirkwood_ge00_init(&iconnect_ge00_data);
-+
-+ kirkwood_uart0_init();
-+ platform_device_register(&iconnect_leds);
-+ platform_device_register(&iconnect_button_device);
-+
-+ kirkwood_i2c_init();
-+ i2c_register_board_info(0, &iconnect_i2c,1);
-+}
-+
-+static int __init iconnect_pci_init(void)
-+{
-+ if (machine_is_iconnect()) {
-+ kirkwood_pcie_init(KW_PCIE0);
-+ }
-+ return 0;
-+}
-+subsys_initcall(iconnect_pci_init);
-+
-+MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
-+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
-+ .atag_offset = 0x100,
-+ .init_machine = iconnect_legacy_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+
-+MACHINE_END
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/Kconfig linux-3.14.22/arch/arm/mach-kirkwood/Kconfig
---- linux-3.14.22.org/arch/arm/mach-kirkwood/Kconfig 2014-10-15 08:42:04.000000000 +0200
-+++ linux-3.14.22/arch/arm/mach-kirkwood/Kconfig 2014-11-05 22:07:58.848714499 +0100
-@@ -1,3 +1,5 @@
-+
-+
- if ARCH_KIRKWOOD
-
- menu "Marvell Kirkwood Implementations"
-@@ -72,6 +74,83 @@
- Say 'Y' here if you want your kernel to support the
- HP t5325 Thin Client.
-
-+config MACH_DB88F6281_BP
-+ bool "Marvell DB-88F6281-BP Development Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Marvell DB-88F6281-BP Development Board.
-+
-+config MACH_DOCKSTAR
-+ bool "Seagate FreeAgent DockStar"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Seagate FreeAgent DockStar.
-+
-+config MACH_SHEEVAPLUG
-+ bool "Marvell SheevaPlug Reference Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Marvell SheevaPlug Reference Board.
-+
-+config MACH_ESATA_SHEEVAPLUG
-+ bool "Marvell eSATA SheevaPlug Reference Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Marvell eSATA SheevaPlug Reference Board.
-+
-+config MACH_GURUPLUG
-+ bool "Marvell GuruPlug Reference Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Marvell GuruPlug Reference Board.
-+
-+config MACH_INETSPACE_V2
-+ bool "LaCie Internet Space v2 NAS Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ LaCie Internet Space v2 NAS.
-+
-+config MACH_NETSPACE_MAX_V2
-+ bool "LaCie Network Space Max v2 NAS Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ LaCie Network Space Max v2 NAS.
-+
-+config MACH_NETSPACE_V2
-+ bool "LaCie Network Space v2 NAS Board"
-+ select KIRKWOOD_LEGACY
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ LaCie Network Space v2 NAS.
-+
-+config MACH_DREAMPLUG
-+ select KIRKWOOD_LEGACY
-+ bool "Marvell DreamPlug Reference Board"
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Marvell DreamPlug Reference Board.
-+
-+config MACH_ICONNECT
-+ select KIRKWOOD_LEGACY
-+ bool "Iomega iConnect Wireless Data Station"
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Iomega iConnect Wireless Data Station.
-+
-+config MACH_NAS6210
-+ select KIRKWOOD_LEGACY
-+ bool "Raidsonic ICY BOX IB-62x0"
-+ help
-+ Say 'Y' here if you want your kernel to support the
-+ Raidsonic ICY BOX IB-62x0.
-+
- config MACH_TS219
- bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
- select KIRKWOOD_LEGACY
-@@ -113,6 +192,7 @@
- Say 'Y' here if you want your kernel to support the
- Marvell 88F6281 GTW GE Board (Flattened Device Tree).
-
-+
- endmenu
-
- endif
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/Makefile linux-3.14.22/arch/arm/mach-kirkwood/Makefile
---- linux-3.14.22.org/arch/arm/mach-kirkwood/Makefile 2014-10-15 08:42:04.000000000 +0200
-+++ linux-3.14.22/arch/arm/mach-kirkwood/Makefile 2014-11-05 22:09:01.758714529 +0100
-@@ -2,6 +2,15 @@
- obj-$(CONFIG_KIRKWOOD_LEGACY) += irq.o mpp.o
- obj-$(CONFIG_PM) += pm.o
-
-+obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o
-+obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
-+obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
-+obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
-+obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o
-+obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
-+obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o
-+obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
-+obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
- obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o
- obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
- obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
-@@ -11,6 +20,8 @@
- obj-$(CONFIG_MACH_T5325) += t5325-setup.o
- obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
- obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
-+obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o
-+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o
-
- obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
- obj-$(CONFIG_MACH_MV88F6281GTW_GE_DT) += board-mv88f6281gtw_ge.o
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.14.22/arch/arm/mach-kirkwood/nas6210-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/nas6210-setup.c 2014-11-05 22:07:58.858714499 +0100
-@@ -0,0 +1,185 @@
-+/*
-+ * arch/arm/mach-kirkwood/nas6210-setup.c
-+ *
-+ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/i2c.h>
-+#include <linux/input.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+#define NAS6210_GPIO_POWER_OFF 24
-+
-+static struct mtd_partition nas6210_nand_parts[] = {
-+ {
-+ .name = "u-boot",
-+ .offset = 0,
-+ .size = SZ_1M,
-+ .mask_flags = MTD_WRITEABLE, /* read only */
-+ }, {
-+ .name = "uImage",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = (SZ_1M*6),
-+ }, {
-+ .name = "root",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = MTDPART_SIZ_FULL,
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data nas6210_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(8),
-+};
-+
-+static struct mv_sata_platform_data nas6210_sata_data = {
-+ .n_ports = 2,
-+};
-+
-+static struct gpio_led nas6210_led_pins[] = {
-+ {
-+ .name = "nas6210:green:power",
-+ .default_trigger = "default-on",
-+ .gpio = 25,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "nas6210:red:power",
-+ .default_trigger = "none",
-+ .gpio = 22,
-+ .active_low = 0,
-+ },
-+ {
-+ .name = "nas6210:red:usb_copy",
-+ .default_trigger = "none",
-+ .gpio = 27,
-+ .active_low = 0,
-+ },
-+};
-+
-+static struct gpio_led_platform_data nas6210_led_data = {
-+ .leds = nas6210_led_pins,
-+ .num_leds = ARRAY_SIZE(nas6210_led_pins),
-+};
-+
-+static struct platform_device nas6210_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &nas6210_led_data,
-+ }
-+};
-+
-+static struct gpio_keys_button nas6210_buttons[] = {
-+ {
-+ .code = KEY_COPY,
-+ .gpio = 29,
-+ .desc = "USB Copy",
-+ .active_low = 1,
-+ },
-+ {
-+ .code = KEY_RESTART,
-+ .gpio = 28,
-+ .desc = "Reset",
-+ .active_low = 1,
-+ },
-+};
-+
-+static struct gpio_keys_platform_data nas6210_button_data = {
-+ .buttons = nas6210_buttons,
-+ .nbuttons = ARRAY_SIZE(nas6210_buttons),
-+};
-+
-+static struct platform_device nas6210_button_device = {
-+ .name = "gpio-keys",
-+ .id = -1,
-+ .num_resources = 0,
-+ .dev = {
-+ .platform_data = &nas6210_button_data,
-+ }
-+};
-+
-+static unsigned int nas6210_mpp_config[] __initdata = {
-+ MPP0_NF_IO2,
-+ MPP1_NF_IO3,
-+ MPP2_NF_IO4,
-+ MPP3_NF_IO5,
-+ MPP4_NF_IO6,
-+ MPP5_NF_IO7,
-+ MPP18_NF_IO0,
-+ MPP19_NF_IO1,
-+ MPP22_GPIO, /* Power LED red */
-+ MPP24_GPIO, /* Power off */
-+ MPP25_GPIO, /* Power LED green */
-+ MPP27_GPIO, /* USB transfer LED */
-+ MPP28_GPIO, /* Reset button */
-+ MPP29_GPIO, /* USB Copy button */
-+ 0
-+};
-+
-+void nas6210_power_off(void)
-+{
-+ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
-+ while(1);
-+}
-+
-+static void __init nas6210_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+ kirkwood_mpp_conf(nas6210_mpp_config);
-+
-+ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
-+ kirkwood_ehci_init();
-+ kirkwood_ge00_init(&nas6210_ge00_data);
-+ kirkwood_sata_init(&nas6210_sata_data);
-+ kirkwood_uart0_init();
-+ platform_device_register(&nas6210_leds);
-+ platform_device_register(&nas6210_button_device);
-+
-+ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
-+ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
-+ pm_power_off = nas6210_power_off;
-+
-+ else
-+ pr_err("nas6210: failed to configure power-off gpio pin");
-+}
-+
-+static int __init nas6210_pci_init(void)
-+{
-+ if (machine_is_nas6210()) {
-+ kirkwood_pcie_init(KW_PCIE0);
-+ }
-+ return 0;
-+}
-+subsys_initcall(nas6210_pci_init);
-+
-+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
-+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
-+ .atag_offset = 0x00000100,
-+ .init_machine = nas6210_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/netspace_v2-setup.c linux-3.14.22/arch/arm/mach-kirkwood/netspace_v2-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/netspace_v2-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/netspace_v2-setup.c 2014-11-05 22:07:58.858714499 +0100
-@@ -0,0 +1,293 @@
-+/*
-+ * arch/arm/mach-kirkwood/netspace_v2-setup.c
-+ *
-+ * LaCie Network Space v2 board setup
-+ *
-+ * Copyright (C) 2009 Simon Guinot <sguinot@lacie.com>
-+ * Copyright (C) 2009 Benoît Canet <benoit.canet@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/input.h>
-+#include <linux/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/leds.h>
-+#include <linux/gpio-fan.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <linux/platform_data/leds-kirkwood-ns2.h>
-+#include "common.h"
-+#include "mpp.h"
-+#include "lacie_v2-common.h"
-+
-+/*****************************************************************************
-+ * Ethernet
-+ ****************************************************************************/
-+
-+static struct mv643xx_eth_platform_data netspace_v2_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(8),
-+};
-+
-+/*****************************************************************************
-+ * SATA
-+ ****************************************************************************/
-+
-+static struct mv_sata_platform_data netspace_v2_sata_data = {
-+ .n_ports = 2,
-+};
-+
-+/*****************************************************************************
-+ * GPIO keys
-+ ****************************************************************************/
-+
-+#define NETSPACE_V2_PUSH_BUTTON 32
-+
-+static struct gpio_keys_button netspace_v2_buttons[] = {
-+ [0] = {
-+ .code = KEY_POWER,
-+ .gpio = NETSPACE_V2_PUSH_BUTTON,
-+ .desc = "Power push button",
-+ .active_low = 0,
-+ },
-+};
-+
-+static struct gpio_keys_platform_data netspace_v2_button_data = {
-+ .buttons = netspace_v2_buttons,
-+ .nbuttons = ARRAY_SIZE(netspace_v2_buttons),
-+};
-+
-+static struct platform_device netspace_v2_gpio_buttons = {
-+ .name = "gpio-keys",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &netspace_v2_button_data,
-+ },
-+};
-+
-+/*****************************************************************************
-+ * GPIO LEDs
-+ ****************************************************************************/
-+
-+#define NETSPACE_V2_GPIO_RED_LED 12
-+
-+static struct gpio_led netspace_v2_gpio_led_pins[] = {
-+ {
-+ .name = "ns_v2:red:fail",
-+ .gpio = NETSPACE_V2_GPIO_RED_LED,
-+ },
-+};
-+
-+static struct gpio_led_platform_data netspace_v2_gpio_leds_data = {
-+ .num_leds = ARRAY_SIZE(netspace_v2_gpio_led_pins),
-+ .leds = netspace_v2_gpio_led_pins,
-+};
-+
-+static struct platform_device netspace_v2_gpio_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &netspace_v2_gpio_leds_data,
-+ },
-+};
-+
-+/*****************************************************************************
-+ * Dual-GPIO CPLD LEDs
-+ ****************************************************************************/
-+
-+#define NETSPACE_V2_GPIO_BLUE_LED_SLOW 29
-+#define NETSPACE_V2_GPIO_BLUE_LED_CMD 30
-+
-+static struct ns2_led netspace_v2_led_pins[] = {
-+ {
-+ .name = "ns_v2:blue:sata",
-+ .cmd = NETSPACE_V2_GPIO_BLUE_LED_CMD,
-+ .slow = NETSPACE_V2_GPIO_BLUE_LED_SLOW,
-+ },
-+};
-+
-+static struct ns2_led_platform_data netspace_v2_leds_data = {
-+ .num_leds = ARRAY_SIZE(netspace_v2_led_pins),
-+ .leds = netspace_v2_led_pins,
-+};
-+
-+static struct platform_device netspace_v2_leds = {
-+ .name = "leds-ns2",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &netspace_v2_leds_data,
-+ },
-+};
-+
-+/*****************************************************************************
-+ * GPIO fan
-+ ****************************************************************************/
-+
-+/* Designed for fan 40x40x16: ADDA AD0412LB-D50 6000rpm@12v */
-+static struct gpio_fan_speed netspace_max_v2_fan_speed[] = {
-+ { 0, 0 },
-+ { 1500, 15 },
-+ { 1700, 14 },
-+ { 1800, 13 },
-+ { 2100, 12 },
-+ { 3100, 11 },
-+ { 3300, 10 },
-+ { 4300, 9 },
-+ { 5500, 8 },
-+};
-+
-+static unsigned netspace_max_v2_fan_ctrl[] = { 22, 7, 33, 23 };
-+
-+static struct gpio_fan_alarm netspace_max_v2_fan_alarm = {
-+ .gpio = 25,
-+ .active_low = 1,
-+};
-+
-+static struct gpio_fan_platform_data netspace_max_v2_fan_data = {
-+ .num_ctrl = ARRAY_SIZE(netspace_max_v2_fan_ctrl),
-+ .ctrl = netspace_max_v2_fan_ctrl,
-+ .alarm = &netspace_max_v2_fan_alarm,
-+ .num_speed = ARRAY_SIZE(netspace_max_v2_fan_speed),
-+ .speed = netspace_max_v2_fan_speed,
-+};
-+
-+static struct platform_device netspace_max_v2_gpio_fan = {
-+ .name = "gpio-fan",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &netspace_max_v2_fan_data,
-+ },
-+};
-+
-+/*****************************************************************************
-+ * General Setup
-+ ****************************************************************************/
-+
-+static unsigned int netspace_v2_mpp_config[] __initdata = {
-+ MPP0_SPI_SCn,
-+ MPP1_SPI_MOSI,
-+ MPP2_SPI_SCK,
-+ MPP3_SPI_MISO,
-+ MPP4_NF_IO6,
-+ MPP5_NF_IO7,
-+ MPP6_SYSRST_OUTn,
-+ MPP7_GPO, /* Fan speed (bit 1) */
-+ MPP8_TW0_SDA,
-+ MPP9_TW0_SCK,
-+ MPP10_UART0_TXD,
-+ MPP11_UART0_RXD,
-+ MPP12_GPO, /* Red led */
-+ MPP14_GPIO, /* USB fuse */
-+ MPP16_GPIO, /* SATA 0 power */
-+ MPP17_GPIO, /* SATA 1 power */
-+ MPP18_NF_IO0,
-+ MPP19_NF_IO1,
-+ MPP20_SATA1_ACTn,
-+ MPP21_SATA0_ACTn,
-+ MPP22_GPIO, /* Fan speed (bit 0) */
-+ MPP23_GPIO, /* Fan power */
-+ MPP24_GPIO, /* USB mode select */
-+ MPP25_GPIO, /* Fan rotation fail */
-+ MPP26_GPIO, /* USB device vbus */
-+ MPP28_GPIO, /* USB enable host vbus */
-+ MPP29_GPIO, /* Blue led (slow register) */
-+ MPP30_GPIO, /* Blue led (command register) */
-+ MPP31_GPIO, /* Board power off */
-+ MPP32_GPIO, /* Power button (0 = Released, 1 = Pushed) */
-+ MPP33_GPO, /* Fan speed (bit 2) */
-+ 0
-+};
-+
-+#define NETSPACE_V2_GPIO_POWER_OFF 31
-+
-+static void netspace_v2_power_off(void)
-+{
-+ gpio_set_value(NETSPACE_V2_GPIO_POWER_OFF, 1);
-+}
-+
-+static void __init netspace_v2_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+ kirkwood_mpp_conf(netspace_v2_mpp_config);
-+
-+ if (machine_is_netspace_max_v2())
-+ lacie_v2_hdd_power_init(2);
-+ else
-+ lacie_v2_hdd_power_init(1);
-+
-+ kirkwood_ehci_init();
-+ kirkwood_ge00_init(&netspace_v2_ge00_data);
-+ kirkwood_sata_init(&netspace_v2_sata_data);
-+ kirkwood_uart0_init();
-+ lacie_v2_register_flash();
-+ lacie_v2_register_i2c_devices();
-+
-+ platform_device_register(&netspace_v2_leds);
-+ platform_device_register(&netspace_v2_gpio_leds);
-+ platform_device_register(&netspace_v2_gpio_buttons);
-+ if (machine_is_netspace_max_v2())
-+ platform_device_register(&netspace_max_v2_gpio_fan);
-+
-+ if (gpio_request(NETSPACE_V2_GPIO_POWER_OFF, "power-off") == 0 &&
-+ gpio_direction_output(NETSPACE_V2_GPIO_POWER_OFF, 0) == 0)
-+ pm_power_off = netspace_v2_power_off;
-+ else
-+ pr_err("netspace_v2: failed to configure power-off GPIO\n");
-+}
-+
-+#ifdef CONFIG_MACH_NETSPACE_V2
-+MACHINE_START(NETSPACE_V2, "LaCie Network Space v2")
-+ .atag_offset = 0x100,
-+ .init_machine = netspace_v2_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-+#endif
-+
-+#ifdef CONFIG_MACH_INETSPACE_V2
-+MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2")
-+ .atag_offset = 0x100,
-+ .init_machine = netspace_v2_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-+#endif
-+
-+#ifdef CONFIG_MACH_NETSPACE_MAX_V2
-+MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2")
-+ .atag_offset = 0x100,
-+ .init_machine = netspace_v2_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-+#endif
-diff -Naur linux-3.14.22.org/arch/arm/mach-kirkwood/sheevaplug-setup.c linux-3.14.22/arch/arm/mach-kirkwood/sheevaplug-setup.c
---- linux-3.14.22.org/arch/arm/mach-kirkwood/sheevaplug-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.14.22/arch/arm/mach-kirkwood/sheevaplug-setup.c 2014-11-05 22:07:58.868714499 +0100
-@@ -0,0 +1,161 @@
-+/*
-+ * arch/arm/mach-kirkwood/sheevaplug-setup.c
-+ *
-+ * Marvell SheevaPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <linux/platform_data/mmc-mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition sheevaplug_nand_parts[] = {
-+ {
-+ .name = "u-boot",
-+ .offset = 0,
-+ .size = SZ_1M
-+ }, {
-+ .name = "uImage",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = SZ_4M
-+ }, {
-+ .name = "root",
-+ .offset = MTDPART_OFS_NXTBLK,
-+ .size = MTDPART_SIZ_FULL
-+ },
-+};
-+
-+static struct mv643xx_eth_platform_data sheevaplug_ge00_data = {
-+ .phy_addr = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv_sata_platform_data sheeva_esata_sata_data = {
-+ .n_ports = 2,
-+};
-+
-+static struct mvsdio_platform_data sheevaplug_mvsdio_data = {
-+ /* unfortunately the CD signal has not been connected */
-+};
-+
-+static struct mvsdio_platform_data sheeva_esata_mvsdio_data = {
-+ .gpio_write_protect = 44, /* MPP44 used as SD write protect */
-+ .gpio_card_detect = 47, /* MPP47 used as SD card detect */
-+};
-+
-+static struct gpio_led sheevaplug_led_pins[] = {
-+ {
-+ .name = "plug:red:misc",
-+ .default_trigger = "none",
-+ .gpio = 46,
-+ .active_low = 1,
-+ },
-+ {
-+ .name = "plug:green:health",
-+ .default_trigger = "default-on",
-+ .gpio = 49,
-+ .active_low = 1,
-+ },
-+};
-+
-+static struct gpio_led_platform_data sheevaplug_led_data = {
-+ .leds = sheevaplug_led_pins,
-+ .num_leds = ARRAY_SIZE(sheevaplug_led_pins),
-+};
-+
-+static struct platform_device sheevaplug_leds = {
-+ .name = "leds-gpio",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &sheevaplug_led_data,
-+ }
-+};
-+
-+static unsigned int sheevaplug_mpp_config[] __initdata = {
-+ MPP29_GPIO, /* USB Power Enable */
-+ MPP46_GPIO, /* LED Red */
-+ MPP49_GPIO, /* LED */
-+ 0
-+};
-+
-+static unsigned int sheeva_esata_mpp_config[] __initdata = {
-+ MPP29_GPIO, /* USB Power Enable */
-+ MPP44_GPIO, /* SD Write Protect */
-+ MPP47_GPIO, /* SD Card Detect */
-+ MPP49_GPIO, /* LED Green */
-+ 0
-+};
-+
-+static void __init sheevaplug_init(void)
-+{
-+ /*
-+ * Basic setup. Needs to be called early.
-+ */
-+ kirkwood_init();
-+
-+ /* setup gpio pin select */
-+ if (machine_is_esata_sheevaplug())
-+ kirkwood_mpp_conf(sheeva_esata_mpp_config);
-+ else
-+ kirkwood_mpp_conf(sheevaplug_mpp_config);
-+
-+ kirkwood_uart0_init();
-+ kirkwood_nand_init(ARRAY_AND_SIZE(sheevaplug_nand_parts), 25);
-+
-+ if (gpio_request(29, "USB Power Enable") != 0 ||
-+ gpio_direction_output(29, 1) != 0)
-+ pr_err("can't set up GPIO 29 (USB Power Enable)\n");
-+ kirkwood_ehci_init();
-+
-+ kirkwood_ge00_init(&sheevaplug_ge00_data);
-+
-+ /* honor lower power consumption for plugs with out eSATA */
-+ if (machine_is_esata_sheevaplug())
-+ kirkwood_sata_init(&sheeva_esata_sata_data);
-+
-+ /* enable sd wp and sd cd on plugs with esata */
-+ if (machine_is_esata_sheevaplug())
-+ kirkwood_sdio_init(&sheeva_esata_mvsdio_data);
-+ else
-+ kirkwood_sdio_init(&sheevaplug_mvsdio_data);
-+
-+ platform_device_register(&sheevaplug_leds);
-+}
-+
-+#ifdef CONFIG_MACH_SHEEVAPLUG
-+MACHINE_START(SHEEVAPLUG, "Marvell SheevaPlug Reference Board")
-+ /* Maintainer: shadi Ammouri <shadi@marvell.com> */
-+ .atag_offset = 0x100,
-+ .init_machine = sheevaplug_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-+#endif
-+
-+#ifdef CONFIG_MACH_ESATA_SHEEVAPLUG
-+MACHINE_START(ESATA_SHEEVAPLUG, "Marvell eSATA SheevaPlug Reference Board")
-+ .atag_offset = 0x100,
-+ .init_machine = sheevaplug_init,
-+ .map_io = kirkwood_map_io,
-+ .init_early = kirkwood_init_early,
-+ .init_irq = kirkwood_init_irq,
-+ .init_time = kirkwood_timer_init,
-+ .restart = kirkwood_restart,
-+MACHINE_END
-+#endif
-diff -Naur linux-3.14.22.org/arch/arm/tools/mach-types linux-3.14.22/arch/arm/tools/mach-types
---- linux-3.14.22.org/arch/arm/tools/mach-types 2014-10-15 08:42:04.000000000 +0200
-+++ linux-3.14.22/arch/arm/tools/mach-types 2014-11-05 22:07:58.868714499 +0100
-@@ -447,6 +447,7 @@
- smartq5 MACH_SMARTQ5 SMARTQ5 2534
- davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548
- mxt_td60 MACH_MXT_TD60 MXT_TD60 2550
-+guruplug MACH_GURUPLUG GURUPLUG 2601
- capc7117 MACH_CAPC7117 CAPC7117 2612
- icontrol MACH_ICONTROL ICONTROL 2624
- gplugd MACH_GPLUGD GPLUGD 2625
-@@ -454,7 +455,7 @@
- mx23evk MACH_MX23EVK MX23EVK 2629
- ap4evb MACH_AP4EVB AP4EVB 2630
- mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650
--guruplug MACH_GURUPLUG GURUPLUG 2659
-+dreamplug1 MACH_DREAMPLUG1 DREAMPLUG1 2659
- spear310 MACH_SPEAR310 SPEAR310 2660
- spear320 MACH_SPEAR320 SPEAR320 2661
- aquila MACH_AQUILA AQUILA 2676
-@@ -491,6 +492,7 @@
- t5325 MACH_T5325 T5325 2846
- income MACH_INCOME INCOME 2849
- goni MACH_GONI GONI 2862
-+iconnect MACH_ICONNECT ICONNECT 2870
- bv07 MACH_BV07 BV07 2882
- openrd_ultimate MACH_OPENRD_ULTIMATE OPENRD_ULTIMATE 2884
- devixp MACH_DEVIXP DEVIXP 2885
-@@ -520,6 +522,7 @@
- vpr200 MACH_VPR200 VPR200 3087
- torbreck MACH_TORBRECK TORBRECK 3090
- prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103
-+nas6210 MACH_NAS6210 NAS6210 3104
- paz00 MACH_PAZ00 PAZ00 3128
- acmenetusfoxg20 MACH_ACMENETUSFOXG20 ACMENETUSFOXG20 3129
- ag5evm MACH_AG5EVM AG5EVM 3189
-@@ -544,6 +547,7 @@
- nspire MACH_NSPIRE NSPIRE 3503
- nokia_rm696 MACH_NOKIA_RM696 NOKIA_RM696 3522
- mikrap_x168 MACH_MIKRAP_X168 MIKRAP_X168 3543
-+dreamplug MACH_DREAMPLUG DREAMPLUG 3550
- deto_macarm9 MACH_DETO_MACARM9 DETO_MACARM9 3568
- m28evk MACH_M28EVK M28EVK 3613
- kota2 MACH_KOTA2 KOTA2 3616