diff options
12 files changed, 116 insertions, 2 deletions
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index f8dac497d..95f608a4f 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -69,7 +69,7 @@ get_status_led() {  	rt-n10-plus)  		status_led="asus:green:wps"  		;; -	rt-n56u) +	rt-n56u | wl-330n )  		status_led="asus:blue:power"  		;;  	sl-r7205) 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 bc2320857..7bd58d5fa 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 @@ -67,6 +67,7 @@ case "$FIRMWARE" in  	w502u | \  	wcr-150gn | \  	whr-g300n | \ +	wl-330n | \  	wl-351 | \  	wli-tx4-ag300n | \  	wr512-3gn | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/network b/target/linux/ramips/base-files/etc/uci-defaults/network index 77b65cb3a..a17fad8e9 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/network +++ b/target/linux/ramips/base-files/etc/uci-defaults/network @@ -16,7 +16,8 @@ ramips_setup_interfaces()  	ucidef_set_interface_loopback  	case $board in -	all0256n) +	all0256n | \ +	wl-330n)  		ucidef_set_interface_lan "eth0.1"  		;; 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 97cacfa5e..90c327a2e 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,6 +28,7 @@ preinit_set_mac_address() {  	nbg-419n |\  	omni-emb |\  	w502u    |\ +	wl-330n |\  	wr6202 |\  	xdxrn502j)  		mac=$(ramips_get_mac_binary factory 40) diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index faa248536..6e1da2304 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -53,6 +53,9 @@ ramips_board_name() {  	*"Argus ATP-52B")  		name="argus-atp52b"  		;; +	*"Asus WL-330N") +		name="wl-330n" +		;;  	*"Aztech HW550-3G")  		name="hw550-3g"  		;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 1f6910d76..4d0bb19c7 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -35,6 +35,7 @@ platform_check_image() {  	wr6202 |\  	v22rw-2x2 | \  	wl341v3 | \ +	wl-330n | \  	wli-tx4-ag300n | \  	whr-g300n |\  	wr512-3gn) 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 823416442..b101dcdac 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 @@ -28,6 +28,7 @@ enum ramips_mach_type {  	RAMIPS_MACH_RT_G32_B1,		/* Asus RT-G32 B1 */  	RAMIPS_MACH_RT_N10_PLUS,	/* Asus RT-N10+ */  	RAMIPS_MACH_NW718,		/* Netcore NW718 */ +	RAMIPS_MACH_WL_330N,		/* Asus WL-330N */  	/* RT3052 based machines */  	RAMIPS_MACH_ARGUS_ATP52B,	/* Argus ATP-52B */ diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig index 1bf960f7e..6c5a62f50 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig @@ -31,6 +31,11 @@ config RT305X_MACH_RT_N10_PLUS  	select RALINK_DEV_GPIO_BUTTONS  	select RALINK_DEV_GPIO_LEDS +config RT305X_MACH_WL_330N +	bool "Asus WL-330N board support" +	select RALINK_DEV_GPIO_BUTTONS +	select RALINK_DEV_GPIO_LEDS +  config RT305X_MACH_HW550_3G  	bool "Aztech HW550-3G support"  	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 aec57a011..db3c26210 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile @@ -32,6 +32,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_WL_330N)	+= mach-wl-330n.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 diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-wl-330n.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-wl-330n.c new file mode 100644 index 000000000..b548dfee1 --- /dev/null +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-wl-330n.c @@ -0,0 +1,94 @@ +/* + *  Asus WL_330N board support + * + *  Copyright (C) 2012 Frederic Leroy <fredo@starox.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 <linux/spi/spi.h> +#include <linux/spi/flash.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 WL_330N_GPIO_BUTTON_RESET 10 +#define WL_330N_GPIO_BUTTON_WPS 0 +#define WL_330N_GPIO_LED_LINK 9 +#define WL_330N_GPIO_LED_POWER 11 +#define WL_330N_KEYS_POLL_INTERVAL 20 +#define WL_330N_KEYS_DEBOUNCE_INTERVAL	(3 * WL_330N_KEYS_POLL_INTERVAL) + +const struct flash_platform_data wl_330n_flash = { +	.type		= "mx25l3205d", +}; + +struct spi_board_info wl_330n_spi_slave_info[] __initdata = { +	{ +		.modalias	= "m25p80", +		.platform_data	= &wl_330n_flash, +		.irq		= -1, +		.max_speed_hz	= 10000000, +		.bus_num	= 0, +		.chip_select	= 0, +	}, +}; + +static struct gpio_keys_button wl_330n_gpio_buttons[] __initdata = { +	{ +		.desc		= "reset", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.debounce_interval = WL_330N_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= WL_330N_GPIO_BUTTON_RESET, +		.active_low	= 1, +	}, +	{ +		.desc		= "wps", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.debounce_interval = WL_330N_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= WL_330N_GPIO_BUTTON_WPS, +		.active_low	= 1, +	} +}; + +static struct gpio_led wl_330n_leds_gpio[] __initdata = { +	{ +		.name		= "asus:blue:link", +		.gpio		= WL_330N_GPIO_LED_LINK, +		.active_low	= 1, +	}, { +		.name		= "asus:blue:power", +		.gpio		= WL_330N_GPIO_LED_POWER, +		.active_low	= 1, +	} +}; + +static void __init wl_330n_init(void) +{ +	rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); +	rt305x_register_spi(wl_330n_spi_slave_info, +			    ARRAY_SIZE(wl_330n_spi_slave_info)); +	rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_WLLLL; +	rt305x_register_ethernet(); +	ramips_register_gpio_leds(-1, ARRAY_SIZE(wl_330n_leds_gpio), +				  wl_330n_leds_gpio); +	ramips_register_gpio_buttons(-1, WL_330N_KEYS_POLL_INTERVAL, +				     ARRAY_SIZE(wl_330n_gpio_buttons), +				     wl_330n_gpio_buttons); +	rt305x_register_wifi(); +	rt305x_register_wdt(); +} + +MIPS_MACHINE(RAMIPS_MACH_WL_330N, "WL_330N", "Asus WL-330N", +	     wl_330n_init); diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 97f4a9a42..3499c9e76 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -378,6 +378,10 @@ define Image/Build/Profile/WHRG300N  	$(call Image/Build/Template/$(fs_squashfs)/$(1),WHRG300N)  endef +define Image/Build/Profile/WL_330N +	$(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,wl-330n,WL_330N,ttyS1,57600,spi) +endef +  define Image/Build/Profile/WL341V3  	$(call Image/Build/Template/$(fs_squash)/$(1),WL341V3,wl341v3,WL341V3)  endef @@ -421,6 +425,7 @@ define Image/Build/Profile/Default  	$(call Image/Build/Profile/W502U,$(1))  	$(call Image/Build/Profile/WCR150GN,$(1))  	$(call Image/Build/Profile/WHRG300N,$(1)) +	$(call Image/Build/Profile/WL_330N,$(1))  	$(call Image/Build/Profile/WL341V3,$(1))  	$(call Image/Build/Profile/WL351,$(1))  	$(call Image/Build/Profile/WR5123GN,$(1)) diff --git a/target/linux/ramips/rt305x/config-3.2 b/target/linux/ramips/rt305x/config-3.2 index cd25acc2a..4c928a4cd 100644 --- a/target/linux/ramips/rt305x/config-3.2 +++ b/target/linux/ramips/rt305x/config-3.2 @@ -115,6 +115,7 @@ CONFIG_RT305X_MACH_WCR150GN=y  CONFIG_RT305X_MACH_WHR_G300N=y  CONFIG_RT305X_MACH_WL341V3=y  CONFIG_RT305X_MACH_WL351=y +CONFIG_RT305X_MACH_WL_330N=y  CONFIG_RT305X_MACH_WR512_3GN=y  CONFIG_RT305X_MACH_WR6202=y  CONFIG_RT305X_MACH_XDX_RN502J=y  | 
