Hi Luka, On Tuesday 29 May 2012 01:07:32 Luka Perkov wrote: > kirkwood: use files instead of patches and add missing profiles > > Signed-off-by: Luka Perkov <open...@lukaperkov.net>
Though there are only 3 files here, I would rather keep them as patches against the vanilla kernel because that makes the upstream submission process easier. Now that kirkwood is migrating to Device Tree, we probably won't keep these files around much longer. > --- > > .../arch/arm/mach-kirkwood/iconnect-setup.c | 190 +++++++++++++ > .../arch/arm/mach-kirkwood/nas6210-setup.c | 189 ++++++++++++ > .../arch/arm/mach-kirkwood/nsa-310-setup.c | 273 ++++++++++++++++++ > target/linux/kirkwood/patches-3.3/100-boards.patch | 38 +++ > .../linux/kirkwood/patches-3.3/200-iconnect.patch | 218 -------------- > .../201-raidsonic-IB-NAS62x0-support.patch | 216 -------------- > .../kirkwood/patches-3.3/202-zyxel-nsa-310.patch | 300 -------------------- > target/linux/kirkwood/profiles/400-raidsonic.mk | 17 ++ > target/linux/kirkwood/profiles/500-zyxel.mk | 17 ++ > 9 files changed, 724 insertions(+), 734 deletions(-) > > diff --git a/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/iconnect- setup.c b/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/iconnect- setup.c > new file mode 100644 > index 0000000..4e8d192 > --- /dev/null > +++ b/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/iconnect-setup.c > @@ -0,0 +1,190 @@ > +/* > + * 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 <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: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*/ > + MPP42_GPIO, > + MPP43_GPIO, > + MPP44_GPIO, > + MPP45_GPIO, > + MPP46_GPIO, > + MPP47_GPIO, > + MPP48_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(); > + > + platform_device_register(&iconnect_leds); > + platform_device_register(&iconnect_button_device); > +} > + > +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") > + .atag_offset = 0x100, > + .init_machine = iconnect_init, > + .map_io = kirkwood_map_io, > + .init_early = kirkwood_init_early, > + .init_irq = kirkwood_init_irq, > + .timer = &kirkwood_timer, > + .restart = kirkwood_restart, > +MACHINE_END > diff --git a/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/nas6210- setup.c b/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/nas6210- setup.c > new file mode 100644 > index 0000000..a9040a6 > --- /dev/null > +++ b/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/nas6210-setup.c > @@ -0,0 +1,189 @@ > +/* > + * arch/arm/mach-kirkwood/nas6210-setup.c > + * > + * Raidsonic ICYBOX NAS6210 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/ata_platform.h> > +#include <linux/mtd/partitions.h> > +#include <linux/mv643xx_eth.h> > +#include <linux/gpio.h> > +#include <linux/gpio_keys.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" > + > +#define NAS6210_GPIO_POWER_OFF 24 > + > +static struct mtd_partition nas6210_nand_parts[] = { > + { > + .name = "uboot", > + .offset = 0, > + .size = SZ_512K > + }, { > + .name = "uboot_env", > + .offset = MTDPART_OFS_NXTBLK, > + .size = SZ_128K > + }, { > + .name = "kernel", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 3 * SZ_1M > + }, { > + .name = "rootfs", > + .offset = MTDPART_OFS_NXTBLK, > + .size = MTDPART_SIZ_FULL > + }, > +}; > + > +static struct mv643xx_eth_platform_data nas6210_ge00_data = { > + .phy_addr = MV643XX_ETH_PHY_ADDR(8), > +}; > + > +static struct mv_sata_platform_data nas6210_sata_data = { > + .n_ports = 2, > +}; > + > +static struct gpio_led nas6210_led_pins[] = { > + { > + .name = "status:green:power", > + .default_trigger = "default-on", > + .gpio = 25, > + .active_low = 0, > + }, > + { > + .name = "status:red:power", > + .default_trigger = "none", > + .gpio = 22, > + .active_low = 0, > + }, > + { > + .name = "status:red:usb_copy", > + .default_trigger = "none", > + .gpio = 27, > + .active_low = 0, > + }, > +}; > + > +static struct gpio_led_platform_data nas6210_led_data = { > + .leds = nas6210_led_pins, > + .num_leds = ARRAY_SIZE(nas6210_led_pins), > +}; > + > +static struct platform_device nas6210_leds = { > + .name = "leds-gpio", > + .id = -1, > + .dev = { > + .platform_data = &nas6210_led_data, > + } > +}; > + > +static struct gpio_keys_button nas6210_buttons[] = { > + { > + .code = KEY_COPY, > + .gpio = 29, > + .desc = "USB Copy", > + .active_low = 1, > + }, > + { > + .code = KEY_RESTART, > + .gpio = 28, > + .desc = "Reset", > + .active_low = 1, > + }, > +}; > + > +static struct gpio_keys_platform_data nas6210_button_data = { > + .buttons = nas6210_buttons, > + .nbuttons = ARRAY_SIZE(nas6210_buttons), > +}; > + > +static struct platform_device nas6210_button_device = { > + .name = "gpio-keys", > + .id = -1, > + .num_resources = 0, > + .dev = { > + .platform_data = &nas6210_button_data, > + } > +}; > + > +static unsigned int nas6210_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, > + MPP22_GPIO, /* Power LED red */ > + MPP24_GPIO, /* Power off device */ > + MPP25_GPIO, /* Power LED green */ > + MPP27_GPIO, /* USB transfer LED */ > + MPP28_GPIO, /* Reset button */ > + MPP29_GPIO, /* USB Copy button */ > + 0 > +}; > + > +static void nas6210_power_off(void) > +{ > + gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); > +} > + > +static void __init nas6210_init(void) > +{ > + /* > + * Basic setup. Needs to be called early. > + */ > + kirkwood_init(); > + kirkwood_mpp_conf(nas6210_mpp_config); > + > + kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); > + kirkwood_ehci_init(); > + kirkwood_ge00_init(&nas6210_ge00_data); > + kirkwood_sata_init(&nas6210_sata_data); > + kirkwood_uart0_init(); > + platform_device_register(&nas6210_leds); > + platform_device_register(&nas6210_button_device); > + if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && > + gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) > + pm_power_off = nas6210_power_off; > + else > + pr_err("nas6210: failed to configure power-off GPIO\n"); > +} > + > +static int __init nas6210_pci_init(void) > +{ > + if (machine_is_nas6210()) { > + u32 dev, rev; > + > + kirkwood_pcie_id(&dev, &rev); > + if (dev == MV88F6282_DEV_ID) > + kirkwood_pcie_init(KW_PCIE1 | KW_PCIE0); > + else > + kirkwood_pcie_init(KW_PCIE0); > + } > + > + return 0; > +} > +subsys_initcall(nas6210_pci_init); > + > +MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS6210") > + /* Maintainer: <gmbnomis at gmail dot com> */ > + .atag_offset = 0x100, > + .init_machine = nas6210_init, > + .map_io = kirkwood_map_io, > + .init_early = kirkwood_init_early, > + .init_irq = kirkwood_init_irq, > + .timer = &kirkwood_timer, > +MACHINE_END > diff --git a/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/nsa-310- setup.c b/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/nsa-310- setup.c > new file mode 100644 > index 0000000..15dc526 > --- /dev/null > +++ b/target/linux/kirkwood/files-3.3/arch/arm/mach-kirkwood/nsa-310-setup.c > @@ -0,0 +1,273 @@ > +/* > + * arch/arm/mach-kirkwood/nsa-310-setup.c > + * > + * ZyXEL NSA-310 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/ata_platform.h> > +#include <linux/i2c.h> > +#include <linux/mtd/mtd.h> > +#include <linux/mtd/partitions.h> > +#include <linux/gpio.h> > +#include <linux/gpio_keys.h> > +#include <linux/input.h> > +#include <linux/leds.h> > +#include <linux/delay.h> > + > +#include <asm/mach-types.h> > +#include <asm/mach/arch.h> > +#include <mach/kirkwood.h> > +#include "common.h" > +#include "mpp.h" > + > +#define NSA310_GPIO_LED_ESATA_GREEN 12 > +#define NSA310_GPIO_LED_ESATA_RED 13 > +#define NSA310_GPIO_LED_USB_GREEN 15 > +#define NSA310_GPIO_LED_USB_RED 16 > +#define NSA310_GPIO_USB_POWER_OFF 21 > +#define NSA310_GPIO_LED_SYS_GREEN 28 > +#define NSA310_GPIO_LED_SYS_RED 29 > +#define NSA310_GPIO_KEY_RESTART 36 > +#define NSA310_GPIO_KEY_COPY 37 > +#define NSA310_GPIO_LED_COPY_GREEN 39 > +#define NSA310_GPIO_LED_COPY_RED 40 > +#define NSA310_GPIO_LED_HDD_GREEN 41 > +#define NSA310_GPIO_LED_HDD_RED 42 > +#define NSA310_GPIO_BUZZER 44 > +#define NSA310_GPIO_KEY_POWER 46 > +#define NSA310_GPIO_POWER_OFF 48 > + > + > +static unsigned int nsa310_mpp_config[] __initdata = { > + MPP12_GPIO, > + MPP13_GPIO, > + MPP15_GPIO, > + MPP16_GPIO, > + MPP21_GPIO, > + MPP28_GPIO, > + MPP29_GPIO, > + MPP36_GPIO, > + MPP37_GPIO, > + MPP39_GPIO, > + MPP40_GPIO, > + MPP41_GPIO, > + MPP42_GPIO, > + MPP44_GPIO, > + MPP46_GPIO, > + MPP48_GPIO, > + 0 > +}; > + > +static struct mtd_partition nsa310_mtd_parts[] = { > + { > + .name = "uboot", > + .offset = 0, > + .size = 0x100000, > + .mask_flags = MTD_WRITEABLE, > + }, { > + .name = "uboot_env", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0x80000, > + }, { > + .name = "key_store", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0x80000, > + }, { > + .name = "info", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0x80000, > + }, { > + .name = "etc", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0xa00000, > + }, { > + .name = "kernel_1", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0xa00000, > + }, { > + .name = "rootfs1", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0x2fc0000, > + }, { > + .name = "kernel_2", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0xa00000, > + }, { > + .name = "rootfs2", > + .offset = MTDPART_OFS_NXTBLK, > + .size = 0x2fc0000, > + }, > +}; > + > +static struct gpio_led nsa310_leds[] = { > + { > + .name = "nsa310:green:sys", > + .gpio = NSA310_GPIO_LED_SYS_GREEN, > + }, { > + .name = "nsa310:red:sys", > + .gpio = NSA310_GPIO_LED_SYS_RED, > + }, { > + .name = "nsa310:green:hdd", > + .gpio = NSA310_GPIO_LED_HDD_GREEN, > + }, { > + .name = "nsa310:red:hdd", > + .gpio = NSA310_GPIO_LED_HDD_RED, > + }, { > + .name = "nsa310:green:esata", > + .gpio = NSA310_GPIO_LED_ESATA_GREEN, > + }, { > + .name = "nsa310:red:esata", > + .gpio = NSA310_GPIO_LED_ESATA_RED, > + }, { > + .name = "nsa310:green:usb", > + .gpio = NSA310_GPIO_LED_USB_GREEN, > + }, { > + .name = "nsa310:red:usb", > + .gpio = NSA310_GPIO_LED_USB_RED, > + }, { > + .name = "nsa310:green:copy", > + .gpio = NSA310_GPIO_LED_COPY_GREEN, > + }, { > + .name = "nsa310:red:copy", > + .gpio = NSA310_GPIO_LED_COPY_RED, > + }, > +}; > + > +static struct gpio_led_platform_data nsa310_leds_data = { > + .leds = nsa310_leds, > + .num_leds = ARRAY_SIZE(nsa310_leds), > +}; > + > +static struct platform_device nsa310_leds_device = { > + .name = "leds-gpio", > + .id = -1, > + .dev = { > + .platform_data = &nsa310_leds_data, > + } > +}; > + > +static struct gpio_keys_button nsa310_buttons[] = { > + { > + .desc = "Power Button", > + .code = KEY_POWER, > + .type = EV_KEY, > + .gpio = NSA310_GPIO_KEY_POWER, > + .debounce_interval = 1000, > + }, { > + .desc = "Copy Button", > + .code = KEY_COPY, > + .type = EV_KEY, > + .gpio = NSA310_GPIO_KEY_COPY, > + .active_low = 1, > + .debounce_interval = 1000, > + }, { > + .desc = "Reset Button", > + .code = KEY_RESTART, > + .type = EV_KEY, > + .gpio = NSA310_GPIO_KEY_RESTART, > + .active_low = 1, > + .debounce_interval = 1000, > + }, > +}; > + > +static struct gpio_keys_platform_data nsa310_keys_data = { > + .buttons = nsa310_buttons, > + .nbuttons = ARRAY_SIZE(nsa310_buttons), > +}; > + > +static struct platform_device nsa310_keys_device = { > + .name = "gpio-keys", > + .id = -1, > + .dev = { > + .platform_data = &nsa310_keys_data, > + } > +}; > + > +static struct i2c_board_info __initdata nsa310_i2c_info[] = { > + { I2C_BOARD_INFO("adt7476", 0x2e) }, > +}; > + > +static struct mv_sata_platform_data nsa310_sata_data = { > + .n_ports = 2, > +}; > + > +static void nsa310_power_off(void) > +{ > + gpio_set_value(NSA310_GPIO_POWER_OFF, 1); > +} > + > +static int __init nsa310_gpio_request(unsigned int gpio, unsigned long flags, > + const char *label) > +{ > + int err; > + > + err = gpio_request_one(gpio, flags, label); > + if (err) > + pr_err("NSA-310: can't setup GPIO%u (%s), err=%d\n", > + gpio, label, err); > + > + return err; > +} > + > +static void __init nsa310_gpio_init(void) > +{ > + int err; > + > + err = nsa310_gpio_request(NSA310_GPIO_POWER_OFF, GPIOF_OUT_INIT_LOW, > + "Power Off"); > + if (!err) > + pm_power_off = nsa310_power_off; > + > + nsa310_gpio_request(NSA310_GPIO_USB_POWER_OFF, GPIOF_OUT_INIT_LOW, > + "USB Power Off"); > +} > + > +static void __init nsa310_init(void) > +{ > + u32 dev, rev; > + > + kirkwood_init(); > + kirkwood_mpp_conf(nsa310_mpp_config); > + > + nsa310_gpio_init(); > + > + kirkwood_nand_init(ARRAY_AND_SIZE(nsa310_mtd_parts), 35); > + kirkwood_ehci_init(); > + > + kirkwood_pcie_id(&dev, &rev); > + > + kirkwood_sata_init(&nsa310_sata_data); > + kirkwood_uart0_init(); > + > + i2c_register_board_info(0, ARRAY_AND_SIZE(nsa310_i2c_info)); > + kirkwood_i2c_init(); > + > + platform_device_register(&nsa310_leds_device); > + platform_device_register(&nsa310_keys_device); > +} > + > +static int __init nsa310_pci_init(void) > +{ > + if (machine_is_nsa310()) > + kirkwood_pcie_init(KW_PCIE0); > + > + return 0; > +} > +subsys_initcall(nsa310_pci_init); > + > +MACHINE_START(NSA310, "ZyXEL NSA-310") > + .atag_offset = 0x100, > + .init_machine = nsa310_init, > + .map_io = kirkwood_map_io, > + .init_early = kirkwood_init_early, > + .init_irq = kirkwood_init_irq, > + .timer = &kirkwood_timer, > + .restart = kirkwood_restart, > +MACHINE_END > diff --git a/target/linux/kirkwood/patches-3.3/100-boards.patch b/target/linux/kirkwood/patches-3.3/100-boards.patch > new file mode 100644 > index 0000000..4fe376e > --- /dev/null > +++ b/target/linux/kirkwood/patches-3.3/100-boards.patch > @@ -0,0 +1,38 @@ > +--- a/arch/arm/mach-kirkwood/Makefile > ++++ b/arch/arm/mach-kirkwood/Makefile > +@@ -18,5 +18,8 @@ obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2 > + obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2- common.o > + obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2- common.o > + obj-$(CONFIG_MACH_T5325) += t5325-setup.o > ++obj-$(CONFIG_MACH_ICONNECT) += iconnect-setup.o > ++obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o > ++obj-$(CONFIG_MACH_NSA310) += nsa-310-setup.o > + > + obj-$(CONFIG_CPU_IDLE) += cpuidle.o > +--- a/arch/arm/mach-kirkwood/Kconfig > ++++ b/arch/arm/mach-kirkwood/Kconfig > +@@ -130,6 +130,24 @@ config MACH_T5325 > + Say 'Y' here if you want your kernel to support the > + HP t5325 Thin Client. > + > ++config MACH_ICONNECT > ++ bool "Iomega iConnect Wireless" > ++ help > ++ Say 'Y' here if you want your kernel to support the > ++ Iomega iConnect Wireless. > ++ > ++config MACH_NAS6210 > ++ bool "RaidSonic ICY BOX IB-NAS6210" > ++ help > ++ Say 'Y' here if you want your kernel to support the > ++ RaidSonic ICY BOX IB-NAS6210 device. > ++ > ++config MACH_NSA310 > ++ bool "ZyXEL NSA-310" > ++ help > ++ Say 'Y' here if you want your kernel to support the > ++ ZyXEL NSA-310 board. > ++ > + endmenu > + > + endif > diff --git a/target/linux/kirkwood/patches-3.3/200-iconnect.patch b/target/linux/kirkwood/patches-3.3/200-iconnect.patch > deleted file mode 100644 > index 5a46ee7..0000000 > --- a/target/linux/kirkwood/patches-3.3/200-iconnect.patch > +++ /dev/null > @@ -1,218 +0,0 @@ > ---- a/arch/arm/mach-kirkwood/Makefile > -+++ b/arch/arm/mach-kirkwood/Makefile > -@@ -8,6 +8,7 @@ obj-$(CONFIG_MACH_SHEEVAPLUG) += sheeva > - 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_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 > -@@ -130,6 +130,12 @@ config MACH_T5325 > - Say 'Y' here if you want your kernel to support the > - HP t5325 Thin Client. > - > -+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,190 @@ > -+/* > -+ * 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 <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: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*/ > -+ MPP42_GPIO, > -+ MPP43_GPIO, > -+ MPP44_GPIO, > -+ MPP45_GPIO, > -+ MPP46_GPIO, > -+ MPP47_GPIO, > -+ MPP48_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(); > -+ > -+ platform_device_register(&iconnect_leds); > -+ platform_device_register(&iconnect_button_device); > -+} > -+ > -+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") > -+ .atag_offset = 0x100, > -+ .init_machine = iconnect_init, > -+ .map_io = kirkwood_map_io, > -+ .init_early = kirkwood_init_early, > -+ .init_irq = kirkwood_init_irq, > -+ .timer = &kirkwood_timer, > -+ .restart = kirkwood_restart, > -+MACHINE_END > diff --git a/target/linux/kirkwood/patches-3.3/201-raidsonic-IB-NAS62x0- support.patch b/target/linux/kirkwood/patches-3.3/201-raidsonic-IB-NAS62x0- support.patch > deleted file mode 100644 > index b7fcb04..0000000 > --- a/target/linux/kirkwood/patches-3.3/201-raidsonic-IB-NAS62x0- support.patch > +++ /dev/null > @@ -1,216 +0,0 @@ > ---- /dev/null > -+++ b/arch/arm/mach-kirkwood/nas6210-setup.c > -@@ -0,0 +1,189 @@ > -+/* > -+ * arch/arm/mach-kirkwood/nas6210-setup.c > -+ * > -+ * Raidsonic ICYBOX NAS6210 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/ata_platform.h> > -+#include <linux/mtd/partitions.h> > -+#include <linux/mv643xx_eth.h> > -+#include <linux/gpio.h> > -+#include <linux/gpio_keys.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" > -+ > -+#define NAS6210_GPIO_POWER_OFF 24 > -+ > -+static struct mtd_partition nas6210_nand_parts[] = { > -+ { > -+ .name = "uboot", > -+ .offset = 0, > -+ .size = SZ_512K > -+ }, { > -+ .name = "uboot_env", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = SZ_128K > -+ }, { > -+ .name = "kernel", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 3 * SZ_1M > -+ }, { > -+ .name = "rootfs", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = MTDPART_SIZ_FULL > -+ }, > -+}; > -+ > -+static struct mv643xx_eth_platform_data nas6210_ge00_data = { > -+ .phy_addr = MV643XX_ETH_PHY_ADDR(8), > -+}; > -+ > -+static struct mv_sata_platform_data nas6210_sata_data = { > -+ .n_ports = 2, > -+}; > -+ > -+static struct gpio_led nas6210_led_pins[] = { > -+ { > -+ .name = "status:green:power", > -+ .default_trigger = "default-on", > -+ .gpio = 25, > -+ .active_low = 0, > -+ }, > -+ { > -+ .name = "status:red:power", > -+ .default_trigger = "none", > -+ .gpio = 22, > -+ .active_low = 0, > -+ }, > -+ { > -+ .name = "status:red:usb_copy", > -+ .default_trigger = "none", > -+ .gpio = 27, > -+ .active_low = 0, > -+ }, > -+}; > -+ > -+static struct gpio_led_platform_data nas6210_led_data = { > -+ .leds = nas6210_led_pins, > -+ .num_leds = ARRAY_SIZE(nas6210_led_pins), > -+}; > -+ > -+static struct platform_device nas6210_leds = { > -+ .name = "leds-gpio", > -+ .id = -1, > -+ .dev = { > -+ .platform_data = &nas6210_led_data, > -+ } > -+}; > -+ > -+static struct gpio_keys_button nas6210_buttons[] = { > -+ { > -+ .code = KEY_COPY, > -+ .gpio = 29, > -+ .desc = "USB Copy", > -+ .active_low = 1, > -+ }, > -+ { > -+ .code = KEY_RESTART, > -+ .gpio = 28, > -+ .desc = "Reset", > -+ .active_low = 1, > -+ }, > -+}; > -+ > -+static struct gpio_keys_platform_data nas6210_button_data = { > -+ .buttons = nas6210_buttons, > -+ .nbuttons = ARRAY_SIZE(nas6210_buttons), > -+}; > -+ > -+static struct platform_device nas6210_button_device = { > -+ .name = "gpio-keys", > -+ .id = -1, > -+ .num_resources = 0, > -+ .dev = { > -+ .platform_data = &nas6210_button_data, > -+ } > -+}; > -+ > -+static unsigned int nas6210_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, > -+ MPP22_GPIO, /* Power LED red */ > -+ MPP24_GPIO, /* Power off device */ > -+ MPP25_GPIO, /* Power LED green */ > -+ MPP27_GPIO, /* USB transfer LED */ > -+ MPP28_GPIO, /* Reset button */ > -+ MPP29_GPIO, /* USB Copy button */ > -+ 0 > -+}; > -+ > -+static void nas6210_power_off(void) > -+{ > -+ gpio_set_value(NAS6210_GPIO_POWER_OFF, 1); > -+} > -+ > -+static void __init nas6210_init(void) > -+{ > -+ /* > -+ * Basic setup. Needs to be called early. > -+ */ > -+ kirkwood_init(); > -+ kirkwood_mpp_conf(nas6210_mpp_config); > -+ > -+ kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25); > -+ kirkwood_ehci_init(); > -+ kirkwood_ge00_init(&nas6210_ge00_data); > -+ kirkwood_sata_init(&nas6210_sata_data); > -+ kirkwood_uart0_init(); > -+ platform_device_register(&nas6210_leds); > -+ platform_device_register(&nas6210_button_device); > -+ if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 && > -+ gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0) > -+ pm_power_off = nas6210_power_off; > -+ else > -+ pr_err("nas6210: failed to configure power-off GPIO\n"); > -+} > -+ > -+static int __init nas6210_pci_init(void) > -+{ > -+ if (machine_is_nas6210()) { > -+ u32 dev, rev; > -+ > -+ kirkwood_pcie_id(&dev, &rev); > -+ if (dev == MV88F6282_DEV_ID) > -+ kirkwood_pcie_init(KW_PCIE1 | KW_PCIE0); > -+ else > -+ kirkwood_pcie_init(KW_PCIE0); > -+ } > -+ > -+ return 0; > -+} > -+subsys_initcall(nas6210_pci_init); > -+ > -+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS6210") > -+ /* Maintainer: <gmbnomis at gmail dot com> */ > -+ .atag_offset = 0x100, > -+ .init_machine = nas6210_init, > -+ .map_io = kirkwood_map_io, > -+ .init_early = kirkwood_init_early, > -+ .init_irq = kirkwood_init_irq, > -+ .timer = &kirkwood_timer, > -+MACHINE_END > ---- a/arch/arm/mach-kirkwood/Kconfig > -+++ b/arch/arm/mach-kirkwood/Kconfig > -@@ -136,6 +136,12 @@ config MACH_ICONNECT > - Say 'Y' here if you want your kernel to support the > - Iomega iConnect Wireless. > - > -+config MACH_NAS6210 > -+ bool "RaidSonic ICY BOX IB-NAS6210" > -+ help > -+ Say 'Y' here if you want your kernel to support the > -+ RaidSonic ICY BOX IB-NAS6210 device. > -+ > - endmenu > - > - endif > ---- a/arch/arm/mach-kirkwood/Makefile > -+++ b/arch/arm/mach-kirkwood/Makefile > -@@ -19,5 +19,6 @@ obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2 > - obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2- common.o > - obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2- common.o > - obj-$(CONFIG_MACH_T5325) += t5325-setup.o > -+obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o > - > - obj-$(CONFIG_CPU_IDLE) += cpuidle.o > diff --git a/target/linux/kirkwood/patches-3.3/202-zyxel-nsa-310.patch b/target/linux/kirkwood/patches-3.3/202-zyxel-nsa-310.patch > deleted file mode 100644 > index cb84297..0000000 > --- a/target/linux/kirkwood/patches-3.3/202-zyxel-nsa-310.patch > +++ /dev/null > @@ -1,300 +0,0 @@ > ---- a/arch/arm/mach-kirkwood/Kconfig > -+++ b/arch/arm/mach-kirkwood/Kconfig > -@@ -142,6 +142,12 @@ config MACH_NAS6210 > - Say 'Y' here if you want your kernel to support the > - RaidSonic ICY BOX IB-NAS6210 device. > - > -+config MACH_NSA310 > -+ bool "ZyXEL NSA-310" > -+ help > -+ Say 'Y' here if you want your kernel to support the > -+ ZyXEL NSA-310 board. > -+ > - endmenu > - > - endif > ---- a/arch/arm/mach-kirkwood/Makefile > -+++ b/arch/arm/mach-kirkwood/Makefile > -@@ -20,5 +20,6 @@ obj-$(CONFIG_MACH_NET2BIG_V2) += netxbi > - obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2- common.o > - obj-$(CONFIG_MACH_T5325) += t5325-setup.o > - obj-$(CONFIG_MACH_NAS6210) += nas6210-setup.o > -+obj-$(CONFIG_MACH_NSA310) += nsa-310-setup.o > - > - obj-$(CONFIG_CPU_IDLE) += cpuidle.o > ---- /dev/null > -+++ b/arch/arm/mach-kirkwood/nsa-310-setup.c > -@@ -0,0 +1,273 @@ > -+/* > -+ * arch/arm/mach-kirkwood/nsa-310-setup.c > -+ * > -+ * ZyXEL NSA-310 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/ata_platform.h> > -+#include <linux/i2c.h> > -+#include <linux/mtd/mtd.h> > -+#include <linux/mtd/partitions.h> > -+#include <linux/gpio.h> > -+#include <linux/gpio_keys.h> > -+#include <linux/input.h> > -+#include <linux/leds.h> > -+#include <linux/delay.h> > -+ > -+#include <asm/mach-types.h> > -+#include <asm/mach/arch.h> > -+#include <mach/kirkwood.h> > -+#include "common.h" > -+#include "mpp.h" > -+ > -+#define NSA310_GPIO_LED_ESATA_GREEN 12 > -+#define NSA310_GPIO_LED_ESATA_RED 13 > -+#define NSA310_GPIO_LED_USB_GREEN 15 > -+#define NSA310_GPIO_LED_USB_RED 16 > -+#define NSA310_GPIO_USB_POWER_OFF 21 > -+#define NSA310_GPIO_LED_SYS_GREEN 28 > -+#define NSA310_GPIO_LED_SYS_RED 29 > -+#define NSA310_GPIO_KEY_RESTART 36 > -+#define NSA310_GPIO_KEY_COPY 37 > -+#define NSA310_GPIO_LED_COPY_GREEN 39 > -+#define NSA310_GPIO_LED_COPY_RED 40 > -+#define NSA310_GPIO_LED_HDD_GREEN 41 > -+#define NSA310_GPIO_LED_HDD_RED 42 > -+#define NSA310_GPIO_BUZZER 44 > -+#define NSA310_GPIO_KEY_POWER 46 > -+#define NSA310_GPIO_POWER_OFF 48 > -+ > -+ > -+static unsigned int nsa310_mpp_config[] __initdata = { > -+ MPP12_GPIO, > -+ MPP13_GPIO, > -+ MPP15_GPIO, > -+ MPP16_GPIO, > -+ MPP21_GPIO, > -+ MPP28_GPIO, > -+ MPP29_GPIO, > -+ MPP36_GPIO, > -+ MPP37_GPIO, > -+ MPP39_GPIO, > -+ MPP40_GPIO, > -+ MPP41_GPIO, > -+ MPP42_GPIO, > -+ MPP44_GPIO, > -+ MPP46_GPIO, > -+ MPP48_GPIO, > -+ 0 > -+}; > -+ > -+static struct mtd_partition nsa310_mtd_parts[] = { > -+ { > -+ .name = "uboot", > -+ .offset = 0, > -+ .size = 0x100000, > -+ .mask_flags = MTD_WRITEABLE, > -+ }, { > -+ .name = "uboot_env", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0x80000, > -+ }, { > -+ .name = "key_store", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0x80000, > -+ }, { > -+ .name = "info", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0x80000, > -+ }, { > -+ .name = "etc", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0xa00000, > -+ }, { > -+ .name = "kernel_1", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0xa00000, > -+ }, { > -+ .name = "rootfs1", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0x2fc0000, > -+ }, { > -+ .name = "kernel_2", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0xa00000, > -+ }, { > -+ .name = "rootfs2", > -+ .offset = MTDPART_OFS_NXTBLK, > -+ .size = 0x2fc0000, > -+ }, > -+}; > -+ > -+static struct gpio_led nsa310_leds[] = { > -+ { > -+ .name = "nsa310:green:sys", > -+ .gpio = NSA310_GPIO_LED_SYS_GREEN, > -+ }, { > -+ .name = "nsa310:red:sys", > -+ .gpio = NSA310_GPIO_LED_SYS_RED, > -+ }, { > -+ .name = "nsa310:green:hdd", > -+ .gpio = NSA310_GPIO_LED_HDD_GREEN, > -+ }, { > -+ .name = "nsa310:red:hdd", > -+ .gpio = NSA310_GPIO_LED_HDD_RED, > -+ }, { > -+ .name = "nsa310:green:esata", > -+ .gpio = NSA310_GPIO_LED_ESATA_GREEN, > -+ }, { > -+ .name = "nsa310:red:esata", > -+ .gpio = NSA310_GPIO_LED_ESATA_RED, > -+ }, { > -+ .name = "nsa310:green:usb", > -+ .gpio = NSA310_GPIO_LED_USB_GREEN, > -+ }, { > -+ .name = "nsa310:red:usb", > -+ .gpio = NSA310_GPIO_LED_USB_RED, > -+ }, { > -+ .name = "nsa310:green:copy", > -+ .gpio = NSA310_GPIO_LED_COPY_GREEN, > -+ }, { > -+ .name = "nsa310:red:copy", > -+ .gpio = NSA310_GPIO_LED_COPY_RED, > -+ }, > -+}; > -+ > -+static struct gpio_led_platform_data nsa310_leds_data = { > -+ .leds = nsa310_leds, > -+ .num_leds = ARRAY_SIZE(nsa310_leds), > -+}; > -+ > -+static struct platform_device nsa310_leds_device = { > -+ .name = "leds-gpio", > -+ .id = -1, > -+ .dev = { > -+ .platform_data = &nsa310_leds_data, > -+ } > -+}; > -+ > -+static struct gpio_keys_button nsa310_buttons[] = { > -+ { > -+ .desc = "Power Button", > -+ .code = KEY_POWER, > -+ .type = EV_KEY, > -+ .gpio = NSA310_GPIO_KEY_POWER, > -+ .debounce_interval = 1000, > -+ }, { > -+ .desc = "Copy Button", > -+ .code = KEY_COPY, > -+ .type = EV_KEY, > -+ .gpio = NSA310_GPIO_KEY_COPY, > -+ .active_low = 1, > -+ .debounce_interval = 1000, > -+ }, { > -+ .desc = "Reset Button", > -+ .code = KEY_RESTART, > -+ .type = EV_KEY, > -+ .gpio = NSA310_GPIO_KEY_RESTART, > -+ .active_low = 1, > -+ .debounce_interval = 1000, > -+ }, > -+}; > -+ > -+static struct gpio_keys_platform_data nsa310_keys_data = { > -+ .buttons = nsa310_buttons, > -+ .nbuttons = ARRAY_SIZE(nsa310_buttons), > -+}; > -+ > -+static struct platform_device nsa310_keys_device = { > -+ .name = "gpio-keys", > -+ .id = -1, > -+ .dev = { > -+ .platform_data = &nsa310_keys_data, > -+ } > -+}; > -+ > -+static struct i2c_board_info __initdata nsa310_i2c_info[] = { > -+ { I2C_BOARD_INFO("adt7476", 0x2e) }, > -+}; > -+ > -+static struct mv_sata_platform_data nsa310_sata_data = { > -+ .n_ports = 2, > -+}; > -+ > -+static void nsa310_power_off(void) > -+{ > -+ gpio_set_value(NSA310_GPIO_POWER_OFF, 1); > -+} > -+ > -+static int __init nsa310_gpio_request(unsigned int gpio, unsigned long flags, > -+ const char *label) > -+{ > -+ int err; > -+ > -+ err = gpio_request_one(gpio, flags, label); > -+ if (err) > -+ pr_err("NSA-310: can't setup GPIO%u (%s), err=%d\n", > -+ gpio, label, err); > -+ > -+ return err; > -+} > -+ > -+static void __init nsa310_gpio_init(void) > -+{ > -+ int err; > -+ > -+ err = nsa310_gpio_request(NSA310_GPIO_POWER_OFF, GPIOF_OUT_INIT_LOW, > -+ "Power Off"); > -+ if (!err) > -+ pm_power_off = nsa310_power_off; > -+ > -+ nsa310_gpio_request(NSA310_GPIO_USB_POWER_OFF, GPIOF_OUT_INIT_LOW, > -+ "USB Power Off"); > -+} > -+ > -+static void __init nsa310_init(void) > -+{ > -+ u32 dev, rev; > -+ > -+ kirkwood_init(); > -+ kirkwood_mpp_conf(nsa310_mpp_config); > -+ > -+ nsa310_gpio_init(); > -+ > -+ kirkwood_nand_init(ARRAY_AND_SIZE(nsa310_mtd_parts), 35); > -+ kirkwood_ehci_init(); > -+ > -+ kirkwood_pcie_id(&dev, &rev); > -+ > -+ kirkwood_sata_init(&nsa310_sata_data); > -+ kirkwood_uart0_init(); > -+ > -+ i2c_register_board_info(0, ARRAY_AND_SIZE(nsa310_i2c_info)); > -+ kirkwood_i2c_init(); > -+ > -+ platform_device_register(&nsa310_leds_device); > -+ platform_device_register(&nsa310_keys_device); > -+} > -+ > -+static int __init nsa310_pci_init(void) > -+{ > -+ if (machine_is_nsa310()) > -+ kirkwood_pcie_init(KW_PCIE0); > -+ > -+ return 0; > -+} > -+subsys_initcall(nsa310_pci_init); > -+ > -+MACHINE_START(NSA310, "ZyXEL NSA-310") > -+ .atag_offset = 0x100, > -+ .init_machine = nsa310_init, > -+ .map_io = kirkwood_map_io, > -+ .init_early = kirkwood_init_early, > -+ .init_irq = kirkwood_init_irq, > -+ .timer = &kirkwood_timer, > -+ .restart = kirkwood_restart, > -+MACHINE_END > diff --git a/target/linux/kirkwood/profiles/400-raidsonic.mk b/target/linux/kirkwood/profiles/400-raidsonic.mk > new file mode 100644 > index 0000000..93eea89 > --- /dev/null > +++ b/target/linux/kirkwood/profiles/400-raidsonic.mk > @@ -0,0 +1,17 @@ > +# > +# Copyright (C) 2012 OpenWrt.org > +# > +# This is free software, licensed under the GNU General Public License v2. > +# See /LICENSE for more information. > +# > + > +define Profile/RaidSonic > + NAME:=ICY BOX IB-NAS62x0 > + PACKAGES:= > +endef > + > +define Profile/RaidSonic/Description > + RaidSonic ICY BOX IB-NAS62x0 > +endef > + > +$(eval $(call Profile,RaidSonic)) > diff --git a/target/linux/kirkwood/profiles/500-zyxel.mk b/target/linux/kirkwood/profiles/500-zyxel.mk > new file mode 100644 > index 0000000..1edd849 > --- /dev/null > +++ b/target/linux/kirkwood/profiles/500-zyxel.mk > @@ -0,0 +1,17 @@ > +# > +# Copyright (C) 2012 OpenWrt.org > +# > +# This is free software, licensed under the GNU General Public License v2. > +# See /LICENSE for more information. > +# > + > +define Profile/ZyXEL > + NAME:=NSA-310 > + PACKAGES:= > +endef > + > +define Profile/ZyXEL/Description > + ZyXEL NSA-310 > +endef > + > +$(eval $(call Profile,ZyXEL)) > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel