diff --git a/target/linux/kirkwood/config-default b/target/linux/kirkwood/config-default index 7897f7cc3f7..0f334639784 100644 --- a/target/linux/kirkwood/config-default +++ b/target/linux/kirkwood/config-default @@ -90,6 +90,7 @@ CONFIG_LEGACY_PTY_COUNT=256 CONFIG_MACH_DOCKSTAR=y # CONFIG_MACH_ESATA_SHEEVAPLUG is not set # CONFIG_MACH_GURUPLUG is not set +CONFIG_MACH_ICONNECT=y # CONFIG_MACH_INETSPACE_V2 is not set # CONFIG_MACH_MV88F6281GTW_GE is not set # CONFIG_MACH_NET2BIG_V2 is not set diff --git a/target/linux/kirkwood/patches/200-iconnect.patch b/target/linux/kirkwood/patches/200-iconnect.patch new file mode 100644 index 00000000000..fd1e486ba11 --- /dev/null +++ b/target/linux/kirkwood/patches/200-iconnect.patch @@ -0,0 +1,123 @@ +--- a/arch/arm/mach-kirkwood/Makefile ++++ b/arch/arm/mach-kirkwood/Makefile +@@ -8,6 +8,7 @@ + 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_ICONNECT) += iconnect-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_OPENRD) += openrd-setup.o +--- a/arch/arm/mach-kirkwood/Kconfig ++++ b/arch/arm/mach-kirkwood/Kconfig +@@ -105,6 +105,12 @@ + Say 'Y' here if you want your kernel to support the + Seagate FreeAgent DockStar. + ++config MACH_ICONNECT ++ bool "Iomega iConnect Wireless" ++ help ++ Say 'Y' here if you want your kernel to support the ++ Iomega iConnect Wireless. ++ + endmenu + + endif +--- /dev/null ++++ b/arch/arm/mach-kirkwood/iconnect-setup.c +@@ -0,0 +1,95 @@ ++/* ++ * arch/arm/mach-kirkwood/iconnect-setup.c ++ * ++ * Iomega iConnect Wireless ++ * ++ * 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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "common.h" ++#include "mpp.h" ++ ++static struct mtd_partition iconnect_nand_parts[] = { ++ { ++ .name = "u-boot", ++ .offset = 0, ++ .size = SZ_1M ++ }, { ++ .name = "uImage", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = SZ_1M + SZ_2M ++ }, { ++ .name = "rootfs", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = SZ_32M, ++ }, { ++ .name = "data", ++ .offset = MTDPART_OFS_NXTBLK, ++ .size = MTDPART_SIZ_FULL ++ }, ++}; ++ ++static struct mv643xx_eth_platform_data iconnect_ge00_data = { ++ .phy_addr = MV643XX_ETH_PHY_ADDR(11), ++}; ++ ++static unsigned int iconnect_mpp_config[] __initdata = { ++ MPP8_TW_SDA, ++ MPP9_TW_SCK, ++ MPP10_UART0_TXD, ++ MPP11_UART0_RXD, ++ MPP28_GPIO, ++ 0 ++}; ++ ++static void __init iconnect_init(void) ++{ ++ u32 dev, rev; ++ ++ /* ++ * 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_pcie_id(&dev, &rev); ++ ++ kirkwood_uart0_init(); ++ kirkwood_i2c_init(); ++} ++ ++static int __init iconnect_pci_init(void) ++{ ++ if (machine_is_iconnect()) ++ kirkwood_pcie_init(); ++ ++ return 0; ++} ++subsys_initcall(iconnect_pci_init); ++ ++ ++MACHINE_START(ICONNECT, "Iomega iConnect Wireless") ++ .phys_io = KIRKWOOD_REGS_PHYS_BASE, ++ .io_pg_offst = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, ++ .boot_params = 0x00000100, ++ .init_machine = iconnect_init, ++ .map_io = kirkwood_map_io, ++ .init_irq = kirkwood_init_irq, ++ .timer = &kirkwood_timer, ++MACHINE_END diff --git a/target/linux/kirkwood/profiles/300-Iconnect.mk b/target/linux/kirkwood/profiles/300-Iconnect.mk new file mode 100644 index 00000000000..230e41936ff --- /dev/null +++ b/target/linux/kirkwood/profiles/300-Iconnect.mk @@ -0,0 +1,17 @@ +# +# Copyright (C) 2006 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/Iconnect + NAME:=Iomega iConnect Wireless + PACKAGES:=kmod-i2c-mv64xxx kmod-hwmon-core kmod-hwmon-lm63 +endef + +define Profile/Iconnect/Description + Iomega iConnect Wireless +endef + +$(eval $(call Profile,Iconnect))