diff options
Diffstat (limited to 'target/linux/ramips')
6 files changed, 111 insertions, 0 deletions
| diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h index b3903fc22..200f737f7 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h @@ -67,6 +67,7 @@ enum ramips_mach_type {  	RAMIPS_MACH_WR6202,		/* Accton WR6202 */  	RAMIPS_MACH_MZKW300NH2,		/* Planex MZK-W300NH2 Router */  	RAMIPS_MACH_XDXRN502J,          /* unknown XDX-RN502J */ +	RAMIPS_MACH_UR_326N4G,		/* UPVEL ROUTER */  	RAMIPS_MACH_UR_336UN,		/* UPVEL ROUTER */  	/* RT3352 based machines */ diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig index c4653f530..700a98338 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig @@ -134,6 +134,11 @@ config RT305X_MACH_WR512_3GN  	select RALINK_DEV_GPIO_BUTTONS  	select RALINK_DEV_GPIO_LEDS +config RT305X_MACH_UR_326N4G +	bool "UR-326N4G Wireless N router" +	select RALINK_DEV_GPIO_BUTTONS +	select RALINK_DEV_GPIO_LEDS +  config RT305X_MACH_UR_336UN  	bool "UR-336UN Wireless N router"  	select RALINK_DEV_GPIO_BUTTONS diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile index 4e9f2f752..47e9ce52b 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile @@ -45,6 +45,7 @@ obj-$(CONFIG_RT305X_MACH_W502U)		+= mach-w502u.o  obj-$(CONFIG_RT305X_MACH_WCR150GN)	+= mach-wcr150gn.o  obj-$(CONFIG_RT305X_MACH_WHR_G300N)	+= mach-whr-g300n.o  obj-$(CONFIG_RT305X_MACH_WR512_3GN)	+= mach-wr512-3gn.o +obj-$(CONFIG_RT305X_MACH_UR_326N4G)	+= mach-ur-326n4g.o  obj-$(CONFIG_RT305X_MACH_UR_336UN)	+= mach-ur-336un.o  obj-$(CONFIG_RT305X_MACH_WL_330N)	+= mach-wl-330n.o  obj-$(CONFIG_RT305X_MACH_WL_330N3G)	+= mach-wl-330n3g.o diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-ur-326n4g.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-ur-326n4g.c new file mode 100644 index 000000000..a5296941a --- /dev/null +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-ur-326n4g.c @@ -0,0 +1,102 @@ +/* + *  UR-326N4G board support + * + *  Copyright (C) 2013 Dmitry Lebedev <Lebedev@upvel.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 <linux/init.h> +#include <linux/platform_device.h> + +#include <asm/mach-ralink/machine.h> +#include <asm/mach-ralink/dev-gpio-buttons.h> +#include <asm/mach-ralink/dev-gpio-leds.h> +#include <asm/mach-ralink/rt305x.h> +#include <asm/mach-ralink/rt305x_regs.h> + +#include "devices.h" + + +#define UR_326N4G_GPIO_LED_3G		9 +#define UR_326N4G_GPIO_LED_GATEWAY	11 +#define UR_326N4G_GPIO_LED_AP		12 +#define UR_326N4G_GPIO_LED_STATION	13 +#define UR_326N4G_GPIO_LED_WPS		14 + +#define UR_326N4G_GPIO_BUTTON_RESET	10 +#define UR_326N4G_GPIO_BUTTON_CONNECT	7 +#define UR_326N4G_GPIO_BUTTON_WPS	0 +#define UR_326N4G_GPIO_BUTTON_WPS2	8 + +#define UR_326N4G_KEYS_POLL_INTERVAL	20 +#define UR_326N4G_KEYS_DEBOUNCE_INTERVAL (3 * UR_326N4G_KEYS_POLL_INTERVAL) + +static struct gpio_led UR_326N4G_leds_gpio[] __initdata = { +	{ +		.name		= "ur326:green:3g", +		.gpio		= UR_326N4G_GPIO_LED_3G, +		.active_low	= 1, +	}, { +		.name		= "ur326:green:gateway", +		.gpio		= UR_326N4G_GPIO_LED_GATEWAY, +		.active_low	= 1, +	}, { +		.name		= "ur326:green:ap", +		.gpio		= UR_326N4G_GPIO_LED_AP, +		.active_low	= 1, +	}, { +		.name		= "ur326:green:wps", +		.gpio		= UR_326N4G_GPIO_LED_WPS, +		.active_low	= 1, +	}, { +		.name		= "ur326:green:station", +		.gpio		= UR_326N4G_GPIO_LED_STATION, +		.active_low	= 1, +	} +}; + +static struct gpio_keys_button UR_326N4G_gpio_buttons[] __initdata = { +	{ +		.desc		= "reset_wps", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.debounce_interval = UR_326N4G_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= UR_326N4G_GPIO_BUTTON_RESET, +		.active_low	= 1, +	}, { +		.desc		= "mode", +		.type		= EV_KEY, +		.code		= KEY_M, +		.debounce_interval = UR_326N4G_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= UR_326N4G_GPIO_BUTTON_CONNECT, +		.active_low	= 1, +	} +}; + +#define UR_326N4G_GPIO_MODE \ +	((RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT) | \ +	 RT305X_GPIO_MODE_MDIO) + +static void __init UR_326N4G_init(void) +{ +	rt305x_gpio_init(UR_326N4G_GPIO_MODE); + +	rt305x_register_flash(0); + +	rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; +	rt305x_register_ethernet(); +	ramips_register_gpio_leds(-1, ARRAY_SIZE(UR_326N4G_leds_gpio), +				  UR_326N4G_leds_gpio); +	ramips_register_gpio_buttons(-1, UR_326N4G_KEYS_POLL_INTERVAL, +				     ARRAY_SIZE(UR_326N4G_gpio_buttons), +				     UR_326N4G_gpio_buttons); +	rt305x_register_wifi(); +	rt305x_register_wdt(); +	rt305x_register_usb(); +} + +MIPS_MACHINE(RAMIPS_MACH_UR_326N4G, "UR-326N4G", "UR-326N4G Wireless N router", +	      UR_326N4G_init); diff --git a/target/linux/ramips/rt305x/config-3.7 b/target/linux/ramips/rt305x/config-3.7 index 831219c26..2c2ca0062 100644 --- a/target/linux/ramips/rt305x/config-3.7 +++ b/target/linux/ramips/rt305x/config-3.7 @@ -131,6 +131,7 @@ CONFIG_RT305X_MACH_RT_G32_REVB=y  CONFIG_RT305X_MACH_RT_N10_PLUS=y  CONFIG_RT305X_MACH_RT_N13U=y  CONFIG_RT305X_MACH_SL_R7205=y +CONFIG_RT305X_MACH_UR_326N4G=y  CONFIG_RT305X_MACH_UR_336UN=y  CONFIG_RT305X_MACH_V22RW_2X2=y  CONFIG_RT305X_MACH_W306R_V20=y diff --git a/target/linux/ramips/rt305x/config-3.8 b/target/linux/ramips/rt305x/config-3.8 index 64fac151e..f0a6338ff 100644 --- a/target/linux/ramips/rt305x/config-3.8 +++ b/target/linux/ramips/rt305x/config-3.8 @@ -130,6 +130,7 @@ CONFIG_RT305X_MACH_RT_G32_REVB=y  CONFIG_RT305X_MACH_RT_N10_PLUS=y  CONFIG_RT305X_MACH_RT_N13U=y  CONFIG_RT305X_MACH_SL_R7205=y +CONFIG_RT305X_MACH_UR_326N4G=y  CONFIG_RT305X_MACH_UR_336UN=y  CONFIG_RT305X_MACH_V22RW_2X2=y  CONFIG_RT305X_MACH_W306R_V20=y | 
