update wp18/np18a patch, resync
[openwrt/openwrt.git] / target / linux / ixp4xx / patches-2.6.26 / 120-compex_support.patch
index 0076db28995a25397c4482525d41be116befe786..f53ad82334418a7c4d2a6d8764bfdb780f7bc846 100644 (file)
@@ -1,3 +1,18 @@
+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
 @@ -89,6 +89,14 @@
@@ -10,7 +25,7 @@
 +      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"
  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;
  }