source: trunk/target/linux/ixp4xx/patches-2.6.27/120-compex_support.patch @ 12790

Last change on this file since 12790 was 12790, checked in by nbd, 8 years ago

port generic and ixp4xx kernel patches to 2.6.27 (compiles except for iptables, but otherwise completely untested)

File size: 5.7 KB
  • arch/arm/mach-ixp4xx/Kconfig

    From 24025a2dcf1248079dd3019fac6ed955252d277f Mon Sep 17 00:00:00 2001
    From: Imre Kaloz <kaloz@openwrt.org>
    Date: Mon, 14 Jul 2008 21:56:34 +0200
    Subject: [PATCH] Add support for the Compex WP18 / NP18A boards
    
    Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
    ---
     arch/arm/mach-ixp4xx/Kconfig        |    8 ++
     arch/arm/mach-ixp4xx/Makefile       |    2 +
     arch/arm/mach-ixp4xx/compex-setup.c |  136 +++++++++++++++++++++++++++++++++++
     arch/arm/mach-ixp4xx/ixdp425-pci.c  |    3 +-
     arch/arm/tools/mach-types           |    2 +-
     5 files changed, 149 insertions(+), 2 deletions(-)
     create mode 100644 arch/arm/mach-ixp4xx/compex-setup.c
    
    a b  
    8989          Engineering Sidewinder board. For more information on this 
    9090          platform, see http://www.adiengineering.com 
    9191 
     92config MACH_COMPEX 
     93        bool "Compex WP18 / NP18A" 
     94        select PCI 
     95        help 
     96          Say 'Y' here if you want your kernel to support Compex'  
     97          WP18 or NP18A boards. For more information on this 
     98          platform, see http://www.compex.com.sg/home/OEM/product_ap.htm 
     99 
    92100config ARCH_IXDP425 
    93101        bool "IXDP425" 
    94102        help 
  • arch/arm/mach-ixp4xx/Makefile

    a b  
    1919obj-pci-$(CONFIG_MACH_FSG)              += fsg-pci.o 
    2020obj-pci-$(CONFIG_MACH_PRONGHORN)        += pronghorn-pci.o 
    2121obj-pci-$(CONFIG_MACH_SIDEWINDER)       += sidewinder-pci.o 
     22obj-pci-$(CONFIG_MACH_COMPEX)           += ixdp425-pci.o 
    2223 
    2324obj-y   += common.o 
    2425 
     
    3637obj-$(CONFIG_MACH_FSG)          += fsg-setup.o 
    3738obj-$(CONFIG_MACH_PRONGHORN)    += pronghorn-setup.o 
    3839obj-$(CONFIG_MACH_SIDEWINDER)   += sidewinder-setup.o 
     40obj-$(CONFIG_MACH_COMPEX)       += compex-setup.o 
    3941 
    4042obj-$(CONFIG_PCI)               += $(obj-pci-$(CONFIG_PCI)) common-pci.o 
    4143obj-$(CONFIG_IXP4XX_QMGR)       += ixp4xx_qmgr.o 
  • new file arch/arm/mach-ixp4xx/compex-setup.c

    - +  
     1/* 
     2 * arch/arm/mach-ixp4xx/compex-setup.c 
     3 * 
     4 * Compex WP18 / NP18A board-setup 
     5 * 
     6 * Copyright (C) 2008 Imre Kaloz <Kaloz@openwrt.org> 
     7 * 
     8 * based on coyote-setup.c: 
     9 *      Copyright (C) 2003-2005 MontaVista Software, Inc. 
     10 * 
     11 * Author: Imre Kaloz <Kaloz@openwrt.org> 
     12 */ 
     13 
     14#include <linux/kernel.h> 
     15#include <linux/serial.h> 
     16#include <linux/serial_8250.h> 
     17 
     18#include <asm/mach-types.h> 
     19#include <asm/mach/arch.h> 
     20#include <asm/mach/flash.h> 
     21 
     22static struct flash_platform_data compex_flash_data = { 
     23        .map_name       = "cfi_probe", 
     24        .width          = 2, 
     25}; 
     26 
     27static struct resource compex_flash_resource = { 
     28        .flags          = IORESOURCE_MEM, 
     29}; 
     30 
     31static struct platform_device compex_flash = { 
     32        .name           = "IXP4XX-Flash", 
     33        .id             = 0, 
     34        .dev            = { 
     35                .platform_data = &compex_flash_data, 
     36        }, 
     37        .num_resources  = 1, 
     38        .resource       = &compex_flash_resource, 
     39}; 
     40 
     41static struct resource compex_uart_resources[] = { 
     42        { 
     43                .start          = IXP4XX_UART1_BASE_PHYS, 
     44                .end            = IXP4XX_UART1_BASE_PHYS + 0x0fff, 
     45                .flags          = IORESOURCE_MEM 
     46        }, 
     47        { 
     48                .start          = IXP4XX_UART2_BASE_PHYS, 
     49                .end            = IXP4XX_UART2_BASE_PHYS + 0x0fff, 
     50                .flags          = IORESOURCE_MEM 
     51        } 
     52}; 
     53 
     54static struct plat_serial8250_port compex_uart_data[] = { 
     55        { 
     56                .mapbase        = IXP4XX_UART1_BASE_PHYS, 
     57                .membase        = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET, 
     58                .irq            = IRQ_IXP4XX_UART1, 
     59                .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 
     60                .iotype         = UPIO_MEM, 
     61                .regshift       = 2, 
     62                .uartclk        = IXP4XX_UART_XTAL, 
     63        }, 
     64        { 
     65                .mapbase        = IXP4XX_UART2_BASE_PHYS, 
     66                .membase        = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, 
     67                .irq            = IRQ_IXP4XX_UART2, 
     68                .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 
     69                .iotype         = UPIO_MEM, 
     70                .regshift       = 2, 
     71                .uartclk        = IXP4XX_UART_XTAL, 
     72        }, 
     73        { }, 
     74}; 
     75 
     76static struct platform_device compex_uart = { 
     77        .name                   = "serial8250", 
     78        .id                     = PLAT8250_DEV_PLATFORM, 
     79        .dev.platform_data      = compex_uart_data, 
     80        .num_resources          = 2, 
     81        .resource               = compex_uart_resources, 
     82}; 
     83 
     84static struct eth_plat_info compex_plat_eth[] = { 
     85        { 
     86                .phy            = IXP4XX_ETH_PHY_MAX_ADDR, 
     87                .phy_mask       = 0xf0000, 
     88                .rxq            = 3, 
     89                .txreadyq       = 20, 
     90        }, { 
     91                .phy            = 3, 
     92                .rxq            = 4, 
     93                .txreadyq       = 21, 
     94        } 
     95}; 
     96 
     97static struct platform_device compex_eth[] = { 
     98        { 
     99                .name                   = "ixp4xx_eth", 
     100                .id                     = IXP4XX_ETH_NPEB, 
     101                .dev.platform_data      = compex_plat_eth, 
     102        }, { 
     103                .name                   = "ixp4xx_eth", 
     104                .id                     = IXP4XX_ETH_NPEC, 
     105                .dev.platform_data      = compex_plat_eth + 1, 
     106        } 
     107}; 
     108 
     109static struct platform_device *compex_devices[] __initdata = { 
     110        &compex_flash, 
     111        &compex_uart, 
     112        &compex_eth[0], 
     113        &compex_eth[1], 
     114}; 
     115 
     116static void __init compex_init(void) 
     117{ 
     118        ixp4xx_sys_init(); 
     119 
     120        compex_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); 
     121        compex_flash_resource.end = 
     122                IXP4XX_EXP_BUS_BASE(0) + SZ_32M - 1; 
     123 
     124        platform_add_devices(compex_devices, ARRAY_SIZE(compex_devices)); 
     125} 
     126 
     127MACHINE_START(COMPEX, "Compex WP18 / NP18A") 
     128        /* Maintainer: Imre Kaloz <Kaloz@openwrt.org> */ 
     129        .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS, 
     130        .io_pg_offst    = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc, 
     131        .map_io         = ixp4xx_map_io, 
     132        .init_irq       = ixp4xx_init_irq, 
     133        .timer          = &ixp4xx_timer, 
     134        .boot_params    = 0x0100, 
     135        .init_machine   = compex_init, 
     136MACHINE_END 
  • arch/arm/mach-ixp4xx/ixdp425-pci.c

    a b  
    6666int __init ixdp425_pci_init(void) 
    6767{ 
    6868        if (machine_is_ixdp425() || machine_is_ixcdp1100() || 
    69                         machine_is_ixdp465() || machine_is_kixrp435()) 
     69                        machine_is_ixdp465() || machine_is_kixrp435() || 
     70                        machine_is_compex()) 
    7071                pci_common_init(&ixdp425_pci); 
    7172        return 0; 
    7273} 
  • arch/arm/tools/mach-types

    a b  
    12731273smdk6400                MACH_SMDK6400           SMDK6400                1270 
    12741274nokia_n800              MACH_NOKIA_N800         NOKIA_N800              1271 
    12751275greenphone              MACH_GREENPHONE         GREENPHONE              1272 
    1276 compex42x               MACH_COMPEXWP18         COMPEXWP18              1273 
     1276compex                  MACH_COMPEX             COMPEX                  1273 
    12771277xmate                   MACH_XMATE              XMATE                   1274 
    12781278energizer               MACH_ENERGIZER          ENERGIZER               1275 
    12791279ime1                    MACH_IME1               IME1                    1276 
Note: See TracBrowser for help on using the repository browser.