diff options
7 files changed, 63 insertions, 16 deletions
diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/leds b/target/linux/ar71xx/base-files/etc/uci-defaults/leds index 5e2e9acfb..07fd60f0b 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/leds +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/leds @@ -93,7 +93,8 @@ tew-712br)  	;;  tl-mr11u | \ -tl-mr3020) +tl-mr3020 | +tl-mr3040)  	ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"  	ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"  	ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan"  "eth0" diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network index 3f8795031..8f00e1987 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network @@ -141,6 +141,7 @@ ew-dorin |\  rb-411 |\  tl-mr11u |\  tl-mr3020 |\ +tl-mr3040 |\  tl-wa901nd |\  tl-wa901nd-v2 |\  tl-wr703n |\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 032988e5e..3ba23b787 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -327,6 +327,9 @@ ar71xx_board_detect() {  	*TL-MR3020)  		name="tl-mr3020"  		;; +	*TL-MR3040) +		name="tl-mr3040" +		;;  	*TL-MR3220)  		name="tl-mr3220"  		;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 02e391619..9f4ce2cb8 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -137,6 +137,7 @@ platform_check_image() {  		;;  	tl-mr11u | \  	tl-mr3020 | \ +	tl-mr3040 | \  	tl-mr3220 | \  	tl-mr3420 | \  	tl-wa901nd | \ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c index 87facff7f..6b2820711 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-mr11u.c @@ -1,5 +1,5 @@  /* - *  TP-LINK TL-MR11U board support + *  TP-LINK TL-MR11U/TL-MR3040 board support   *   *  Copyright (C) 2011 dongyuqi <729650915@qq.com>   *  Copyright (C) 2011-2012 Gabor Juhos <juhosg@openwrt.org> @@ -29,6 +29,7 @@  #define TL_MR11U_GPIO_BTN_RESET		11  #define TL_MR11U_GPIO_USB_POWER		8 +#define TL_MR3040_GPIO_USB_POWER	18  #define TL_MR11U_KEYS_POLL_INTERVAL	20	/* msecs */  #define TL_MR11U_KEYS_DEBOUNCE_INTERVAL	(3 * TL_MR11U_KEYS_POLL_INTERVAL) @@ -62,24 +63,24 @@ static struct gpio_led tl_mr11u_leds_gpio[] __initdata = {  static struct gpio_keys_button tl_mr11u_gpio_keys[] __initdata = {  	{ -		.desc		= "wps", +		.desc		= "reset",  		.type		= EV_KEY, -		.code		= KEY_WPS_BUTTON, +		.code		= KEY_RESTART,  		.debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL, -		.gpio		= TL_MR11U_GPIO_BTN_WPS, +		.gpio		= TL_MR11U_GPIO_BTN_RESET,  		.active_low	= 0,  	},  	{ -		.desc		= "reset", +		.desc		= "wps",  		.type		= EV_KEY, -		.code		= KEY_RESTART, +		.code		= KEY_WPS_BUTTON,  		.debounce_interval = TL_MR11U_KEYS_DEBOUNCE_INTERVAL, -		.gpio		= TL_MR11U_GPIO_BTN_RESET, +		.gpio		= TL_MR11U_GPIO_BTN_WPS,  		.active_low	= 0, -	} +	},  }; -static void __init tl_mr11u_setup(void) +static void __init common_setup(void)  {  	u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);  	u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); @@ -89,12 +90,7 @@ static void __init tl_mr11u_setup(void)  	ath79_register_m25p80(&tl_mr11u_flash_data);  	ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_mr11u_leds_gpio),  				 tl_mr11u_leds_gpio); -	ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL, -					ARRAY_SIZE(tl_mr11u_gpio_keys), -					tl_mr11u_gpio_keys); -	ath79_set_usb_power_gpio(TL_MR11U_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH, -				"USB power");  	ath79_register_usb();  	ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); @@ -106,5 +102,29 @@ static void __init tl_mr11u_setup(void)  	ath79_register_wmac(ee, mac);  } +static void __init tl_mr11u_setup(void) +{ +	common_setup(); + +	ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL, +					ARRAY_SIZE(tl_mr11u_gpio_keys), +					tl_mr11u_gpio_keys); +	ath79_set_usb_power_gpio(TL_MR11U_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH, +				"USB power"); +} +  MIPS_MACHINE(ATH79_MACH_TL_MR11U, "TL-MR11U", "TP-LINK TL-MR11U",  	     tl_mr11u_setup); + +static void __init tl_mr3040_setup(void) +{ +	common_setup(); + +	ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL, +					1, tl_mr11u_gpio_keys); +	ath79_set_usb_power_gpio(TL_MR3040_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH, +				"USB power"); +} + +MIPS_MACHINE(ATH79_MACH_TL_MR3040, "TL-MR3040", "TP-LINK TL-MR3040", +	     tl_mr3040_setup); diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index 9e038b667..625c10ea2 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -807,7 +807,7 @@ $(eval $(call SingleProfile,TPLINK,$(fs_64kraw),TLWR1043,tl-wr1043nd-v1,TL-WR104  $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR11U,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma))  $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3020,tl-mr3020-v1,TL-MR3020,ttyATH0,115200,0x30200001,1,4Mlzma)) -$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR11U,ttyATH0,115200,0x30400001,1,4Mlzma)) +$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLMR3040,tl-mr3040-v1,TL-MR3040,ttyATH0,115200,0x30400001,1,4Mlzma))  $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma))  $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR740NV4,tl-wr740n-v4,TL-WR741ND-v4,ttyATH0,115200,0x07400004,1,4Mlzma))  $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR741NV4,tl-wr741nd-v4,TL-WR741ND-v4,ttyATH0,115200,0x07410004,1,4Mlzma)) diff --git a/target/linux/ar71xx/patches-3.3/611-MIPS-ath79-TL-MR3040-support.patch b/target/linux/ar71xx/patches-3.3/611-MIPS-ath79-TL-MR3040-support.patch new file mode 100644 index 000000000..4e6d491d9 --- /dev/null +++ b/target/linux/ar71xx/patches-3.3/611-MIPS-ath79-TL-MR3040-support.patch @@ -0,0 +1,21 @@ +--- a/arch/mips/ath79/Kconfig ++++ b/arch/mips/ath79/Kconfig +@@ -412,7 +412,7 @@ config ATH79_MACH_EAP7660D + 	select ATH79_DEV_M25P80 +  + config ATH79_MACH_TL_MR11U +-	bool "TP-LINK TL-MR11U support" ++	bool "TP-LINK TL-MR11U/TL-MR3040 support" + 	select SOC_AR933X + 	select ATH79_DEV_ETH + 	select ATH79_DEV_GPIO_BUTTONS +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -69,6 +69,7 @@ enum ath79_mach_type { + 	ATH79_MACH_TEW_712BR,		/* TRENDnet TEW-712BR */ + 	ATH79_MACH_TL_MR11U,		/* TP-LINK TL-MR11U */ + 	ATH79_MACH_TL_MR3020,		/* TP-LINK TL-MR3020 */ ++	ATH79_MACH_TL_MR3040,		/* TP-LINK TL-MR3040 */ + 	ATH79_MACH_TL_MR3220,		/* TP-LINK TL-MR3220 */ + 	ATH79_MACH_TL_MR3420,		/* TP-LINK TL-MR3420 */ + 	ATH79_MACH_TL_WA901ND,		/* TP-LINK TL-WA901ND */  | 
