kernel: Add Iomega iConnect setup to kirkwood kernel.

This commit is contained in:
Arne Fitzenreiter
2012-03-03 19:33:40 +01:00
parent 36480f2318
commit 5ca1c0b97c
3 changed files with 282 additions and 40 deletions

View File

@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32.45
# Sat Oct 15 08:52:52 2011
# Linux kernel version: 2.6.32.57
# Fri Mar 2 20:47:53 2012
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -199,6 +199,7 @@ CONFIG_MACH_DREAMPLUG=y
CONFIG_MACH_GURUPLUG=y
CONFIG_MACH_TS219=y
CONFIG_MACH_OPENRD_BASE=y
CONFIG_MACH_ICONNECT=y
CONFIG_MACH_NAS6210=y
CONFIG_PLAT_ORION=y
@@ -1309,6 +1310,9 @@ CONFIG_PCNET32=m
CONFIG_AMD8111_ETH=m
CONFIG_ADAPTEC_STARFIRE=m
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y
CONFIG_FORCEDETH=m
# CONFIG_FORCEDETH_NAPI is not set
CONFIG_E100=m
@@ -1809,7 +1813,7 @@ CONFIG_IPWIRELESS=m
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
CONFIG_I2C=m
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
@@ -1843,7 +1847,7 @@ CONFIG_I2C_VIAPRO=m
# I2C system bus drivers (mostly embedded / system-on-chip)
#
CONFIG_I2C_GPIO=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_MV64XXX=y
CONFIG_I2C_OCORES=m
CONFIG_I2C_SIMTEC=m
@@ -2068,8 +2072,10 @@ CONFIG_MFD_SM501=m
CONFIG_HTC_PASIC3=m
# CONFIG_UCB1400_CORE is not set
CONFIG_TPS65010=m
# CONFIG_TWL4030_CORE is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_PMIC_DA903X is not set
CONFIG_MFD_WM8400=m
CONFIG_MFD_WM831X=m
CONFIG_MFD_WM8350=m
@@ -2661,7 +2667,6 @@ CONFIG_USB_ISP116X_HCD=m
# CONFIG_USB_ISP1760_HCD is not set
# CONFIG_USB_ISP1362_HCD is not set
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_SSB=y
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -2672,10 +2677,6 @@ CONFIG_USB_SL811_HCD=m
CONFIG_USB_R8A66597_HCD=m
CONFIG_USB_WHCI_HCD=m
CONFIG_USB_HWA_HCD=m
#
# Enable Host or Gadget support to see Inventra options
#
# CONFIG_USB_MUSB_HDRC is not set
#
@@ -2874,7 +2875,7 @@ CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
#
# iptables trigger is under Netfilter config (LED target)

View File

@@ -165,7 +165,7 @@ endif
ifeq "$(KCFG)" "-kirkwood"
# Add dreamplug,guruplug and icy 62x0 support on ARM-kirkwood
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch
endif
ifeq "$(MACHINE_TYPE)" "arm"

View File

