Wojciech Dubowik
2010-10-01 12:02:59 UTC
This patch adds support for Iomega iConnect Wireless. Leds and wireless card support are still missing.
Signed-off-by: Wojciech Dubowik <***@neratec.com>
---
Index: target/linux/kirkwood/profiles/300-Iconnect.mk
===================================================================
--- target/linux/kirkwood/profiles/300-Iconnect.mk (revision 0)
+++ target/linux/kirkwood/profiles/300-Iconnect.mk (revision 0)
@@ -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-lm63
+endef
+
+define Profile/Iconnect/Description
+ Iomega iConnect Wireless
+endef
+
+$(eval $(call Profile,Iconnect))
Index: target/linux/kirkwood/patches/200-iconnect.patch
===================================================================
--- target/linux/kirkwood/patches/200-iconnect.patch (revision 0)
+++ target/linux/kirkwood/patches/200-iconnect.patch (revision 0)
@@ -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
+@@ -1,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
Index: target/linux/kirkwood/config-default
===================================================================
--- target/linux/kirkwood/config-default (revision 23166)
+++ target/linux/kirkwood/config-default (working copy)
@@ -95,6 +95,7 @@
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
Index: target/linux/generic/config-2.6.35
===================================================================
--- target/linux/generic/config-2.6.35 (revision 23166)
+++ target/linux/generic/config-2.6.35 (working copy)
@@ -837,6 +837,7 @@
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C is not set
# CONFIG_I2C_MPC is not set
+# CONFIG_I2C_MV64XXX is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
Index: package/kernel/modules/hwmon.mk
===================================================================
--- package/kernel/modules/hwmon.mk (revision 23166)
+++ package/kernel/modules/hwmon.mk (working copy)
@@ -30,7 +30,21 @@
DEPENDS:=kmod-hwmon-core $(1)
endef
+define KernelPackage/hwmon-lm63
+ TITLE:=LM63/64 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM63
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm63.ko
+ AUTOLOAD:=$(call AutoLoad,60,lm63)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+define KernelPackage/hwmon-lm63/description
+ Kernel module for lm63 and lm64 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm63))
+
+
define KernelPackage/hwmon-lm75
TITLE:=LM75 monitoring support
KCONFIG:=CONFIG_SENSORS_LM75
Signed-off-by: Wojciech Dubowik <***@neratec.com>
---
Index: target/linux/kirkwood/profiles/300-Iconnect.mk
===================================================================
--- target/linux/kirkwood/profiles/300-Iconnect.mk (revision 0)
+++ target/linux/kirkwood/profiles/300-Iconnect.mk (revision 0)
@@ -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-lm63
+endef
+
+define Profile/Iconnect/Description
+ Iomega iConnect Wireless
+endef
+
+$(eval $(call Profile,Iconnect))
Index: target/linux/kirkwood/patches/200-iconnect.patch
===================================================================
--- target/linux/kirkwood/patches/200-iconnect.patch (revision 0)
+++ target/linux/kirkwood/patches/200-iconnect.patch (revision 0)
@@ -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
+@@ -1,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
Index: target/linux/kirkwood/config-default
===================================================================
--- target/linux/kirkwood/config-default (revision 23166)
+++ target/linux/kirkwood/config-default (working copy)
@@ -95,6 +95,7 @@
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
Index: target/linux/generic/config-2.6.35
===================================================================
--- target/linux/generic/config-2.6.35 (revision 23166)
+++ target/linux/generic/config-2.6.35 (working copy)
@@ -837,6 +837,7 @@
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C is not set
# CONFIG_I2C_MPC is not set
+# CONFIG_I2C_MV64XXX is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
Index: package/kernel/modules/hwmon.mk
===================================================================
--- package/kernel/modules/hwmon.mk (revision 23166)
+++ package/kernel/modules/hwmon.mk (working copy)
@@ -30,7 +30,21 @@
DEPENDS:=kmod-hwmon-core $(1)
endef
+define KernelPackage/hwmon-lm63
+ TITLE:=LM63/64 monitoring support
+ KCONFIG:=CONFIG_SENSORS_LM63
+ FILES:=$(LINUX_DIR)/drivers/hwmon/lm63.ko
+ AUTOLOAD:=$(call AutoLoad,60,lm63)
+ $(call AddDepends/hwmon,+kmod-i2c-core)
+endef
+define KernelPackage/hwmon-lm63/description
+ Kernel module for lm63 and lm64 thermal monitor chip
+endef
+
+$(eval $(call KernelPackage,hwmon-lm63))
+
+
define KernelPackage/hwmon-lm75
TITLE:=LM75 monitoring support
KCONFIG:=CONFIG_SENSORS_LM75