diff options
Diffstat (limited to 'target/linux/ar71xx/files-2.6.39/arch')
5 files changed, 112 insertions, 0 deletions
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);  | 
