source: trunk/target/linux/ixp4xx/patches-2.6.37/130-wrt300nv2_support.patch @ 25727

Last change on this file since 25727 was 25727, checked in by nbd, 5 years ago

ixp4xx: clean up patches, fold the 2.6.37 update patch into the relevant board support patches

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

    a b config MACH_COMPEX 
    9797          WP18 or NP18A boards. For more information on this 
    9898          platform, see http://www.compex.com.sg/home/OEM/product_ap.htm 
    9999 
     100config MACH_WRT300NV2 
     101        bool "Linksys WRT300N v2" 
     102        select PCI 
     103        help 
     104          Say 'Y' here if you want your kernel to support Linksys'  
     105          WRT300N v2 router. For more information on this 
     106          platform, see http://openwrt.org 
     107 
    100108config ARCH_IXDP425 
    101109        bool "IXDP425" 
    102110        help 
  • arch/arm/mach-ixp4xx/Makefile

    a b obj-pci-$(CONFIG_MACH_ARCOM_VULCAN) += v 
    2121obj-pci-$(CONFIG_MACH_PRONGHORN)        += pronghorn-pci.o 
    2222obj-pci-$(CONFIG_MACH_SIDEWINDER)       += sidewinder-pci.o 
    2323obj-pci-$(CONFIG_MACH_COMPEX)           += ixdp425-pci.o 
     24obj-pci-$(CONFIG_MACH_WRT300NV2)                += wrt300nv2-pci.o 
    2425 
    2526obj-y   += common.o 
    2627 
    obj-$(CONFIG_MACH_ARCOM_VULCAN) += vulca 
    4142obj-$(CONFIG_MACH_PRONGHORN)    += pronghorn-setup.o 
    4243obj-$(CONFIG_MACH_SIDEWINDER)   += sidewinder-setup.o 
    4344obj-$(CONFIG_MACH_COMPEX)       += compex-setup.o 
     45obj-$(CONFIG_MACH_WRT300NV2)    += wrt300nv2-setup.o 
    4446 
    4547obj-$(CONFIG_PCI)               += $(obj-pci-$(CONFIG_PCI)) common-pci.o 
    4648obj-$(CONFIG_IXP4XX_QMGR)       += ixp4xx_qmgr.o 
  • new file arch/arm/mach-ixp4xx/wrt300nv2-pci.c

    - +  
     1/* 
     2 * arch/arch/mach-ixp4xx/wrt300nv2-pci.c 
     3 * 
     4 * PCI setup routines for Linksys WRT300N v2 
     5 * 
     6 * Copyright (C) 2007 Imre Kaloz <kaloz@openwrt.org> 
     7 * 
     8 * based on coyote-pci.c: 
     9 *      Copyright (C) 2002 Jungo Software Technologies. 
     10 *      Copyright (C) 2003 MontaVista Softwrae, Inc. 
     11 * 
     12 * Maintainer: Imre Kaloz <kaloz@openwrt.org> 
     13 * 
     14 * This program is free software; you can redistribute it and/or modify 
     15 * it under the terms of the GNU General Public License version 2 as 
     16 * published by the Free Software Foundation. 
     17 * 
     18 */ 
     19 
     20#include <linux/kernel.h> 
     21#include <linux/pci.h> 
     22#include <linux/init.h> 
     23#include <linux/irq.h> 
     24 
     25#include <asm/mach-types.h> 
     26#include <mach/hardware.h> 
     27#include <asm/irq.h> 
     28 
     29#include <asm/mach/pci.h> 
     30 
     31extern void ixp4xx_pci_preinit(void); 
     32extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); 
     33extern struct pci_bus *ixp4xx_scan_bus(int nr, struct pci_sys_data *sys); 
     34 
     35void __init wrt300nv2_pci_preinit(void) 
     36{ 
     37        set_irq_type(IRQ_IXP4XX_GPIO8, IRQ_TYPE_LEVEL_LOW); 
     38 
     39        ixp4xx_pci_preinit(); 
     40} 
     41 
     42static int __init wrt300nv2_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 
     43{ 
     44        if (slot == 1) 
     45                return IRQ_IXP4XX_GPIO8; 
     46        else return -1; 
     47} 
     48 
     49struct hw_pci wrt300nv2_pci __initdata = { 
     50        .nr_controllers = 1, 
     51        .preinit =        wrt300nv2_pci_preinit, 
     52        .swizzle =        pci_std_swizzle, 
     53        .setup =          ixp4xx_setup, 
     54        .scan =           ixp4xx_scan_bus, 
     55        .map_irq =        wrt300nv2_map_irq, 
     56}; 
     57 
     58int __init wrt300nv2_pci_init(void) 
     59{ 
     60        if (machine_is_wrt300nv2()) 
     61                pci_common_init(&wrt300nv2_pci); 
     62        return 0; 
     63} 
     64 
     65subsys_initcall(wrt300nv2_pci_init); 
  • new file arch/arm/mach-ixp4xx/wrt300nv2-setup.c

    - +  
     1/* 
     2 * arch/arm/mach-ixp4xx/wrt300nv2-setup.c 
     3 * 
     4 * Board setup for the Linksys WRT300N v2 
     5 * 
     6 * Copyright (C) 2007 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/init.h> 
     16#include <linux/device.h> 
     17#include <linux/serial.h> 
     18#include <linux/tty.h> 
     19#include <linux/serial_8250.h> 
     20#include <linux/slab.h> 
     21 
     22#include <asm/types.h> 
     23#include <asm/setup.h> 
     24#include <asm/memory.h> 
     25#include <mach/hardware.h> 
     26#include <asm/irq.h> 
     27#include <asm/mach-types.h> 
     28#include <asm/mach/arch.h> 
     29#include <asm/mach/flash.h> 
     30 
     31static struct flash_platform_data wrt300nv2_flash_data = { 
     32        .map_name       = "cfi_probe", 
     33        .width          = 2, 
     34}; 
     35 
     36static struct resource wrt300nv2_flash_resource = { 
     37        .flags          = IORESOURCE_MEM, 
     38}; 
     39 
     40static struct platform_device wrt300nv2_flash = { 
     41        .name           = "IXP4XX-Flash", 
     42        .id             = 0, 
     43        .dev            = { 
     44                .platform_data = &wrt300nv2_flash_data, 
     45        }, 
     46        .num_resources  = 1, 
     47        .resource       = &wrt300nv2_flash_resource, 
     48}; 
     49 
     50static struct resource wrt300nv2_uart_resource = { 
     51        .start  = IXP4XX_UART2_BASE_PHYS, 
     52        .end    = IXP4XX_UART2_BASE_PHYS + 0x0fff, 
     53        .flags  = IORESOURCE_MEM, 
     54}; 
     55 
     56static struct plat_serial8250_port wrt300nv2_uart_data[] = { 
     57        { 
     58                .mapbase        = IXP4XX_UART2_BASE_PHYS, 
     59                .membase        = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET, 
     60                .irq            = IRQ_IXP4XX_UART2, 
     61                .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 
     62                .iotype         = UPIO_MEM, 
     63                .regshift       = 2, 
     64                .uartclk        = IXP4XX_UART_XTAL, 
     65        }, 
     66        { }, 
     67}; 
     68 
     69static struct platform_device wrt300nv2_uart = { 
     70        .name           = "serial8250", 
     71        .id             = PLAT8250_DEV_PLATFORM, 
     72        .dev                    = { 
     73                .platform_data  = wrt300nv2_uart_data, 
     74        }, 
     75        .num_resources  = 1, 
     76        .resource       = &wrt300nv2_uart_resource, 
     77}; 
     78 
     79static struct platform_device *wrt300nv2_devices[] __initdata = { 
     80        &wrt300nv2_flash, 
     81        &wrt300nv2_uart 
     82}; 
     83 
     84static void __init wrt300nv2_init(void) 
     85{ 
     86        ixp4xx_sys_init(); 
     87 
     88        wrt300nv2_flash_resource.start = IXP4XX_EXP_BUS_BASE(0); 
     89        wrt300nv2_flash_resource.end = IXP4XX_EXP_BUS_BASE(0) + SZ_32M - 1; 
     90 
     91        *IXP4XX_EXP_CS0 |= IXP4XX_FLASH_WRITABLE; 
     92        *IXP4XX_EXP_CS1 = *IXP4XX_EXP_CS0; 
     93 
     94        platform_add_devices(wrt300nv2_devices, ARRAY_SIZE(wrt300nv2_devices)); 
     95} 
     96 
     97#ifdef CONFIG_MACH_WRT300NV2 
     98MACHINE_START(WRT300NV2, "Linksys WRT300N v2") 
     99        /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */ 
     100        .map_io         = ixp4xx_map_io, 
     101        .init_irq       = ixp4xx_init_irq, 
     102        .timer          = &ixp4xx_timer, 
     103        .boot_params    = 0x0100, 
     104        .init_machine   = wrt300nv2_init, 
     105MACHINE_END 
     106#endif 
  • arch/arm/mach-ixp4xx/include/mach/uncompress.h

    a b static __inline__ void __arch_decomp_set 
    4242         */ 
    4343        if (machine_is_adi_coyote() || machine_is_gtwx5715() || 
    4444                         machine_is_gateway7001() || machine_is_wg302v2() || 
    45                          machine_is_pronghorn() || machine_is_pronghorn_metro()) 
     45                         machine_is_pronghorn() || machine_is_pronghorn_metro() || machine_is_wrt300nv2()) 
    4646                uart_base = (volatile u32*) IXP4XX_UART2_BASE_PHYS; 
    4747        else 
    4848                uart_base = (volatile u32*) IXP4XX_UART1_BASE_PHYS; 
Note: See TracBrowser for help on using the repository browser.