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 the patch was made against OpenWrt svn rev 30708 Signed-off-by: bruno schwander <[email protected]> Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig =================================================================== --- target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig (revision 30708) +++ target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig (working copy) @@ -116,6 +116,11 @@ 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 Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile =================================================================== --- target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile (revision 30708) +++ target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile (working copy) @@ -34,3 +34,4 @@ 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 Index: target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c =================================================================== --- target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c (revision 0) +++ target/linux/ramips/files/arch/mips/ralink/rt305x/mach-xdx-rn502j.c (revision 0) @@ -0,0 +1,79 @@ +/* + * Unknown router name/model, PCB marked with XDX-RN502J + * + * Copyright (C) 2011 Bruno Schwander [email protected] + * + * 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); Index: target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h =================================================================== --- target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h (revision 30708) +++ target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h (working copy) @@ -48,6 +48,7 @@ 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 */ Index: target/linux/ramips/image/Makefile =================================================================== --- target/linux/ramips/image/Makefile (revision 30708) +++ target/linux/ramips/image/Makefile (working copy) @@ -241,6 +241,17 @@ $(call BuildFirmware/Buffalo2,$(1),wli-tx4-ag300n,WLI-TX4-AG300N,$(call mkmtd/phys,$(mtdlayout_wlitx4ag300n)),917504,2883584) endef + +mtdlayout_xdxrn502j=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,1024k(kernel),2752k(rootfs),3776k@0x50000(firmware) +define BuildFirmware/XDXRN502J + $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_xdxrn502j)),1048576,2818048) +endef + +define BuildFirmware/XDXRN502J/initramfs + $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_xdxrn502j))) +endef + + # # Templates # @@ -378,6 +389,10 @@ $(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),XDXRN502J,xdxrn502j,XDXRN502J,ttyS1,57600,phys) +endef + ifeq ($(CONFIG_RALINK_RT305X),y) define Image/Build/Profile/Default $(call Image/Build/Profile/ALL0256N,$(1)) @@ -403,6 +418,7 @@ $(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 Index: target/linux/ramips/rt305x/config-3.2 =================================================================== --- target/linux/ramips/rt305x/config-3.2 (revision 30708) +++ target/linux/ramips/rt305x/config-3.2 (working copy) @@ -116,6 +116,7 @@ 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 Index: target/linux/ramips/base-files/lib/ramips.sh =================================================================== --- target/linux/ramips/base-files/lib/ramips.sh (revision 30708) +++ target/linux/ramips/base-files/lib/ramips.sh (working copy) @@ -140,6 +140,9 @@ *"AWB WR6202") name="wr6202" ;; + *"XDX RN502J") + name="xdxrn502j" + ;; *) name="generic" ;; Index: target/linux/ramips/base-files/lib/preinit/06_set_iface_mac =================================================================== --- target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (revision 30708) +++ target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (working copy) @@ -28,6 +28,7 @@ nbg-419n |\ omni-emb |\ w502u |\ + xdxrn502j |\ wr6202) mac=$(ramips_get_mac_binary factory 40) ifconfig eth0 hw ether $mac 2>/dev/null @@ -36,6 +37,7 @@ mac=$(ramips_get_mac_binary board-nvram 65440) ifconfig eth0 hw ether $mac 2>/dev/null ;; + esac } Index: target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom =================================================================== --- target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom (revision 30708) +++ target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom (working copy) @@ -69,7 +69,8 @@ wl-351 | \ wli-tx4-ag300n | \ wr512-3gn | \ - wr6202) + wr6202 | \ + xdxrn502j) rt2x00_eeprom_extract "factory" 0 272 ;; Index: target/linux/ramips/base-files/etc/diag.sh =================================================================== --- target/linux/ramips/base-files/etc/diag.sh (revision 30708) +++ target/linux/ramips/base-files/etc/diag.sh (working copy) @@ -96,6 +96,9 @@ wr512-3gn) status_led="wr512:green:wps" ;; + xdxrn502j) + status_led="xdxrn502j:green:power" + ;; esac } _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
