diff options
Diffstat (limited to 'target/linux/ar71xx')
11 files changed, 230 insertions, 4 deletions
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network index 45a9423c6..e6461819e 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network @@ -124,7 +124,8 @@ ap83 |\  jwap003 |\  pb42 |\  pb44 |\ -routerstation) +routerstation|\ +wpe72)  	ucidef_set_interfaces_lan_wan "eth1" "eth0"  	;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index db859b24a..c2fa462a1 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -301,6 +301,9 @@ ar71xx_board_detect() {  	*WP543)  		name="wp543"  		;; +	*WPE72) +		name="wpe72" +		;;  	*"WNDR3700/WNDR3800/WNDRMAC")  		wndr3700_board_detect "$machine"  		;; diff --git a/target/linux/ar71xx/config-2.6.39 b/target/linux/ar71xx/config-2.6.39 index bdf2fcf64..60020d27c 100644 --- a/target/linux/ar71xx/config-2.6.39 +++ b/target/linux/ar71xx/config-2.6.39 @@ -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_WPE72=y  CONFIG_AR71XX_MACH_WRT160NL=y  CONFIG_AR71XX_MACH_WRT400N=y  CONFIG_AR71XX_MACH_WZR_HP_AG300H=y diff --git a/target/linux/ar71xx/config-3.2 b/target/linux/ar71xx/config-3.2 index 8f220c522..a735c6f38 100644 --- a/target/linux/ar71xx/config-3.2 +++ b/target/linux/ar71xx/config-3.2 @@ -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_WPE72=y  CONFIG_ATH79_MACH_WRT160NL=y  CONFIG_ATH79_MACH_WRT400N=y  CONFIG_ATH79_MACH_WZR_HP_AG300H=y diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Kconfig b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Kconfig index c22cd4abe..5abe999b2 100644 --- a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Kconfig +++ b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Kconfig @@ -214,6 +214,16 @@ config AR71XX_MACH_WP543  	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 diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Makefile index ba12234ea..efd8bd277 100644 --- a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Makefile +++ b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Makefile @@ -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_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 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 index 000000000..7bdd3e4a0 --- /dev/null +++ b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-wpe72.c @@ -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); diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/machtype.h index a66046a90..83038c64c 100644 --- a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/machtype.h +++ b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/machtype.h @@ -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_WPE72,	/* Compex WPE72 */  	AR71XX_MACH_WRT160NL,	/* Linksys WRT160NL */  	AR71XX_MACH_WRT400N,	/* Linksys WRT400N */  	AR71XX_MACH_WZR_HP_AG300H, /* Buffalo WZR-HP-AG300H */ diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/prom.c b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/prom.c index b9b1e64fd..5df812118 100644 --- a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/prom.c +++ b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/prom.c @@ -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_WPE72: +		ar71xx_prom_append_cmdline("board", "WPE72"); +		break;  	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 index 000000000..114d6233c --- /dev/null +++ b/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-wpe72.c @@ -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); diff --git a/target/linux/ar71xx/patches-3.2/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.2/610-MIPS-ath79-openwrt-machines.patch index e65bd5135..91916e638 100644 --- a/target/linux/ar71xx/patches-3.2/610-MIPS-ath79-openwrt-machines.patch +++ b/target/linux/ar71xx/patches-3.2/610-MIPS-ath79-openwrt-machines.patch @@ -1,6 +1,6 @@  --- 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, @@ -68,6 +68,7 @@  +	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 */ @@ -174,7 +175,7 @@   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. @@ -253,6 +254,16 @@  +	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 @@ -586,7 +597,7 @@   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   # @@ -634,6 +645,7 @@  +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  | 
