mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
add Iomega iConnect support
This commit is contained in:
parent
3937d90fed
commit
fdd0caf649
3 changed files with 233 additions and 5 deletions
|
@ -10,7 +10,7 @@ pkgname=('linux' 'linux-headers')
|
|||
_kernelname=${pkgname#linux}
|
||||
_basekernel=3.1
|
||||
pkgver=${_basekernel}.1
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
arch=('arm')
|
||||
url="http://www.kernel.org/"
|
||||
license=('GPL2')
|
||||
|
@ -28,7 +28,7 @@ source=("ftp://ftp.kernel.org/pub/linux/kernel/v3.x/linux-${_basekernel}.tar.bz2
|
|||
'usb-add-reset-resume-quirk-for-several-webcams.patch')
|
||||
md5sums=('8d43453f8159b2332ad410b19d86a931'
|
||||
'8eb92cc70e7f8d1d18a349ba8c029d7d'
|
||||
'2b2b459c34e55e68fc53ac30766ed139'
|
||||
'e930a6fee04e63514d2c366c94519bb2'
|
||||
'3f64ed9d71499fe9293dc671f4e4087e'
|
||||
'29628745258df910abfb8cb24ca3ccd9'
|
||||
'c9e6e8bb0774a89f7f9bd30a13be7532'
|
||||
|
|
|
@ -1,3 +1,210 @@
|
|||
diff -urN a/arch/arm/mach-kirkwood/iconnect-setup.c b/arch/arm/mach-kirkwood/iconnect-setup.c
|
||||
--- a/arch/arm/mach-kirkwood/iconnect-setup.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/arch/arm/mach-kirkwood/iconnect-setup.c 2011-11-20 13:09:53.497632586 +0100
|
||||
@@ -0,0 +1,203 @@
|
||||
+/*
|
||||
+ * 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 <linux/gpio.h>
|
||||
+#include <linux/gpio_keys.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/leds.h>
|
||||
+#include <linux/i2c.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 struct gpio_led iconnect_led_pins[] = {
|
||||
+ {
|
||||
+ .name = "iconnect:led_level",
|
||||
+ .default_trigger = "default-on",
|
||||
+ .gpio = 41,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:blue:power",
|
||||
+ .default_trigger = "default-on",
|
||||
+ .gpio = 42,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:red:power",
|
||||
+ .gpio = 43,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:blue:usb1",
|
||||
+ .gpio = 44,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:blue:usb2",
|
||||
+ .gpio = 45,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:blue:usb3",
|
||||
+ .gpio = 46,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:blue:usb4",
|
||||
+ .gpio = 47,
|
||||
+ },
|
||||
+ {
|
||||
+ .name = "iconnect:blue:otb",
|
||||
+ .gpio = 48,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+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,
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+#define ICONNECT_GPIO_KEY_RESET 12
|
||||
+#define ICONNECT_GPIO_KEY_OTB 35
|
||||
+
|
||||
+#define ICONNECT_SW_RESET 0x00
|
||||
+#define ICONNECT_SW_OTB 0x01
|
||||
+
|
||||
+static struct gpio_keys_button iconnect_buttons[] = {
|
||||
+ {
|
||||
+ .type = EV_SW,
|
||||
+ .code = ICONNECT_SW_RESET,
|
||||
+ .gpio = ICONNECT_GPIO_KEY_RESET,
|
||||
+ .desc = "Reset Button",
|
||||
+ .active_low = 1,
|
||||
+ .debounce_interval = 100,
|
||||
+ },
|
||||
+ {
|
||||
+ .type = EV_SW,
|
||||
+ .code = ICONNECT_SW_OTB,
|
||||
+ .gpio = ICONNECT_GPIO_KEY_OTB,
|
||||
+ .desc = "OTB Button",
|
||||
+ .active_low = 1,
|
||||
+ .debounce_interval = 100,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+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 = {
|
||||
+ MPP12_GPIO, /*Input for reset button*/
|
||||
+ MPP35_GPIO, /*Input for OTB button*/
|
||||
+ MPP41_GPIO,
|
||||
+ MPP42_GPIO,
|
||||
+ MPP43_GPIO,
|
||||
+ MPP44_GPIO,
|
||||
+ MPP45_GPIO,
|
||||
+ MPP46_GPIO,
|
||||
+ MPP47_GPIO,
|
||||
+ MPP48_GPIO,
|
||||
+ 0
|
||||
+};
|
||||
+
|
||||
+static struct i2c_board_info __initdata iconnect_i2c_rtc = {
|
||||
+ I2C_BOARD_INFO("lm63", 0x4c),
|
||||
+};
|
||||
+
|
||||
+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();
|
||||
+
|
||||
+ platform_device_register(&iconnect_leds);
|
||||
+ platform_device_register(&iconnect_button_device);
|
||||
+
|
||||
+ kirkwood_i2c_init();
|
||||
+ i2c_register_board_info(0, &iconnect_i2c_rtc, 1);
|
||||
+
|
||||
+}
|
||||
+
|
||||
+static int __init iconnect_pci_init(void)
|
||||
+{
|
||||
+ if (machine_is_iconnect())
|
||||
+ kirkwood_pcie_init(KW_PCIE0);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+subsys_initcall(iconnect_pci_init);
|
||||
+
|
||||
+
|
||||
+MACHINE_START(ICONNECT, "Iomega iConnect Wireless")
|
||||
+ .boot_params = 0x00000100,
|
||||
+ .init_machine = iconnect_init,
|
||||
+ .map_io = kirkwood_map_io,
|
||||
+ .init_early = kirkwood_init_early,
|
||||
+ .init_irq = kirkwood_init_irq,
|
||||
+ .timer = &kirkwood_timer,
|
||||
+MACHINE_END
|
||||
diff -urN a/arch/arm/mach-kirkwood/dockstar-setup.c b/arch/arm/mach-kirkwood/dockstar-setup.c
|
||||
--- a/arch/arm/mach-kirkwood/dockstar-setup.c 2011-10-03 14:25:23.000000000 -0600
|
||||
+++ b/arch/arm/mach-kirkwood/dockstar-setup.c 2011-10-17 15:00:50.000000000 -0600
|
||||
|
@ -394,7 +601,7 @@ diff -urN a/arch/arm/mach-kirkwood/guruplug-setup.c b/arch/arm/mach-kirkwood/gur
|
|||
diff -urN a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
|
||||
--- a/arch/arm/mach-kirkwood/Kconfig 2011-10-03 14:25:23.000000000 -0600
|
||||
+++ b/arch/arm/mach-kirkwood/Kconfig 2011-10-17 15:00:50.000000000 -0600
|
||||
@@ -64,6 +64,18 @@
|
||||
@@ -64,6 +64,25 @@
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Seagate FreeAgent DockStar.
|
||||
|
||||
|
@ -409,22 +616,31 @@ diff -urN a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
|
|||
+ help
|
||||
+ Say 'Y' here if you want your kernel to support the
|
||||
+ Seagate GoFlex Home.
|
||||
+
|
||||
+config MACH_ICONNECT
|
||||
+ bool "Iomega iConnect Wireless"
|
||||
+ help
|
||||
+ Say 'Y' here if you want your kernel to support the
|
||||
+ Iomega iConnect Wireless. Overrides Marvell RD-88F6281
|
||||
+ Reference Board.
|
||||
+
|
||||
config MACH_OPENRD
|
||||
bool
|
||||
|
||||
|
||||
diff -urN a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile
|
||||
--- a/arch/arm/mach-kirkwood/Makefile 2011-10-03 14:25:23.000000000 -0600
|
||||
+++ b/arch/arm/mach-kirkwood/Makefile 2011-10-17 15:00:50.000000000 -0600
|
||||
@@ -8,6 +8,8 @@
|
||||
@@ -8,6 +8,9 @@
|
||||
obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
|
||||
obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
|
||||
obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
|
||||
+obj-$(CONFIG_MACH_GOFLEXNET) += goflexnet-setup.o
|
||||
+obj-$(CONFIG_MACH_GOFLEXHOME) += goflexhome-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
|
||||
|
||||
diff -urN a/arch/arm/mach-kirkwood/sheevaplug-setup.c b/arch/arm/mach-kirkwood/sheevaplug-setup.c
|
||||
--- a/arch/arm/mach-kirkwood/sheevaplug-setup.c 2011-10-03 14:25:23.000000000 -0600
|
||||
+++ b/arch/arm/mach-kirkwood/sheevaplug-setup.c 2011-10-17 15:00:50.000000000 -0600
|
||||
|
@ -463,4 +679,15 @@ diff -urN a/arch/arm/mach-kirkwood/sheevaplug-setup.c b/arch/arm/mach-kirkwood/s
|
|||
+ MPP49_GPIO, /* LED Blue */
|
||||
0
|
||||
};
|
||||
|
||||
diff -urN a/arch/arm/mach-kirkwood/mpp.h b/arch/arm/mach-kirkwood/mpp.h
|
||||
--- a/arch/arm/mach-kirkwood/mpp.h 2011-11-11 21:19:27.000000000 +0100
|
||||
+++ b/arch/arm/mach-kirkwood/mpp.h 2011-11-19 16:22:10.023909984 +0100
|
||||
@@ -102,6 +102,7 @@
|
||||
#define MPP11_SATA0_ACTn MPP( 11, 0x5, 0, 1, 0, 1, 1, 1, 1 )
|
||||
|
||||
#define MPP12_GPO MPP( 12, 0x0, 0, 1, 1, 1, 1, 1, 1 )
|
||||
+#define MPP12_GPIO MPP( 12, 0x0, 1, 1, 1, 1, 1, 1, 1 )
|
||||
#define MPP12_SD_CLK MPP( 12, 0x1, 0, 1, 1, 1, 1, 1, 1 )
|
||||
#define MPP12_AU_SPDIF0 MPP( 12, 0xa, 0, 1, 0, 0, 0, 0, 1 )
|
||||
#define MPP12_SPI_MOSI MPP( 12, 0xb, 0, 1, 0, 0, 0, 0, 1 )
|
||||
|
|
|
@ -282,6 +282,7 @@ CONFIG_MACH_TS41X=y
|
|||
CONFIG_MACH_DOCKSTAR=y
|
||||
CONFIG_MACH_GOFLEXNET=y
|
||||
CONFIG_MACH_GOFLEXHOME=y
|
||||
CONFIG_MACH_ICONNECT=y
|
||||
CONFIG_MACH_OPENRD=y
|
||||
CONFIG_MACH_OPENRD_BASE=y
|
||||
CONFIG_MACH_OPENRD_CLIENT=y
|
||||
|
|
Loading…
Reference in a new issue