source: trunk/target/linux/kirkwood/patches/100-dockstar.patch @ 22765

Last change on this file since 22765 was 22765, checked in by lars, 6 years ago

[kirkwood] Add Seagate Dockstar support

File size: 5.5 KB
  • arch/arm/mach-kirkwood/Kconfig

    This patch adds support for the Seagate FreeAgent DockStar, a Marvell
    Sheevaplug derivative.  I have already registered the DOCKSTAR machine
    ID.
    
    Signed-off-by: Eric Cooper <ecc@xxxxxxx>
    ---
     arch/arm/mach-kirkwood/Kconfig          |    6 ++
     arch/arm/mach-kirkwood/Makefile         |    1 +
     arch/arm/mach-kirkwood/dockstar-setup.c |  112 +++++++++++++++++++++++++++++++
     arch/arm/tools/mach-types               |    1 +
     4 files changed, 120 insertions(+), 0 deletions(-)
     create mode 100644 arch/arm/mach-kirkwood/dockstar-setup.c
    
    diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
    index 29b2163..74d832f 100644
    a b config MACH_TS219 
    3232          Say 'Y' here if you want your kernel to support the 
    3333          QNAP TS-119 and TS-219 Turbo NAS devices. 
    3434 
     35config MACH_DOCKSTAR 
     36        bool "Seagate FreeAgent DockStar" 
     37        help 
     38          Say 'Y' here if you want your kernel to support the 
     39          Seagate FreeAgent DockStar. 
     40 
    3541endmenu 
    3642  
    3743endif 
  • arch/arm/mach-kirkwood/Makefile

    diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile
    index c0cd5d3..025b256 100644
    a b obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o 
    66obj-$(CONFIG_MACH_SHEEVAPLUG)           += sheevaplug-setup.o 
    77obj-$(CONFIG_MACH_TS219)                += ts219-setup.o tsx1x-common.o 
     8obj-$(CONFIG_MACH_DOCKSTAR)             += dockstar-setup.o 
    89 
    910obj-$(CONFIG_CPU_IDLE)                  += cpuidle.o 
  • new file arch/arm/mach-kirkwood/dockstar-setup.c

    diff --git a/arch/arm/mach-kirkwood/dockstar-setup.c b/arch/arm/mach-kirkwood/dockstar-setup.c
    new file mode 100644
    index 0000000..a90475d
    - +  
     1/* 
     2 * arch/arm/mach-kirkwood/dockstar-setup.c 
     3 * 
     4 * Seagate FreeAgent DockStar Setup 
     5 * 
     6 * This file is licensed under the terms of the GNU General Public 
     7 * License version 2.  This program is licensed "as is" without any 
     8 * warranty of any kind, whether express or implied. 
     9 */ 
     10 
     11#include <linux/kernel.h> 
     12#include <linux/init.h> 
     13#include <linux/platform_device.h> 
     14#include <linux/ata_platform.h> 
     15#include <linux/mtd/partitions.h> 
     16#include <linux/mv643xx_eth.h> 
     17#include <linux/gpio.h> 
     18#include <linux/leds.h> 
     19#include <asm/mach-types.h> 
     20#include <asm/mach/arch.h> 
     21#include <mach/kirkwood.h> 
     22#include <plat/mvsdio.h> 
     23#include <plat/orion_nand.h> 
     24#include "common.h" 
     25#include "mpp.h" 
     26 
     27static struct mtd_partition dockstar_nand_parts[] = { 
     28        { 
     29                .name = "u-boot", 
     30                .offset = 0, 
     31                .size = SZ_1M 
     32        },      { 
     33                .name = "second_stage_u-boot", 
     34                .offset = MTDPART_OFS_NXTBLK, 
     35                .size = SZ_1M 
     36        }, { 
     37                .name = "uImage", 
     38                .offset = MTDPART_OFS_NXTBLK, 
     39                .size = SZ_1M + SZ_2M, 
     40        }, { 
     41                .name = "rootfs", 
     42                .offset = MTDPART_OFS_NXTBLK, 
     43                .size = SZ_64M, 
     44        }, { 
     45                .name = "data", 
     46                .offset = MTDPART_OFS_NXTBLK, 
     47                .size = MTDPART_SIZ_FULL 
     48        }, 
     49}; 
     50 
     51static struct resource dockstar_nand_resource = { 
     52        .flags          = IORESOURCE_MEM, 
     53        .start          = KIRKWOOD_NAND_MEM_PHYS_BASE, 
     54        .end            = KIRKWOOD_NAND_MEM_PHYS_BASE + 
     55                          KIRKWOOD_NAND_MEM_SIZE - 1, 
     56}; 
     57 
     58static struct orion_nand_data dockstar_nand_data = { 
     59        .parts          = dockstar_nand_parts, 
     60        .nr_parts       = ARRAY_SIZE(dockstar_nand_parts), 
     61        .cle            = 0, 
     62        .ale            = 1, 
     63        .width          = 8, 
     64        .chip_delay     = 25, 
     65}; 
     66 
     67static struct platform_device dockstar_nand_flash = { 
     68        .name           = "orion_nand", 
     69        .id             = -1, 
     70        .dev            = { 
     71                .platform_data  = &dockstar_nand_data, 
     72        }, 
     73        .resource       = &dockstar_nand_resource, 
     74        .num_resources  = 1, 
     75}; 
     76 
     77 
     78static struct mv643xx_eth_platform_data dockstar_ge00_data = { 
     79        .phy_addr       = MV643XX_ETH_PHY_ADDR(0), 
     80}; 
     81 
     82static struct gpio_led dockstar_led_pins[] = { 
     83        { 
     84                .name                   = "dockstar:green:health", 
     85                .default_trigger        = "default-on", 
     86                .gpio                   = 46, 
     87                .active_low             = 1, 
     88        }, 
     89        { 
     90                .name                   = "dockstar:orange:misc", 
     91                .default_trigger        = "none", 
     92                .gpio                   = 47, 
     93                .active_low             = 1, 
     94        }, 
     95}; 
     96 
     97static struct gpio_led_platform_data dockstar_led_data = { 
     98        .leds           = dockstar_led_pins, 
     99        .num_leds       = ARRAY_SIZE(dockstar_led_pins), 
     100}; 
     101 
     102static struct platform_device dockstar_leds = { 
     103        .name   = "leds-gpio", 
     104        .id     = -1, 
     105        .dev    = { 
     106                .platform_data  = &dockstar_led_data, 
     107        } 
     108}; 
     109 
     110static unsigned int dockstar_mpp_config[] __initdata = { 
     111        MPP29_GPIO,     /* USB Power Enable */ 
     112        MPP46_GPIO,     /* LED green */ 
     113        MPP47_GPIO,     /* LED orange */ 
     114        0 
     115}; 
     116 
     117static void __init dockstar_init(void) 
     118{ 
     119        /* 
     120         * Basic setup. Needs to be called early. 
     121         */ 
     122        kirkwood_init(); 
     123 
     124        /* setup gpio pin select */ 
     125        kirkwood_mpp_conf(dockstar_mpp_config); 
     126 
     127        kirkwood_uart0_init(); 
     128 
     129        if (gpio_request(29, "USB Power Enable") != 0 || 
     130            gpio_direction_output(29, 1) != 0) 
     131                printk(KERN_ERR "can't set up GPIO 29 (USB Power Enable)\n"); 
     132        kirkwood_ehci_init(); 
     133 
     134        kirkwood_ge00_init(&dockstar_ge00_data); 
     135 
     136        platform_device_register(&dockstar_nand_flash); 
     137        platform_device_register(&dockstar_leds); 
     138} 
     139 
     140MACHINE_START(DOCKSTAR, "Seagate FreeAgent DockStar") 
     141        .phys_io        = KIRKWOOD_REGS_PHYS_BASE, 
     142        .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc, 
     143        .boot_params    = 0x00000100, 
     144        .init_machine   = dockstar_init, 
     145        .map_io         = kirkwood_map_io, 
     146        .init_irq       = kirkwood_init_irq, 
     147        .timer          = &kirkwood_timer, 
     148MACHINE_END 
  • arch/arm/tools/mach-types

    diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
    index 48cbdcb..8d56837 100644
    a b davinci_dm365_dvr MACH_DAVINCI_DM365_DVR DAVINCI_DM365_DVR 2963 
    22452245omap3_wl_ff             MACH_OMAP3_WL_FF        OMAP3_WL_FF             2258 
    22462246simcom                  MACH_SIMCOM             SIMCOM                  2259 
    22472247mcwebio                 MACH_MCWEBIO            MCWEBIO                 2260 
     2248dockstar                MACH_DOCKSTAR           DOCKSTAR                2998 
Note: See TracBrowser for help on using the repository browser.