ar71xx: add support for Compex WPE72/WPE72NX

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>

SVN-Revision: 29912
v19.07.3_mercusys_ac12_duma
Gabor Juhos 13 years ago
parent 1c4f6b4308
commit e1e84badaa

@ -124,7 +124,8 @@ ap83 |\
jwap003 |\ jwap003 |\
pb42 |\ pb42 |\
pb44 |\ pb44 |\
routerstation) routerstation|\
wpe72)
ucidef_set_interfaces_lan_wan "eth1" "eth0" ucidef_set_interfaces_lan_wan "eth1" "eth0"
;; ;;

@ -301,6 +301,9 @@ ar71xx_board_detect() {
*WP543) *WP543)
name="wp543" name="wp543"
;; ;;
*WPE72)
name="wpe72"
;;
*"WNDR3700/WNDR3800/WNDRMAC") *"WNDR3700/WNDR3800/WNDRMAC")
wndr3700_board_detect "$machine" wndr3700_board_detect "$machine"
;; ;;

@ -56,6 +56,7 @@ CONFIG_AR71XX_MACH_WHR_HP_G300N=y
CONFIG_AR71XX_MACH_WNDR3700=y CONFIG_AR71XX_MACH_WNDR3700=y
CONFIG_AR71XX_MACH_WNR2000=y CONFIG_AR71XX_MACH_WNR2000=y
CONFIG_AR71XX_MACH_WP543=y CONFIG_AR71XX_MACH_WP543=y
CONFIG_AR71XX_MACH_WPE72=y
CONFIG_AR71XX_MACH_WRT160NL=y CONFIG_AR71XX_MACH_WRT160NL=y
CONFIG_AR71XX_MACH_WRT400N=y CONFIG_AR71XX_MACH_WRT400N=y
CONFIG_AR71XX_MACH_WZR_HP_AG300H=y CONFIG_AR71XX_MACH_WZR_HP_AG300H=y

@ -66,6 +66,7 @@ CONFIG_ATH79_MACH_WHR_HP_G300N=y
CONFIG_ATH79_MACH_WNDR3700=y CONFIG_ATH79_MACH_WNDR3700=y
CONFIG_ATH79_MACH_WNR2000=y CONFIG_ATH79_MACH_WNR2000=y
CONFIG_ATH79_MACH_WP543=y CONFIG_ATH79_MACH_WP543=y
CONFIG_ATH79_MACH_WPE72=y
CONFIG_ATH79_MACH_WRT160NL=y CONFIG_ATH79_MACH_WRT160NL=y
CONFIG_ATH79_MACH_WRT400N=y CONFIG_ATH79_MACH_WRT400N=y
CONFIG_ATH79_MACH_WZR_HP_AG300H=y CONFIG_ATH79_MACH_WZR_HP_AG300H=y

@ -214,6 +214,16 @@ config AR71XX_MACH_WP543
select AR71XX_DEV_LEDS_GPIO select AR71XX_DEV_LEDS_GPIO
select AR71XX_DEV_USB 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 config AR71XX_MACH_WRT160NL
bool "Linksys WRT160NL board support" bool "Linksys WRT160NL board support"
select SOC_AR913X select SOC_AR913X

@ -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_WNDR3700) += mach-wndr3700.o
obj-$(CONFIG_AR71XX_MACH_WNR2000) += mach-wnr2000.o obj-$(CONFIG_AR71XX_MACH_WNR2000) += mach-wnr2000.o
obj-$(CONFIG_AR71XX_MACH_WP543) += mach-wp543.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_WRT160NL) += mach-wrt160nl.o
obj-$(CONFIG_AR71XX_MACH_WRT400N) += mach-wrt400n.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_WZR_HP_G300NH) += mach-wzr-hp-g300nh.o

@ -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);

@ -79,6 +79,7 @@ enum ar71xx_mach_type {
AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */ AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */ AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */
AR71XX_MACH_WP543, /* Compex WP543 */ AR71XX_MACH_WP543, /* Compex WP543 */
AR71XX_MACH_WPE72, /* Compex WPE72 */
AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */ AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */
AR71XX_MACH_WRT400N, /* Linksys WRT400N */ AR71XX_MACH_WRT400N, /* Linksys WRT400N */
AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */ AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */

@ -112,6 +112,9 @@ static int __init ar71xx_prom_init_myloader(void)
case DEVID_COMPEX_WP543: case DEVID_COMPEX_WP543:
ar71xx_prom_append_cmdline("board", "WP543"); ar71xx_prom_append_cmdline("board", "WP543");
break; break;
case DEVID_COMPEX_WPE72:
ar71xx_prom_append_cmdline("board", "WPE72");
break;
default: default:
printk(KERN_WARNING "prom: unknown device id: %x\n", printk(KERN_WARNING "prom: unknown device id: %x\n",
mylo->did); mylo->did);

@ -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);

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -16,17 +16,77 @@ @@ -16,17 +16,78 @@
enum ath79_mach_type { enum ath79_mach_type {
ATH79_MACH_GENERIC = 0, ATH79_MACH_GENERIC = 0,
@ -68,6 +68,7 @@
+ ATH79_MACH_WNDR3700, /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */ + ATH79_MACH_WNDR3700, /* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
+ ATH79_MACH_WNR2000, /* NETGEAR WNR2000 */ + ATH79_MACH_WNR2000, /* NETGEAR WNR2000 */
+ ATH79_MACH_WP543, /* Compex WP543 */ + ATH79_MACH_WP543, /* Compex WP543 */
+ ATH79_MACH_WPE72, /* Compex WPE72 */
+ ATH79_MACH_WRT160NL, /* Linksys WRT160NL */ + ATH79_MACH_WRT160NL, /* Linksys WRT160NL */
+ ATH79_MACH_WRT400N, /* Linksys WRT400N */ + ATH79_MACH_WRT400N, /* Linksys WRT400N */
+ ATH79_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */ + ATH79_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */
@ -174,7 +175,7 @@
config ATH79_MACH_PB44 config ATH79_MACH_PB44
bool "Atheros PB44 reference board" bool "Atheros PB44 reference board"
select SOC_AR71XX 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 Say 'Y' here if you want your kernel to support the
Atheros PB44 reference board. Atheros PB44 reference board.
@ -253,6 +254,16 @@
+ select ATH79_DEV_USB + select ATH79_DEV_USB
+ select MYLOADER + 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 +config ATH79_MACH_DIR_600_A1
+ bool "D-Link DIR-600 rev. A1 support" + bool "D-Link DIR-600 rev. A1 support"
+ select SOC_AR724X + select SOC_AR724X
@ -586,7 +597,7 @@
endif endif
--- a/arch/mips/ath79/Makefile --- a/arch/mips/ath79/Makefile
+++ b/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
# #
@ -634,6 +645,7 @@
+obj-$(CONFIG_ATH79_MACH_WNDR3700) += mach-wndr3700.o +obj-$(CONFIG_ATH79_MACH_WNDR3700) += mach-wndr3700.o
+obj-$(CONFIG_ATH79_MACH_WNR2000) += mach-wnr2000.o +obj-$(CONFIG_ATH79_MACH_WNR2000) += mach-wnr2000.o
+obj-$(CONFIG_ATH79_MACH_WP543) += mach-wp543.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_WRT160NL) += mach-wrt160nl.o
+obj-$(CONFIG_ATH79_MACH_WRT400N) += mach-wrt400n.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_WZR_HP_G300NH) += mach-wzr-hp-g300nh.o

Loading…
Cancel
Save