From b91f24824772c446534e8b296dec1a0baada6b1d Mon Sep 17 00:00:00 2001 From: lars Date: Mon, 4 Oct 2010 09:19:52 +0000 Subject: [kirkwood] Iomega iConnect Wireless platform support This patch adds support for Iomega iConnect Wireless. Leds and wireless card support are still missing. Signed-off-by: Wojciech Dubowik git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23217 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/kirkwood/patches/200-iconnect.patch | 123 +++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 target/linux/kirkwood/patches/200-iconnect.patch (limited to 'target/linux/kirkwood/patches') diff --git a/target/linux/kirkwood/patches/200-iconnect.patch b/target/linux/kirkwood/patches/200-iconnect.patch new file mode 100644 index 000000000..fd1e486ba --- /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 -- cgit v1.2.3