ramips: add support for unbranded XDX-RN502J board
This patch adds support for routers using a PCB marked XDX-RN502J V2.0, such as some unbranded routers like this: http://www.mediafire.com/?8acv87h6snn9fj6 http://www.mediafire.com/?do7xonw7scor4kn http://www.mediafire.com/?1ad49zvx3e7jyix http://www.mediafire.com/?i46cqiq66maa197 http://www.aliexpress.com/product-fm/516397994-Free-Shipping-300M-3G-WAN-Wireless-N-WiFi-USB-AP-Router-2-Antennas-wholesalers.html some reports also state the Aceex 22Y uses the same board. more information can be found in the following openwrt forum post https://forum.openwrt.org/viewtopic.php?id=34878 [juhosg: fix checkpatch warnings, use the GENERIC_4M template] Signed-off-by: bruno schwander <bruno@tinkerbox.org> SVN-Revision: 30809
This commit is contained in:
		| @@ -99,6 +99,9 @@ get_status_led() { | |||||||
| 	wr512-3gn) | 	wr512-3gn) | ||||||
| 		status_led="wr512:green:wps" | 		status_led="wr512:green:wps" | ||||||
| 		;; | 		;; | ||||||
|  | 	xdxrn502j) | ||||||
|  | 		status_led="xdxrn502j:green:power" | ||||||
|  | 		;; | ||||||
| 	esac | 	esac | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -70,7 +70,8 @@ case "$FIRMWARE" in | |||||||
| 	wl-351 | \ | 	wl-351 | \ | ||||||
| 	wli-tx4-ag300n | \ | 	wli-tx4-ag300n | \ | ||||||
| 	wr512-3gn | \ | 	wr512-3gn | \ | ||||||
| 	wr6202) | 	wr6202 | \ | ||||||
|  | 	xdxrn502j) | ||||||
| 		rt2x00_eeprom_extract "factory" 0 272 | 		rt2x00_eeprom_extract "factory" 0 272 | ||||||
| 		;; | 		;; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -28,7 +28,8 @@ preinit_set_mac_address() { | |||||||
| 	nbg-419n |\ | 	nbg-419n |\ | ||||||
| 	omni-emb |\ | 	omni-emb |\ | ||||||
| 	w502u    |\ | 	w502u    |\ | ||||||
| 	wr6202) | 	wr6202 |\ | ||||||
|  | 	xdxrn502j) | ||||||
| 		mac=$(ramips_get_mac_binary factory 40) | 		mac=$(ramips_get_mac_binary factory 40) | ||||||
| 		ifconfig eth0 hw ether $mac 2>/dev/null | 		ifconfig eth0 hw ether $mac 2>/dev/null | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -143,6 +143,9 @@ ramips_board_name() { | |||||||
| 	*"AWB WR6202") | 	*"AWB WR6202") | ||||||
| 		name="wr6202" | 		name="wr6202" | ||||||
| 		;; | 		;; | ||||||
|  | 	*"XDX RN502J") | ||||||
|  | 		name="xdxrn502j" | ||||||
|  | 		;; | ||||||
| 	*) | 	*) | ||||||
| 		name="generic" | 		name="generic" | ||||||
| 		;; | 		;; | ||||||
|   | |||||||
| @@ -49,6 +49,7 @@ enum ramips_mach_type { | |||||||
| 	RAMIPS_MACH_WL351,		/* Sitecom WL-351 v1 002 */ | 	RAMIPS_MACH_WL351,		/* Sitecom WL-351 v1 002 */ | ||||||
| 	RAMIPS_MACH_WR512_3GN,		/* SH-WR512NU/WS-WR512N1-like 3GN*/ | 	RAMIPS_MACH_WR512_3GN,		/* SH-WR512NU/WS-WR512N1-like 3GN*/ | ||||||
| 	RAMIPS_MACH_WR6202,		/* Accton WR6202 */ | 	RAMIPS_MACH_WR6202,		/* Accton WR6202 */ | ||||||
|  | 	RAMIPS_MACH_XDXRN502J,          /* unknown XDX-RN502J */ | ||||||
|  |  | ||||||
| 	/* RT3662 based machines */ | 	/* RT3662 based machines */ | ||||||
| 	RAMIPS_MACH_RT_N56U,		/* Asus RT-N56U */ | 	RAMIPS_MACH_RT_N56U,		/* Asus RT-N56U */ | ||||||
|   | |||||||
| @@ -121,6 +121,11 @@ config RT305X_MACH_NBG_419N | |||||||
| 	select RALINK_DEV_GPIO_BUTTONS | 	select RALINK_DEV_GPIO_BUTTONS | ||||||
| 	select RALINK_DEV_GPIO_LEDS | 	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 | endmenu | ||||||
|  |  | ||||||
| endif | endif | ||||||
|   | |||||||
| @@ -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_WL341V3)	+= mach-wl341v3.o | ||||||
| obj-$(CONFIG_RT305X_MACH_WL351)		+= mach-wl351.o | obj-$(CONFIG_RT305X_MACH_WL351)		+= mach-wl351.o | ||||||
| obj-$(CONFIG_RT305X_MACH_WR6202)	+= mach-wr6202.o | obj-$(CONFIG_RT305X_MACH_WR6202)	+= mach-wr6202.o | ||||||
|  | obj-$(CONFIG_RT305X_MACH_XDX_RN502J)    += mach-xdx-rn502j.o | ||||||
|   | |||||||
| @@ -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); | ||||||
| @@ -391,6 +391,10 @@ define Image/Build/Profile/WR6202 | |||||||
| 	$(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr6202,WR6202,ttyS1,115200,phys) | 	$(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr6202,WR6202,ttyS1,115200,phys) | ||||||
| endef | 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) | ifeq ($(CONFIG_RALINK_RT305X),y) | ||||||
| define Image/Build/Profile/Default | define Image/Build/Profile/Default | ||||||
| 	$(call Image/Build/Profile/ALL0256N,$(1)) | 	$(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/WL351,$(1)) | ||||||
| 	$(call Image/Build/Profile/WR5123GN,$(1)) | 	$(call Image/Build/Profile/WR5123GN,$(1)) | ||||||
| 	$(call Image/Build/Profile/WR6202,$(1)) | 	$(call Image/Build/Profile/WR6202,$(1)) | ||||||
|  | 	$(call Image/Build/Profile/XDXRN502J,$(1)) | ||||||
| endef | endef | ||||||
| endif | endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -117,6 +117,7 @@ CONFIG_RT305X_MACH_WL341V3=y | |||||||
| CONFIG_RT305X_MACH_WL351=y | CONFIG_RT305X_MACH_WL351=y | ||||||
| CONFIG_RT305X_MACH_WR512_3GN=y | CONFIG_RT305X_MACH_WR512_3GN=y | ||||||
| CONFIG_RT305X_MACH_WR6202=y | CONFIG_RT305X_MACH_WR6202=y | ||||||
|  | CONFIG_RT305X_MACH_XDX_RN502J=y | ||||||
| # CONFIG_SCSI_DMA is not set | # CONFIG_SCSI_DMA is not set | ||||||
| CONFIG_SERIAL_8250_NR_UARTS=4 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||||||
| CONFIG_SERIAL_8250_RT288X=y | CONFIG_SERIAL_8250_RT288X=y | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Gabor Juhos
					Gabor Juhos