@@ -1,6 +1,6 @@
diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c
--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c 2011-10-11 15:35:37.000000000 +0200
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.57/arch/arm/mach-kirkwood/dreamplug-setup.c
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/dreamplug-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/dreamplug-setup.c 2012-03-02 09:22:40.107199269 +0100
@@ -0,0 +1,140 @@
+/*
+ * arch/arm/mach-kirkwood/dreamplug-setup.c
@@ -142,10 +142,10 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.
+ .init_irq = kirkwood_init_irq,
+ .timer = &kirkwood_timer,
+MACHINE_END
diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c
--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c 2011-10-11 15:35:37.000000000 +0200
@@ -0,0 +1,131 @@
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.57/arch/arm/mach-kirkwood/guruplug-setup.c
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/guruplug-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/guruplug-setup.c 2012-03-02 23:36:51.627514981 +0100
@@ -0,0 +1,133 @@
+/*
+ * arch/arm/mach-kirkwood/guruplug-setup.c
+ *
@@ -159,6 +159,7 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6
+#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>
@@ -175,15 +176,16 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6
+ {
+ .name = "u-boot",
+ .offset = 0,
+ .size = SZ_1M
+ .size = SZ_1M,
+ .mask_flags = MTD_WRITEABLE, /* read only */
+ }, {
+ .name = "uImage",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = SZ_4M
+ .size = SZ_4M,
+ }, {
+ .name = "root",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL
+ .size = MTDPART_SIZ_FULL,
+ },
+};
+
@@ -277,9 +279,224 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6
+ .init_irq = kirkwood_init_irq,
+ .timer = &kirkwood_timer,
+MACHINE_END
diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig
--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 03:57:37.000000000 +0200
+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig 2011-10-15 17:06:55.816070291 +0200
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-2.6.32.57/arch/arm/mach-kirkwood/iconnect-setup.c
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/iconnect-setup.c 2012-03-03 00:15:42.757514706 +0100
@@ -0,0 +1,211 @@
+/*
+ * 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_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();
+ }
+ return 0;
+}
+subsys_initcall(iconnect_pci_init);
+
+MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
+ /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
+ .boot_params = 0x00000100,
+ .init_machine = iconnect_init,
+ .map_io = kirkwood_map_io,
+ .init_irq = kirkwood_init_irq,
+ .timer = &kirkwood_timer,
+MACHINE_END
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.57/arch/arm/mach-kirkwood/Kconfig
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/Kconfig 2012-02-13 20:29:11.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/Kconfig 2012-03-02 09:28:49.387192309 +0100
@@ -32,6 +32,18 @@
Say 'Y' here if you want your kernel to support the
Marvell SheevaPlug Reference Board.
@@ -299,10 +516,16 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/ar
config MACH_TS219
bool "QNAP TS-119 and TS-219 Turbo NAS"
help
@@ -44,6 +56,12 @@
@@ -44,6 +56,18 @@
Say 'Y' here if you want your kernel to support the
Marvell OpenRD Base Board.
+config MACH_ICONNECT
+ 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
+ bool "RaidSonic ICY BOX IB-NAS62x0"
+ help
@@ -312,10 +535,10 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/ar
endmenu
endif
diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile
--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile 2011-08-16 03:57:37.000000000 +0200
+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile 2011-10-15 17:07:16.346068829 +0200
@@ -5,7 +5,10 @@
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.57/arch/arm/mach-kirkwood/Makefile
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/Makefile 2012-02-13 20:29:11.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/Makefile 2012-03-02 09:26:39.447195212 +0100
@@ -5,7 +5,11 @@
obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
@@ -323,13 +546,27 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/a
+obj-$(CONFIG_MACH_DREAMPLUG) += dreamplug-setup.o
obj-$(CONFIG_MACH_TS219) += ts219-setup.o
obj-$(CONFIG_MACH_OPENRD_BASE) += openrd_base-setup.o
+obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o
+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o
obj-$(CONFIG_CPU_IDLE) += cpuidle.o
diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c
--- linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c 2011-10-16 09:57:35.268409525 +0200
@@ -0,0 +1,180 @@
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/mpp.h linux-2.6.32.57/arch/arm/mach-kirkwood/mpp.h
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/mpp.h 2012-02-13 20:29:11.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/mpp.h 2012-03-02 10:26:53.987196429 +0100
@@ -102,7 +102,9 @@
#define MPP11_PTP_CLK MPP( 11, 0xd, 1, 0, 1, 1, 1, 1 )
#define MPP11_SATA0_ACTn MPP( 11, 0x5, 0, 1, 0, 1, 1, 1 )
+
#define MPP12_GPO MPP( 12, 0x0, 0, 1, 1, 1, 1, 1 )
+#define MPP12_GPIO MPP( 12, 0x0, 1, 1, 1, 1, 1, 1 )
#define MPP12_SD_CLK MPP( 12, 0x1, 0, 1, 1, 1, 1, 1 )
#define MPP13_GPIO MPP( 13, 0x0, 1, 1, 1, 1, 1, 1 )
diff -Naur linux-2.6.32.57.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.57/arch/arm/mach-kirkwood/nas6210-setup.c
--- linux-2.6.32.57.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.32.57/arch/arm/mach-kirkwood/nas6210-setup.c 2012-03-02 23:37:35.077514152 +0100
@@ -0,0 +1,183 @@
+/*
+ * arch/arm/mach-kirkwood/nas6210-setup.c
+ *
@@ -343,11 +580,13 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.
+#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>
@@ -362,15 +601,16 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.
+ {
+ .name = "u-boot",
+ .offset = 0,
+ .size = SZ_1M
+ .size = SZ_1M,
+ .mask_flags = MTD_WRITEABLE, /* read only */
+ }, {
+ .name = "uImage",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = (SZ_1M*6)
+ .size = (SZ_1M*6),
+ }, {
+ .name = "root",
+ .offset = MTDPART_OFS_NXTBLK,
+ .size = MTDPART_SIZ_FULL
+ .size = MTDPART_SIZ_FULL,
+ },
+};
+
@@ -510,13 +750,14 @@ diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.
+ .init_irq = kirkwood_init_irq,
+ .timer = &kirkwood_timer,
+MACHINE_END
diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types
--- linux-2.6.32.45.org/arch/arm/tools/mach-types 2011-08-16 03:57:37.000000000 +0200
+++ linux-2.6.32.45/arch/arm/tools/mach-types 2011-10-15 17:05:46.486069811 +0200
@@ -2536,3 +2536,6 @@
diff -Naur linux-2.6.32.57.org/arch/arm/tools/mach-types linux-2.6.32.57/arch/arm/tools/mach-types
--- linux-2.6.32.57.org/arch/arm/tools/mach-types 2012-02-13 20:29:11.000000000 +0100
+++ linux-2.6.32.57/arch/arm/tools/mach-types 2012-03-02 09:25:26.787196718 +0100
@@ -2536,3 +2536,7 @@
mxt_td60 MACH_MXT_TD60 MXT_TD60 2550
esyx MACH_ESYX ESYX 2551
bulldog MACH_BULLDOG BULLDOG 2553
+guruplug MACH_GURUPLUG GURUPLUG 2601
+dreamplug MACH_DREAMPLUG DREAMPLUG 2659
+iconnect MACH_ICONNECT ICONNECT 2870
+nas6210 MACH_NAS6210 NAS6210 3104