update wp18/np18a patch, resync
[lede-git/.git] / target / linux / ixp4xx / patches-2.6.26 / 120-compex_support.patch
index 689d7a3c70e7727507d17b9e484e28919d521ef5..f53ad82334418a7c4d2a6d8764bfdb780f7bc846 100644 (file)
@@ -1,8 +1,23 @@
+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/arch/arm/mach-ixp4xx/Kconfig
 +++ b/arch/arm/mach-ixp4xx/Kconfig
-@@ -65,6 +65,14 @@
-         Engineering Pronghorn Metro Platform. For more
-         information on this platform, see <file:Documentation/arm/IXP4xx>.
+@@ -89,6 +89,14 @@
+         Engineering Sidewinder board. For more information on this
+         platform, see http://www.adiengineering.com
  
 +config MACH_COMPEX
 +      bool "Compex WP18 / NP18A"
 +      help
 +        Say 'Y' here if you want your kernel to support Compex' 
 +        WP18 or NP18A boards. For more information on this
-+        platform, see http://openwrt.org
++        platform, see http://www.compex.com.sg/home/OEM/product_ap.htm
 +
  config ARCH_IXDP425
        bool "IXDP425"
        help
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -17,6 +17,7 @@
- obj-pci-$(CONFIG_MACH_WG302V2)                += wg302v2-pci.o
+@@ -19,6 +19,7 @@
  obj-pci-$(CONFIG_MACH_FSG)            += fsg-pci.o
- obj-pci-$(CONFIG_MACH_PRONGHORNMETRO) += pronghornmetro-pci.o
+ obj-pci-$(CONFIG_MACH_PRONGHORN)      += pronghorn-pci.o
+ obj-pci-$(CONFIG_MACH_SIDEWINDER)     += sidewinder-pci.o
 +obj-pci-$(CONFIG_MACH_COMPEX)         += ixdp425-pci.o
  
  obj-y += common.o
  
-@@ -32,6 +33,7 @@
- obj-$(CONFIG_MACH_WG302V2)    += wg302v2-setup.o
+@@ -36,6 +37,7 @@
  obj-$(CONFIG_MACH_FSG)                += fsg-setup.o
- obj-$(CONFIG_MACH_PRONGHORNMETRO)     += pronghornmetro-setup.o
+ obj-$(CONFIG_MACH_PRONGHORN)  += pronghorn-setup.o
+ obj-$(CONFIG_MACH_SIDEWINDER) += sidewinder-setup.o
 +obj-$(CONFIG_MACH_COMPEX)     += compex-setup.o
  
  obj-$(CONFIG_PCI)             += $(obj-pci-$(CONFIG_PCI)) common-pci.o
  obj-$(CONFIG_IXP4XX_QMGR)     += ixp4xx_qmgr.o
 --- /dev/null
 +++ b/arch/arm/mach-ixp4xx/compex-setup.c
-@@ -0,0 +1,120 @@
+@@ -0,0 +1,136 @@
 +/*
 + * arch/arm/mach-ixp4xx/compex-setup.c
 + *
-+ * Ccompex WP18 / NP18A board-setup
++ * Compex WP18 / NP18A board-setup
 + *
-+ * Copyright (C) 2007 Imre Kaloz <Kaloz@openwrt.org>
++ * Copyright (C) 2008 Imre Kaloz <Kaloz@openwrt.org>
 + *
-+ * based on ixdp425-setup.c:
++ * based on coyote-setup.c:
 + *    Copyright (C) 2003-2005 MontaVista Software, Inc.
 + *
 + * Author: Imre Kaloz <Kaloz@openwrt.org>
 + */
 +
 +#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/device.h>
 +#include <linux/serial.h>
-+#include <linux/tty.h>
 +#include <linux/serial_8250.h>
-+#include <linux/slab.h>
 +
-+#include <asm/types.h>
-+#include <asm/setup.h>
-+#include <asm/memory.h>
-+#include <asm/hardware.h>
 +#include <asm/mach-types.h>
-+#include <asm/irq.h>
 +#include <asm/mach/arch.h>
 +#include <asm/mach/flash.h>
 +
 +      .resource               = compex_uart_resources,
 +};
 +
++static struct eth_plat_info compex_plat_eth[] = {
++      {
++              .phy            = IXP4XX_ETH_PHY_MAX_ADDR,
++              .phy_mask       = 0xf0000,
++              .rxq            = 3,
++              .txreadyq       = 20,
++      }, {
++              .phy            = 3,
++              .rxq            = 4,
++              .txreadyq       = 21,
++      }
++};
++
++static struct platform_device compex_eth[] = {
++      {
++              .name                   = "ixp4xx_eth",
++              .id                     = IXP4XX_ETH_NPEB,
++              .dev.platform_data      = compex_plat_eth,
++      }, {
++              .name                   = "ixp4xx_eth",
++              .id                     = IXP4XX_ETH_NPEC,
++              .dev.platform_data      = compex_plat_eth + 1,
++      }
++};
++
 +static struct platform_device *compex_devices[] __initdata = {
 +      &compex_flash,
-+      &compex_uart
++      &compex_uart,
++      &compex_eth[0],
++      &compex_eth[1],
 +};
 +
 +static void __init compex_init(void)
 +      platform_add_devices(compex_devices, ARRAY_SIZE(compex_devices));
 +}
 +
-+#ifdef CONFIG_MACH_COMPEX
 +MACHINE_START(COMPEX, "Compex WP18 / NP18A")
 +      /* Maintainer: Imre Kaloz <Kaloz@openwrt.org> */
 +      .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS,
 +      .boot_params    = 0x0100,
 +      .init_machine   = compex_init,
 +MACHINE_END
-+#endif
 --- a/arch/arm/mach-ixp4xx/ixdp425-pci.c
 +++ b/arch/arm/mach-ixp4xx/ixdp425-pci.c
-@@ -66,7 +66,7 @@
+@@ -66,7 +66,8 @@
  int __init ixdp425_pci_init(void)
  {
        if (machine_is_ixdp425() || machine_is_ixcdp1100() ||
 -                      machine_is_ixdp465() || machine_is_kixrp435())
-+                      machine_is_ixdp465() || machine_is_kixrp435() || machine_is_compex())
++                      machine_is_ixdp465() || machine_is_kixrp435() ||
++                      machine_is_compex())
                pci_common_init(&ixdp425_pci);
        return 0;
  }