ar71xx: add support for Compex WPE72/WPE72NX
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 26 Jan 2012 17:01:41 +0000 (17:01 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 26 Jan 2012 17:01:41 +0000 (17:01 +0000)
This patch adds support for Compex WPE72 bare board and Compex WPE72NX
Indoor Access Point.

[juhosg: add support to 3.2 as well]

Signed-off-by: Johnathan Boyce <jon.boyce@globalreach.eu.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29912 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar71xx/base-files/etc/uci-defaults/network
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/config-2.6.39
target/linux/ar71xx/config-3.2
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Kconfig
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Makefile
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-wpe72.c [new file with mode: 0644]
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/machtype.h
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/prom.c
target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-wpe72.c [new file with mode: 0644]
target/linux/ar71xx/patches-3.2/610-MIPS-ath79-openwrt-machines.patch

index 45a9423..e646181 100755 (executable)
@@ -124,7 +124,8 @@ ap83 |\
 jwap003 |\
 pb42 |\
 pb44 |\
 jwap003 |\
 pb42 |\
 pb44 |\
-routerstation)
+routerstation|\
+wpe72)
        ucidef_set_interfaces_lan_wan "eth1" "eth0"
        ;;
 
        ucidef_set_interfaces_lan_wan "eth1" "eth0"
        ;;
 
index db859b2..c2fa462 100755 (executable)
@@ -301,6 +301,9 @@ ar71xx_board_detect() {
        *WP543)
                name="wp543"
                ;;
        *WP543)
                name="wp543"
                ;;
+       *WPE72)
+               name="wpe72"
+               ;;
        *"WNDR3700/WNDR3800/WNDRMAC")
                wndr3700_board_detect "$machine"
                ;;
        *"WNDR3700/WNDR3800/WNDRMAC")
                wndr3700_board_detect "$machine"
                ;;
index bdf2fcf..60020d2 100644 (file)
@@ -56,6 +56,7 @@ CONFIG_AR71XX_MACH_WHR_HP_G300N=y
 CONFIG_AR71XX_MACH_WNDR3700=y
 CONFIG_AR71XX_MACH_WNR2000=y
 CONFIG_AR71XX_MACH_WP543=y
 CONFIG_AR71XX_MACH_WNDR3700=y
 CONFIG_AR71XX_MACH_WNR2000=y
 CONFIG_AR71XX_MACH_WP543=y
+CONFIG_AR71XX_MACH_WPE72=y
 CONFIG_AR71XX_MACH_WRT160NL=y
 CONFIG_AR71XX_MACH_WRT400N=y
 CONFIG_AR71XX_MACH_WZR_HP_AG300H=y
 CONFIG_AR71XX_MACH_WRT160NL=y
 CONFIG_AR71XX_MACH_WRT400N=y
 CONFIG_AR71XX_MACH_WZR_HP_AG300H=y
index 8f220c5..a735c6f 100644 (file)
@@ -66,6 +66,7 @@ CONFIG_ATH79_MACH_WHR_HP_G300N=y
 CONFIG_ATH79_MACH_WNDR3700=y
 CONFIG_ATH79_MACH_WNR2000=y
 CONFIG_ATH79_MACH_WP543=y
 CONFIG_ATH79_MACH_WNDR3700=y
 CONFIG_ATH79_MACH_WNR2000=y
 CONFIG_ATH79_MACH_WP543=y
+CONFIG_ATH79_MACH_WPE72=y
 CONFIG_ATH79_MACH_WRT160NL=y
 CONFIG_ATH79_MACH_WRT400N=y
 CONFIG_ATH79_MACH_WZR_HP_AG300H=y
 CONFIG_ATH79_MACH_WRT160NL=y
 CONFIG_ATH79_MACH_WRT400N=y
 CONFIG_ATH79_MACH_WZR_HP_AG300H=y
index c22cd4a..5abe999 100644 (file)
@@ -214,6 +214,16 @@ config AR71XX_MACH_WP543
        select AR71XX_DEV_LEDS_GPIO
        select AR71XX_DEV_USB
 
        select AR71XX_DEV_LEDS_GPIO
        select AR71XX_DEV_USB
 
+config AR71XX_MACH_WPE72
+       bool "Compex WPE72 board support"
+       select SOC_AR724X
+       select MYLOADER
+       select AR71XX_DEV_M25P80
+       select AR71XX_DEV_GPIO_BUTTONS
+       select AR71XX_DEV_PB42_PCI if PCI
+       select AR71XX_DEV_LEDS_GPIO
+       select AR71XX_DEV_USB
+
 config AR71XX_MACH_WRT160NL
        bool "Linksys WRT160NL board support"
        select SOC_AR913X
 config AR71XX_MACH_WRT160NL
        bool "Linksys WRT160NL board support"
        select SOC_AR913X
