Browse Source

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 <[email protected]>

SVN-Revision: 23217
Lars-Peter Clausen 15 years ago
parent
commit
f05a30206c

+ 1 - 0
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

+ 123 - 0
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 <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/irq.h>
++#include <linux/mtd/partitions.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/ethtool.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
++	}, {
++		.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

+ 17 - 0
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))