This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, seventeen has been updated via dc3de45125581d78a5aaa8055b6516fc4a152c79 (commit) via 21147a00f2ab7c6fe19c2dde3102227f25176c52 (commit) via 3f491bba9212f08aa0d117c07e2aef70b6cda9a2 (commit) via b3e7564c40d6228245c9cc570aa49940dfde778f (commit) via ec1e1421861bdf802719ce549540a1110c9cc1a8 (commit) from 282c47bcb414319c90f84c958141af4535e99841 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit dc3de45125581d78a5aaa8055b6516fc4a152c79 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Nov 4 20:24:17 2014 +0100
kernel: build sunxi crypto driver as module.
commit 21147a00f2ab7c6fe19c2dde3102227f25176c52 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Nov 4 20:21:05 2014 +0100
kernel: readd kirkwood legacy boot code.
commit 3f491bba9212f08aa0d117c07e2aef70b6cda9a2 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Nov 4 20:16:17 2014 +0100
kernel: enable carl97xx hwrng.
commit b3e7564c40d6228245c9cc570aa49940dfde778f Merge: ec1e142 282c47b Author: Arne Fitzenreiter arne_f@ipfire.org Date: Tue Nov 4 20:12:50 2014 +0100
Merge branch 'seventeen' of git.ipfire.org:/pub/git/ipfire-2.x into seventeen
commit ec1e1421861bdf802719ce549540a1110c9cc1a8 Author: Arne Fitzenreiter arne_f@ipfire.org Date: Sun Nov 2 21:45:03 2014 +0100
kernel: arm multiarch: enanble xhci.
-----------------------------------------------------------------------
Summary of changes: .../kernel/kernel.config.armv5tel-ipfire-kirkwood | 13 +- config/kernel/kernel.config.armv5tel-ipfire-multi | 6 +- config/kernel/kernel.config.armv5tel-ipfire-rpi | 2 +- config/kernel/kernel.config.i586-ipfire | 2 +- config/kernel/kernel.config.i586-ipfire-pae | 2 +- lfs/linux | 1 + .../linux-3.14.22-kirkwood_legacy_boot.patch | 1562 ++++++++++++++++++++ 7 files changed, 1581 insertions(+), 7 deletions(-) create mode 100644 src/patches/linux-3.14.22-kirkwood_legacy_boot.patch
Difference in files: diff --git a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood index 67d0d04..64d0300 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-kirkwood +++ b/config/kernel/kernel.config.armv5tel-ipfire-kirkwood @@ -333,6 +333,17 @@ CONFIG_MACH_OPENRD_ULTIMATE=y CONFIG_MACH_RD88F6192_NAS=y CONFIG_MACH_RD88F6281=y CONFIG_MACH_T5325=y +CONFIG_MACH_DB88F6281_BP=y +CONFIG_MACH_DOCKSTAR=y +CONFIG_MACH_SHEEVAPLUG=y +CONFIG_MACH_ESATA_SHEEVAPLUG=y +CONFIG_MACH_GURUPLUG=y +CONFIG_MACH_INETSPACE_V2=y +CONFIG_MACH_NETSPACE_MAX_V2=y +CONFIG_MACH_NETSPACE_V2=y +CONFIG_MACH_DREAMPLUG=y +CONFIG_MACH_ICONNECT=y +CONFIG_MACH_NAS6210=y CONFIG_MACH_TS219=y CONFIG_MACH_TS41X=y
@@ -2083,7 +2094,7 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y -# CONFIG_CARL9170_HWRNG is not set +CONFIG_CARL9170_HWRNG=y # CONFIG_ATH6KL is not set CONFIG_AR5523=m CONFIG_WIL6210=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-multi b/config/kernel/kernel.config.armv5tel-ipfire-multi index 110c199..65b1aff 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-multi +++ b/config/kernel/kernel.config.armv5tel-ipfire-multi @@ -2279,7 +2279,7 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y -# CONFIG_CARL9170_HWRNG is not set +CONFIG_CARL9170_HWRNG=y # CONFIG_ATH6KL is not set CONFIG_AR5523=m # CONFIG_WIL6210 is not set @@ -4383,7 +4383,7 @@ CONFIG_USB_WUSB_CBAF=m # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set -# CONFIG_USB_XHCI_HCD is not set +CONFIG_USB_XHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y @@ -5892,7 +5892,7 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_CRYPTO_DEV_OMAP_SHAM=y CONFIG_CRYPTO_DEV_OMAP_AES=y CONFIG_CRYPTO_DEV_SAHARA=y -CONFIG_CRYPTO_DEV_SUNXI_SS=y +CONFIG_CRYPTO_DEV_SUNXI_SS=m CONFIG_ASYMMETRIC_KEY_TYPE=m CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m CONFIG_PUBLIC_KEY_ALGO_RSA=m diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi index 269c633..897e1f3 100644 --- a/config/kernel/kernel.config.armv5tel-ipfire-rpi +++ b/config/kernel/kernel.config.armv5tel-ipfire-rpi @@ -1515,7 +1515,7 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y -# CONFIG_CARL9170_HWRNG is not set +CONFIG_CARL9170_HWRNG=y CONFIG_ATH6KL=m # CONFIG_ATH6KL_SDIO is not set CONFIG_ATH6KL_USB=m diff --git a/config/kernel/kernel.config.i586-ipfire b/config/kernel/kernel.config.i586-ipfire index 03d0ead..5869b88 100644 --- a/config/kernel/kernel.config.i586-ipfire +++ b/config/kernel/kernel.config.i586-ipfire @@ -2243,7 +2243,7 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y -# CONFIG_CARL9170_HWRNG is not set +CONFIG_CARL9170_HWRNG=y # CONFIG_ATH6KL is not set CONFIG_AR5523=m CONFIG_WIL6210=m diff --git a/config/kernel/kernel.config.i586-ipfire-pae b/config/kernel/kernel.config.i586-ipfire-pae index ff3a9ee..54cfb06 100644 --- a/config/kernel/kernel.config.i586-ipfire-pae +++ b/config/kernel/kernel.config.i586-ipfire-pae @@ -2260,7 +2260,7 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y -# CONFIG_CARL9170_HWRNG is not set +CONFIG_CARL9170_HWRNG=y # CONFIG_ATH6KL is not set CONFIG_AR5523=m CONFIG_WIL6210=m diff --git a/lfs/linux b/lfs/linux index bcbdeb0..8a1ee9c 100644 --- a/lfs/linux +++ b/lfs/linux @@ -161,6 +161,7 @@ endif
ifeq "$(KCFG)" "-kirkwood" cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.10-mv_cesa_disable_failing_hmac_sha1.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.14.22-kirkwood_legacy_boot.patch endif
ifeq "$(KCFG)" "-multi" diff --git a/src/patches/linux-3.14.22-kirkwood_legacy_boot.patch b/src/patches/linux-3.14.22-kirkwood_legacy_boot.patch new file mode 100644 index 0000000..27dfedd --- /dev/null +++ b/src/patches/linux-3.14.22-kirkwood_legacy_boot.patch @@ -0,0 +1,1562 @@ +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-10-15 08:32:29.000000000 +0200 +@@ -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-10-15 08:32:29.000000000 +0200 +@@ -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-04 00:25:48.383688273 +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-04 00:25:48.383688273 +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-04 00:25:48.383688273 +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-04 01:10:52.950526196 +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-04 01:11:13.009019440 +0100 +@@ -2,6 +2,14 @@ + 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_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 +19,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-04 00:25:48.393687522 +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-10-15 08:32:29.000000000 +0200 +@@ -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-10-15 08:32:29.000000000 +0200 +@@ -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-04 00:25:48.393687522 +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
hooks/post-receive -- IPFire 2.x development tree