index ba12234..efd8bd2 100644 (file)
@@ -71,6 +71,7 @@ obj-$(CONFIG_AR71XX_MACH_WHR_HP_G300N)        += mach-whr-hp-g300n.o
 obj-$(CONFIG_AR71XX_MACH_WNDR3700)     += mach-wndr3700.o
 obj-$(CONFIG_AR71XX_MACH_WNR2000)      += mach-wnr2000.o
 obj-$(CONFIG_AR71XX_MACH_WP543)                += mach-wp543.o
 obj-$(CONFIG_AR71XX_MACH_WNDR3700)     += mach-wndr3700.o
 obj-$(CONFIG_AR71XX_MACH_WNR2000)      += mach-wnr2000.o
 obj-$(CONFIG_AR71XX_MACH_WP543)                += mach-wp543.o
+obj-$(CONFIG_AR71XX_MACH_WPE72)                += mach-wpe72.o
 obj-$(CONFIG_AR71XX_MACH_WRT160NL)     += mach-wrt160nl.o
 obj-$(CONFIG_AR71XX_MACH_WRT400N)      += mach-wrt400n.o
 obj-$(CONFIG_AR71XX_MACH_WZR_HP_G300NH)        += mach-wzr-hp-g300nh.o
 obj-$(CONFIG_AR71XX_MACH_WRT160NL)     += mach-wrt160nl.o
 obj-$(CONFIG_AR71XX_MACH_WRT400N)      += mach-wrt400n.o
 obj-$(CONFIG_AR71XX_MACH_WZR_HP_G300NH)        += mach-wzr-hp-g300nh.o
diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-wpe72.c b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-wpe72.c
new file mode 100644 (file)
index 0000000..7bdd3e4
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ *  Compex WPE72 board support
+ *
+ *  Copyright (C) 2012 Johnathan Boyce<jon.boyce@globalreach.eu.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 2 as published
+ *  by the Free Software Foundation.
+ */
+
+#include<asm/mach-ar71xx/ar71xx.h>
+
+#include "machtype.h"
+#include "devices.h"
+#include "dev-m25p80.h"
+#include "dev-pb42-pci.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-usb.h"
+
+#define WPE72_GPIO_RESET       12
+#define WPE72_GPIO_LED_DIAG    13
+#define WPE72_GPIO_LED_1       14
+#define WPE72_GPIO_LED_2       15
+#define WPE72_GPIO_LED_3       16
+#define WPE72_GPIO_LED_4       17
+
+#define WPE72_KEYS_POLL_INTERVAL       20      /* msecs */
+#define WPE72_KEYS_DEBOUNCE_INTERVAL   (3 * WPE72_KEYS_POLL_INTERVAL)
+
+static struct gpio_led wpe72_leds_gpio[] __initdata = {
+       {
+               .name           = "wpe72:green:led1",
+               .gpio           = WPE72_GPIO_LED_1,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:led2",
+               .gpio           = WPE72_GPIO_LED_2,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:led3",
+               .gpio           = WPE72_GPIO_LED_3,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:led4",
+               .gpio           = WPE72_GPIO_LED_4,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:diag",
+               .gpio           = WPE72_GPIO_LED_DIAG,
+               .active_low     = 1,
+       }
+};
+
+static struct gpio_keys_button wpe72_gpio_keys[] __initdata = {
+       {
+               .desc           = "reset",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = WPE72_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = WPE72_GPIO_RESET,
+       }
+};
+
+static const char *wpe72_part_probes[] = {
+       "MyLoader",
+       NULL,
+};
+
+static struct flash_platform_data wpe72_flash_data = {
+       .part_probes    = wpe72_part_probes,
+};
+
+static void __init wpe72_setup(void)
+{
+       ar71xx_add_device_m25p80(&wpe72_flash_data);
+       ar71xx_add_device_mdio(0, 0x0);
+
+       ar71xx_init_mac(ar71xx_eth0_data.mac_addr, ar71xx_mac_base, 0);
+       ar71xx_init_mac(ar71xx_eth1_data.mac_addr, ar71xx_mac_base, 1);
+
+       ar71xx_add_device_eth(0);
+       ar71xx_add_device_eth(1);
+
+       ar71xx_add_device_usb();
+
+       pb42_pci_init();
+
+       ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wpe72_leds_gpio),
+                                       wpe72_leds_gpio);
+
+       ar71xx_register_gpio_keys_polled(-1, WPE72_KEYS_POLL_INTERVAL,
+                                       ARRAY_SIZE(wpe72_gpio_keys),
+                                       wpe72_gpio_keys);
+}
+
+MIPS_MACHINE(AR71XX_MACH_WPE72, "WPE72", "Compex WPE72", wpe72_setup);
index a66046a..83038c6 100644 (file)
@@ -79,6 +79,7 @@ enum ar71xx_mach_type {
        AR71XX_MACH_WNDR3700,   /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
        AR71XX_MACH_WNR2000,    /* NETGEAR WNR2000 */
        AR71XX_MACH_WP543,      /* Compex WP543 */
        AR71XX_MACH_WNDR3700,   /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
        AR71XX_MACH_WNR2000,    /* NETGEAR WNR2000 */
        AR71XX_MACH_WP543,      /* Compex WP543 */
+       AR71XX_MACH_WPE72,      /* Compex WPE72 */
        AR71XX_MACH_WRT160NL,   /* Linksys WRT160NL */
        AR71XX_MACH_WRT400N,    /* Linksys WRT400N */
        AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */
        AR71XX_MACH_WRT160NL,   /* Linksys WRT160NL */
        AR71XX_MACH_WRT400N,    /* Linksys WRT400N */
        AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */
index b9b1e64..5df8121 100644 (file)
@@ -112,6 +112,9 @@ static int __init ar71xx_prom_init_myloader(void)
        case DEVID_COMPEX_WP543:
                ar71xx_prom_append_cmdline("board", "WP543");
                break;
        case DEVID_COMPEX_WP543:
                ar71xx_prom_append_cmdline("board", "WP543");
                break;
+       case DEVID_COMPEX_WPE72:
+               ar71xx_prom_append_cmdline("board", "WPE72");
+               break;
        default:
                printk(KERN_WARNING "prom: unknown device id: %x\n",
                                mylo->did);
        default:
                printk(KERN_WARNING "prom: unknown device id: %x\n",
                                mylo->did);
diff --git a/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-wpe72.c b/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-wpe72.c
new file mode 100644 (file)
index 0000000..114d623
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ *  Compex WPE72 board support
+ *
+ *  Copyright (C) 2012 Johnathan Boyce<jon.boyce@globalreach.eu.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 2 as published
+ *  by the Free Software Foundation.
+ */
+
+#include<asm/mach-ath79/ath79.h>
+
+#include "dev-eth.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-m25p80.h"
+#include "dev-usb.h"
+#include "machtypes.h"
+#include "pci.h"
+
+#define WPE72_GPIO_RESET       12
+#define WPE72_GPIO_LED_DIAG    13
+#define WPE72_GPIO_LED_1       14
+#define WPE72_GPIO_LED_2       15
+#define WPE72_GPIO_LED_3       16
+#define WPE72_GPIO_LED_4       17
+
+#define WPE72_KEYS_POLL_INTERVAL       20      /* msecs */
+#define WPE72_KEYS_DEBOUNCE_INTERVAL   (3 * WPE72_KEYS_POLL_INTERVAL)
+
+static struct gpio_led wpe72_leds_gpio[] __initdata = {
+       {
+               .name           = "wpe72:green:led1",
+               .gpio           = WPE72_GPIO_LED_1,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:led2",
+               .gpio           = WPE72_GPIO_LED_2,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:led3",
+               .gpio           = WPE72_GPIO_LED_3,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:led4",
+               .gpio           = WPE72_GPIO_LED_4,
+               .active_low     = 1,
+       }, {
+               .name           = "wpe72:green:diag",
+               .gpio           = WPE72_GPIO_LED_DIAG,
+               .active_low     = 1,
+       }
+};
+
+static struct gpio_keys_button wpe72_gpio_keys[] __initdata = {
+       {
+               .desc           = "reset",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = WPE72_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = WPE72_GPIO_RESET,
+       }
+};
+
+static const char *wpe72_part_probes[] = {
+       "MyLoader",
+       NULL,
+};
+
+static struct flash_platform_data wpe72_flash_data = {
+       .part_probes    = wpe72_part_probes,
+};
+
+static void __init wpe72_setup(void)
+{
+       ath79_register_m25p80(&wpe72_flash_data);
+       ath79_register_mdio(0, 0x0);
+
+       ath79_init_mac(ath79_eth0_data.mac_addr, ath79_mac_base, 0);
+       ath79_init_mac(ath79_eth1_data.mac_addr, ath79_mac_base, 1);
+
+       ath79_register_eth(0);
+       ath79_register_eth(1);
+
+       ath79_register_usb();
+       ath79_register_pci();
+
+       ath79_register_leds_gpio(-1, ARRAY_SIZE(wpe72_leds_gpio),
+                                wpe72_leds_gpio);
+
+       ath79_register_gpio_keys_polled(-1, WPE72_KEYS_POLL_INTERVAL,
+                                       ARRAY_SIZE(wpe72_gpio_keys),
+                                       wpe72_gpio_keys);
+}
+
+MIPS_MACHINE(ATH79_MACH_WPE72, "WPE72", "Compex WPE72", wpe72_setup);
index e65bd51..91916e6 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/machtypes.h
 +++ b/arch/mips/ath79/machtypes.h
 --- a/arch/mips/ath79/machtypes.h
 +++ b/arch/mips/ath79/machtypes.h
-@@ -16,17 +16,77 @@
+@@ -16,17 +16,78 @@
  
  enum ath79_mach_type {
        ATH79_MACH_GENERIC = 0,
  
  enum ath79_mach_type {
        ATH79_MACH_GENERIC = 0,
@@ -68,6 +68,7 @@
 +      ATH79_MACH_WNDR3700,            /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
 +      ATH79_MACH_WNR2000,             /* NETGEAR WNR2000 */
 +      ATH79_MACH_WP543,               /* Compex WP543 */
 +      ATH79_MACH_WNDR3700,            /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
 +      ATH79_MACH_WNR2000,             /* NETGEAR WNR2000 */
 +      ATH79_MACH_WP543,               /* Compex WP543 */
++      ATH79_MACH_WPE72,               /* Compex WPE72 */
 +      ATH79_MACH_WRT160NL,            /* Linksys WRT160NL */
 +      ATH79_MACH_WRT400N,             /* Linksys WRT400N */
 +      ATH79_MACH_WZR_HP_AG300H,       /* Buffalo WZR-HP-AG300H */
 +      ATH79_MACH_WRT160NL,            /* Linksys WRT160NL */
 +      ATH79_MACH_WRT400N,             /* Linksys WRT400N */
 +      ATH79_MACH_WZR_HP_AG300H,       /* Buffalo WZR-HP-AG300H */
  config ATH79_MACH_PB44
        bool "Atheros PB44 reference board"
        select SOC_AR71XX
  config ATH79_MACH_PB44
        bool "Atheros PB44 reference board"
        select SOC_AR71XX
-@@ -54,6 +127,349 @@ config ATH79_MACH_PB44
+@@ -54,6 +127,359 @@ config ATH79_MACH_PB44
          Say 'Y' here if you want your kernel to support the
          Atheros PB44 reference board.
  
          Say 'Y' here if you want your kernel to support the
          Atheros PB44 reference board.
  
 +      select ATH79_DEV_USB
 +      select MYLOADER
 +
 +      select ATH79_DEV_USB
 +      select MYLOADER
 +
++config ATH79_MACH_WPE72
++      bool "Compex WPE72/WPE72NX board support"
++      select SOC_AR724X
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_DEV_USB
++      select MYLOADER
++
 +config ATH79_MACH_DIR_600_A1
 +      bool "D-Link DIR-600 rev. A1 support"
 +      select SOC_AR724X
 +config ATH79_MACH_DIR_600_A1
 +      bool "D-Link DIR-600 rev. A1 support"
 +      select SOC_AR724X
  endif
 --- a/arch/mips/ath79/Makefile
 +++ b/arch/mips/ath79/Makefile
  endif
 --- a/arch/mips/ath79/Makefile
 +++ b/arch/mips/ath79/Makefile
-@@ -36,8 +36,53 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP) += p
+@@ -36,8 +36,54 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP) += p
  #
  # Machines
  #
  #
  # Machines
  #
 +obj-$(CONFIG_ATH79_MACH_WNDR3700)     += mach-wndr3700.o
 +obj-$(CONFIG_ATH79_MACH_WNR2000)      += mach-wnr2000.o
 +obj-$(CONFIG_ATH79_MACH_WP543)                += mach-wp543.o
 +obj-$(CONFIG_ATH79_MACH_WNDR3700)     += mach-wndr3700.o
 +obj-$(CONFIG_ATH79_MACH_WNR2000)      += mach-wnr2000.o
 +obj-$(CONFIG_ATH79_MACH_WP543)                += mach-wp543.o
++obj-$(CONFIG_ATH79_MACH_WPE72)                += mach-wpe72.o
 +obj-$(CONFIG_ATH79_MACH_WRT160NL)     += mach-wrt160nl.o
 +obj-$(CONFIG_ATH79_MACH_WRT400N)      += mach-wrt400n.o
 +obj-$(CONFIG_ATH79_MACH_WZR_HP_G300NH)        += mach-wzr-hp-g300nh.o
 +obj-$(CONFIG_ATH79_MACH_WRT160NL)     += mach-wrt160nl.o
 +obj-$(CONFIG_ATH79_MACH_WRT400N)      += mach-wrt400n.o
 +obj-$(CONFIG_ATH79_MACH_WZR_HP_G300NH)        += mach-wzr-hp-g300nh.o
This page took 0.042235 seconds and 4 git commands to generate.