diff options
author | Luka Perkov <luka@openwrt.org> | 2013-10-02 00:33:45 +0000 |
---|---|---|
committer | Luka Perkov <luka@openwrt.org> | 2013-10-02 00:33:45 +0000 |
commit | 7d1e5ae918ad606b6990d700368f4fe18c845773 (patch) | |
tree | 99598688f94c0853da9e0255de2644826f723145 /target/linux/kirkwood/files/arch | |
parent | 914ca3cb559bf4e2257607b712bc20c5510172de (diff) | |
download | upstream-7d1e5ae918ad606b6990d700368f4fe18c845773.tar.gz upstream-7d1e5ae918ad606b6990d700368f4fe18c845773.tar.bz2 upstream-7d1e5ae918ad606b6990d700368f4fe18c845773.zip |
kirkwood: prepare for 3.10
Signed-off-by: Luka Perkov <luka@openwrt.org>
SVN-Revision: 38279
Diffstat (limited to 'target/linux/kirkwood/files/arch')
5 files changed, 0 insertions, 952 deletions
diff --git a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/goflexhome-setup.c b/target/linux/kirkwood/files/arch/arm/mach-kirkwood/goflexhome-setup.c deleted file mode 100644 index 84daeefe6b..0000000000 --- a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/goflexhome-setup.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - * arch/arm/mach-kirkwood/goflexhome-setup.c - * - * Seagate GoFlex Home 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/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 goflexhome_nand_parts[] = { - { - .name = "u-boot", - .offset = 0, - .size = SZ_1M - }, { - .name = "uImage", - .offset = MTDPART_OFS_NXTBLK, - .size = SZ_2M + SZ_4M - }, { - .name = "root", - .offset = MTDPART_OFS_NXTBLK, - .size = MTDPART_SIZ_FULL - }, -}; - -static struct mv643xx_eth_platform_data goflexhome_ge00_data = { - .phy_addr = MV643XX_ETH_PHY_ADDR(0), -}; - -static struct mv_sata_platform_data goflexhome_sata_data = { - .n_ports = 1, -}; - -static struct gpio_led goflexhome_led_pins[] = { - { - .name = "status:green:health", - .default_trigger = "default-on", - .gpio = 46, - .active_low = 1, - }, - { - .name = "status:orange:fault", - .default_trigger = "none", - .gpio = 47, - .active_low = 1, - }, - { - .name = "status:white:misc", - .default_trigger = "none", - .gpio = 40, - .active_low = 0, - } -}; - -static struct gpio_led_platform_data goflexhome_led_data = { - .leds = goflexhome_led_pins, - .num_leds = ARRAY_SIZE(goflexhome_led_pins), -}; - -static struct platform_device goflexhome_leds = { - .name = "leds-gpio", - .id = -1, - .dev = { - .platform_data = &goflexhome_led_data, - } -}; - -static unsigned int goflexhome_mpp_config[] __initdata = { - MPP29_GPIO, /* USB Power Enable */ - MPP47_GPIO, /* LED Orange */ - MPP46_GPIO, /* LED Green */ - MPP40_GPIO, /* LED White */ - 0 -}; - -static void __init goflexhome_init(void) -{ - /* - * Basic setup. Needs to be called early. - */ - kirkwood_init(); - - /* setup gpio pin select */ - kirkwood_mpp_conf(goflexhome_mpp_config); - - kirkwood_uart0_init(); - kirkwood_nand_init(ARRAY_AND_SIZE(goflexhome_nand_parts), 40); - - if (gpio_request(29, "USB Power Enable") != 0 || - gpio_direction_output(29, 1) != 0) - printk(KERN_ERR "can't set up GPIO 29 (USB Power Enable)\n"); - kirkwood_ehci_init(); - kirkwood_ge00_init(&goflexhome_ge00_data); - kirkwood_sata_init(&goflexhome_sata_data); - - platform_device_register(&goflexhome_leds); -} - -MACHINE_START(GOFLEXHOME, "Seagate GoFlex Home") - /* Maintainer: Peter Carmichael <peterjncarm@ovi.com> */ - .atag_offset = 0x100, - .init_machine = goflexhome_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/arch/arm/mach-kirkwood/goflexnet-setup.c b/target/linux/kirkwood/files/arch/arm/mach-kirkwood/goflexnet-setup.c deleted file mode 100644 index cd9dc9ef11..0000000000 --- a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/goflexnet-setup.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - * arch/arm/mach-kirkwood/goflexnet-setup.c - * - * Seagate GoFlex Net 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/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 goflexnet_nand_parts[] = { - { - .name = "u-boot", - .offset = 0, - .size = SZ_1M - }, { - .name = "uImage", - .offset = MTDPART_OFS_NXTBLK, - .size = SZ_4M - }, { - .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 goflexnet_ge00_data = { - .phy_addr = MV643XX_ETH_PHY_ADDR(0), -}; - -static struct mv_sata_platform_data goflexnet_sata_data = { - .n_ports = 2, -}; - -static struct gpio_led goflexnet_led_pins[] = { - { - .name = "status:green:health", - .default_trigger = "default-on", - .gpio = 46, // 0x4000 - .active_low = 1, - }, - { - .name = "status:orange:fault", - .default_trigger = "none", - .gpio = 47, // 0x8000 - .active_low = 1, - }, - { - .name = "status:white:left0", - .default_trigger = "none", - .gpio = 42, // 0x0400 - .active_low = 0, - }, - { - .name = "status:white:left1", - .default_trigger = "none", - .gpio = 43, // 0x0800 - .active_low = 0, - }, - { - .name = "status:white:left2", - .default_trigger = "none", - .gpio = 44, // 0x1000 - .active_low = 0, - }, - { - .name = "status:white:left3", - .default_trigger = "none", - .gpio = 45, // 0x2000 - .active_low = 0, - }, - { - .name = "status:white:right0", - .default_trigger = "none", - .gpio = 38, // 0x0040 - .active_low = 0, - }, - { - .name = "status:white:right1", - .default_trigger = "none", - .gpio = 39, // 0x0080 - .active_low = 0, - }, - { - .name = "status:white:right2", - .default_trigger = "none", - .gpio = 40, // 0x0100 - .active_low = 0, - }, - { - .name = "status:white:right3", - .default_trigger = "none", - .gpio = 41, // 0x0200 - .active_low = 0, - } -}; - -static struct gpio_led_platform_data goflexnet_led_data = { - .leds = goflexnet_led_pins, - .num_leds = ARRAY_SIZE(goflexnet_led_pins), -}; - -static struct platform_device goflexnet_leds = { - .name = "leds-gpio", - .id = -1, - .dev = { - .platform_data = &goflexnet_led_data, - } -}; - -static unsigned int goflexnet_mpp_config[] __initdata = { - MPP29_GPIO, /* USB Power Enable */ - MPP47_GPIO, /* LED Orange */ - MPP46_GPIO, /* LED Green */ - MPP45_GPIO, /* LED Left Capacity 3 */ - MPP44_GPIO, /* LED Left Capacity 2 */ - MPP43_GPIO, /* LED Left Capacity 1 */ - MPP42_GPIO, /* LED Left Capacity 0 */ - MPP41_GPIO, /* LED Right Capacity 3 */ - MPP40_GPIO, /* LED Right Capacity 2 */ - MPP39_GPIO, /* LED Right Capacity 1 */ - MPP38_GPIO, /* LED Right Capacity 0 */ - 0 -}; - -static void __init goflexnet_init(void) -{ - /* - * Basic setup. Needs to be called early. - */ - kirkwood_init(); - - /* setup gpio pin select */ - kirkwood_mpp_conf(goflexnet_mpp_config); - - kirkwood_uart0_init(); - kirkwood_nand_init(ARRAY_AND_SIZE(goflexnet_nand_parts), 40); - - if (gpio_request(29, "USB Power Enable") != 0 || - gpio_direction_output(29, 1) != 0) - printk(KERN_ERR "can't set up GPIO 29 (USB Power Enable)\n"); - kirkwood_ehci_init(); - kirkwood_ge00_init(&goflexnet_ge00_data); - kirkwood_sata_init(&goflexnet_sata_data); - - platform_device_register(&goflexnet_leds); -} - -MACHINE_START(GOFLEXNET, "Seagate GoFlex Net") - /* Maintainer: Peter Carmichael <peterjncarm@ovi.com> */ - .atag_offset = 0x100, - .init_machine = goflexnet_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/arch/arm/mach-kirkwood/iconnect-setup.c b/target/linux/kirkwood/files/arch/arm/mach-kirkwood/iconnect-setup.c deleted file mode 100644 index 4e8d192bb8..0000000000 --- a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/iconnect-setup.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * 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/arch/arm/mach-kirkwood/nas6210-setup.c b/target/linux/kirkwood/files/arch/arm/mach-kirkwood/nas6210-setup.c deleted file mode 100644 index 00c8531bc0..0000000000 --- a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/nas6210-setup.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * 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, - .restart = kirkwood_restart, -MACHINE_END diff --git a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/nsa-310-setup.c b/target/linux/kirkwood/files/arch/arm/mach-kirkwood/nsa-310-setup.c deleted file mode 100644 index 15dc526a8b..0000000000 --- a/target/linux/kirkwood/files/arch/arm/mach-kirkwood/nsa-310-setup.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * 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 |