diff options
Diffstat (limited to 'target')
10 files changed, 102 insertions, 2 deletions
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 0a13ddb8c..f8dac497d 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -99,6 +99,9 @@ get_status_led() {  	wr512-3gn)  		status_led="wr512:green:wps"  		;; +	xdxrn502j) +		status_led="xdxrn502j:green:power" +		;;  	esac  } diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index 148fda20c..bc2320857 100644 --- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -70,7 +70,8 @@ case "$FIRMWARE" in  	wl-351 | \  	wli-tx4-ag300n | \  	wr512-3gn | \ -	wr6202) +	wr6202 | \ +	xdxrn502j)  		rt2x00_eeprom_extract "factory" 0 272  		;; diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac index cb9c7abd1..97cacfa5e 100644 --- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac +++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac @@ -28,7 +28,8 @@ preinit_set_mac_address() {  	nbg-419n |\  	omni-emb |\  	w502u    |\ -	wr6202) +	wr6202 |\ +	xdxrn502j)  		mac=$(ramips_get_mac_binary factory 40)  		ifconfig eth0 hw ether $mac 2>/dev/null  		;; diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 35672092b..faa248536 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -143,6 +143,9 @@ ramips_board_name() {  	*"AWB WR6202")  		name="wr6202"  		;; +	*"XDX RN502J") +		name="xdxrn502j" +		;;  	*)  		name="generic"  		;; 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 cfb6bc61a..823416442 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 @@ -49,6 +49,7 @@ enum ramips_mach_type {  	RAMIPS_MACH_WL351,		/* Sitecom WL-351 v1 002 */  	RAMIPS_MACH_WR512_3GN,		/* SH-WR512NU/WS-WR512N1-like 3GN*/  	RAMIPS_MACH_WR6202,		/* Accton WR6202 */ +	RAMIPS_MACH_XDXRN502J,          /* unknown XDX-RN502J */  	/* RT3662 based machines */  	RAMIPS_MACH_RT_N56U,		/* Asus RT-N56U */ diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig index ae05190ec..1bf960f7e 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig @@ -121,6 +121,11 @@ config RT305X_MACH_NBG_419N  	select RALINK_DEV_GPIO_BUTTONS  	select RALINK_DEV_GPIO_LEDS +config RT305X_MACH_XDX_RN502J +	bool "Unknown board XDX-RN502J" +	select RALINK_DEV_GPIO_BUTTONS +	select RALINK_DEV_GPIO_LEDS +  endmenu  endif diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile index ce1d56823..aec57a011 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile @@ -35,3 +35,4 @@ obj-$(CONFIG_RT305X_MACH_WR512_3GN)	+= mach-wr512-3gn.o  obj-$(CONFIG_RT305X_MACH_WL341V3)	+= mach-wl341v3.o  obj-$(CONFIG_RT305X_MACH_WL351)		+= mach-wl351.o  obj-$(CONFIG_RT305X_MACH_WR6202)	+= mach-wr6202.o +obj-$(CONFIG_RT305X_MACH_XDX_RN502J)    += mach-xdx-rn502j.o diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c new file mode 100644 index 000000000..f7ef35326 --- /dev/null +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c @@ -0,0 +1,79 @@ +/* + *  Unknown router name/model, PCB marked with XDX-RN502J + * + *  Copyright (C) 2011 Bruno Schwander bruno@tinkerbox.org + * + *  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 XDXRN502J_GPIO_BUTTON_RESET	12 +#define XDXRN502J_GPIO_LED_WIFI		7 +#define XDXRN502J_GPIO_LED_POWER	9 + +#define XDXRN502J_BUTTONS_POLL_INTERVAL	20 +#define XDXRN502J_BUTTONS_DEBOUNCE_INTERVAL (3 * XDXRN502J_BUTTONS_POLL_INTERVAL) + + +static struct gpio_led xdxrn502j_leds_gpio[] __initdata = { +	{ +		.name		= "xdxrn502j:green:wifi", +		.gpio		= XDXRN502J_GPIO_LED_WIFI, +		.active_low	= 1, +	}, { +		.name		= "xdxrn502j:green:power", +		.gpio		= XDXRN502J_GPIO_LED_POWER, +		.active_low	= 1, +	} +}; + +static struct gpio_keys_button xdxrn502j_gpio_buttons[] __initdata = { +	{ +		.desc		= "reset", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.debounce_interval = XDXRN502J_BUTTONS_DEBOUNCE_INTERVAL, +		.gpio		= XDXRN502J_GPIO_BUTTON_RESET, +		.active_low	= 1, +	} +}; + +#define XDXRN502J_GPIO_MODE \ +	((RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT) | \ +	 RT305X_GPIO_MODE_MDIO) + +static void __init xdxrn502j_init(void) +{ +	rt305x_gpio_init(XDXRN502J_GPIO_MODE); + +	rt305x_register_flash(0); + +	rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_WLLLL; +	rt305x_register_ethernet(); + +	ramips_register_gpio_leds(-1, ARRAY_SIZE(xdxrn502j_leds_gpio), +				  xdxrn502j_leds_gpio); + +	ramips_register_gpio_buttons(-1, XDXRN502J_BUTTONS_POLL_INTERVAL, +				     ARRAY_SIZE(xdxrn502j_gpio_buttons), +				     xdxrn502j_gpio_buttons); + +	rt305x_register_wifi(); +	rt305x_register_wdt(); +	rt305x_register_usb(); +} + +MIPS_MACHINE(RAMIPS_MACH_XDXRN502J, "XDXRN502J", "XDX RN502J", +	     xdxrn502j_init); diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index bb6124c9a..90bbff95b 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -391,6 +391,10 @@ define Image/Build/Profile/WR6202  	$(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr6202,WR6202,ttyS1,115200,phys)  endef +define Image/Build/Profile/XDXRN502J +	$(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,xdxrn502j,XDXRN502J,ttyS1,57600,phys) +endef +  ifeq ($(CONFIG_RALINK_RT305X),y)  define Image/Build/Profile/Default  	$(call Image/Build/Profile/ALL0256N,$(1)) @@ -417,6 +421,7 @@ define Image/Build/Profile/Default  	$(call Image/Build/Profile/WL351,$(1))  	$(call Image/Build/Profile/WR5123GN,$(1))  	$(call Image/Build/Profile/WR6202,$(1)) +	$(call Image/Build/Profile/XDXRN502J,$(1))  endef  endif diff --git a/target/linux/ramips/rt305x/config-3.2 b/target/linux/ramips/rt305x/config-3.2 index 09355ddbf..cd25acc2a 100644 --- a/target/linux/ramips/rt305x/config-3.2 +++ b/target/linux/ramips/rt305x/config-3.2 @@ -117,6 +117,7 @@ CONFIG_RT305X_MACH_WL341V3=y  CONFIG_RT305X_MACH_WL351=y  CONFIG_RT305X_MACH_WR512_3GN=y  CONFIG_RT305X_MACH_WR6202=y +CONFIG_RT305X_MACH_XDX_RN502J=y  # CONFIG_SCSI_DMA is not set  CONFIG_SERIAL_8250_NR_UARTS=4  CONFIG_SERIAL_8250_RT288X=y  | 
