Hey, guys!

Here is a patch for adding TP-Link TL-WR720N v3 to OpenWrt.
TP-Link TL-WR720N v3 is only sale in China, you can see the product information for that in http://www.tp-link.com.cn/pages/product-detail.asp?d=264&t=1
TL-WR720N v3's hardware is same as TL-WR703N, but TL-WR720N have 1 WAN/LAN Port and 1 LAN Port. The other is TL-WR720N have AP, 3G and Router hardware switcher(like TL-WR3020?), but I don't know what gpio number for that.....

-----------------------------------------------------------------------
Signed-off-by: Hintay Lin <hin...@me.com>

Index: target/linux/ar71xx/base-files/etc/diag.sh
===================================================================
--- target/linux/ar71xx/base-files/etc/diag.sh (Version 33288)
+++ target/linux/ar71xx/base-files/etc/diag.sh (Working Copy)
@@ -132,6 +132,7 @@
status_led="tp-link:green:system"
;;
tl-wdr4300 | \
+ tl-wr720n-v3 | \
tl-wr703n)
status_led="tp-link:blue:system"
;;
Index: target/linux/ar71xx/base-files/etc/uci-defaults/network
===================================================================
--- target/linux/ar71xx/base-files/etc/uci-defaults/network (Version 33288)
+++ target/linux/ar71xx/base-files/etc/uci-defaults/network (Working Copy)
@@ -153,7 +153,8 @@
pb42 |\
pb44 |\
routerstation|\
-wpe72)
+wpe72 |\
+tl-wr720n-v3)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
;;

Index: target/linux/ar71xx/base-files/lib/ar71xx.sh
===================================================================
--- target/linux/ar71xx/base-files/lib/ar71xx.sh (Version 33288)
+++ target/linux/ar71xx/base-files/lib/ar71xx.sh (Working Copy)
@@ -75,6 +75,9 @@
"070300"*)
model="TP-Link TL-WR703N"
;;
+ "072000"*)
+ model="TP-Link TL-WR720N"
+ ;;
"070100"*)
model="TP-Link TL-WA701N/ND"
;;
@@ -354,6 +357,9 @@
*"TL-WR703N v1")
name="tl-wr703n"
;;
+ *"TL-WR720N v3")
+ name="tl-wr703n-v3"
+ ;;
*"TL-MR11U")
name="tl-mr11u"
;;
Index: target/linux/ar71xx/base-files/lib/upgrade/platform.sh
===================================================================
--- target/linux/ar71xx/base-files/lib/upgrade/platform.sh (Version 33288)
+++ target/linux/ar71xx/base-files/lib/upgrade/platform.sh (Working Copy)
@@ -143,6 +143,7 @@
tl-wa901nd-v2 | \
tl-wdr4300 | \
tl-wr703n | \
+ tl-wr720n-v3 | \
tl-wr741nd | \
tl-wr741nd-v4 | \
tl-wr841n-v1 | \
Index: target/linux/ar71xx/config-3.3
===================================================================
--- target/linux/ar71xx/config-3.3 (Version 33288)
+++ target/linux/ar71xx/config-3.3 (Working Copy)
@@ -61,6 +61,7 @@
CONFIG_ATH79_MACH_TL_WR1043ND=y
CONFIG_ATH79_MACH_TL_WR2543N=y
CONFIG_ATH79_MACH_TL_WR703N=y
+CONFIG_ATH79_MACH_TL_WR720N_V3=y
CONFIG_ATH79_MACH_TL_WR741ND=y
CONFIG_ATH79_MACH_TL_WR741ND_V4=y
CONFIG_ATH79_MACH_TL_WR841N_V1=y
Index: target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr1041n-v2.c
===================================================================
--- target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr1041n-v2.c (Version 33288)
+++ target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr1041n-v2.c (Working Copy)
@@ -138,7 +138,8 @@
ath79_register_mdio(0, 0x0);

ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
-
+ ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2);
+
mdiobus_register_board_info(db120_mdio0_info,
ARRAY_SIZE(db120_mdio0_info));

@@ -147,7 +148,14 @@
ath79_eth0_data.phy_mask = BIT(0);
ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
ath79_eth0_pll_data.pll_1000 = 0x06000000;
+
+ ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
+ ath79_eth1_data.phy_mask = BIT(0);
+ ath79_eth1_data.mii_bus_dev = &ath79_mdio0_device.dev;
+ ath79_eth1_pll_data.pll_1000 = 0x06000000;
+
ath79_register_eth(0);
+ ath79_register_eth(1);
}

MIPS_MACHINE(ATH79_MACH_TL_WR1041N_V2, "TL-WR1041N-v2",
Index: target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr720n-v3.c
===================================================================
--- target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr720n-v3.c (Version 0)
+++ target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr720n-v3.c (Working Copy)
@@ -0,0 +1,84 @@
+/*
+ * TP-LINK TL-WR720N board support
+ *
+ * Copyright (C) 2012 Hintay Lin <hin...@me.com>
+ *
+ * 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/gpio.h>
+
+#include <asm/mach-ath79/ath79.h>
+
+#include "dev-eth.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-m25p80.h"
+#include "dev-usb.h"
+#include "dev-wmac.h"
+#include "machtypes.h"
+
+#define TL_WR720NV3_GPIO_LED_SYSTEM 27
+#define TL_WR720NV3_GPIO_BTN_RESET 11
+
+#define TL_WR720NV3_GPIO_USB_POWER 8
+
+#define TL_WR720NV3_KEYS_POLL_INTERVAL 20 /* msecs */
+#define TL_WR720NV3_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR720NV3_KEYS_POLL_INTERVAL)
+
+static const char *tl_wr720nv3_part_probes[] = {
+ "tp-link",
+ NULL,
+};
+
+static struct flash_platform_data tl_wr720nv3_flash_data = {
+ .part_probes = tl_wr720nv3_part_probes,
+};
+
+static struct gpio_led tl_wr720nv3_leds_gpio[] __initdata = {
+ {
+ .name = "tp-link:blue:system",
+ .gpio = TL_WR720NV3_GPIO_LED_SYSTEM,
+ .active_low = 1,
+ },
+};
+
+static struct gpio_keys_button tl_wr720nv3_gpio_keys[] __initdata = {
+ {
+ .desc = "reset",
+ .type = EV_KEY,
+ .code = KEY_RESTART,
+ .debounce_interval = TL_WR720NV3_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = TL_WR720NV3_GPIO_BTN_RESET,
+ .active_low = 0,
+ }
+};
+
+static void __init tl_wr720nv3_setup(void)
+{
+ u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
+ u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+
+ ath79_register_m25p80(&tl_wr720nv3_flash_data);
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr720nv3_leds_gpio),
+ tl_wr720nv3_leds_gpio);
+ ath79_register_gpio_keys_polled(-1, TL_WR720NV3_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(tl_wr720nv3_gpio_keys),
+ tl_wr720nv3_gpio_keys);
+
+ ath79_set_usb_power_gpio(TL_WR720NV3_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH,
+ "USB power");
+ ath79_register_usb();
+
+ ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
+
+ ath79_register_mdio(0, 0x0);
+ ath79_register_eth(0);
+
+ ath79_register_wmac(ee, mac);
+}
+
+MIPS_MACHINE(ATH79_MACH_TL_WR720NV3, "TL-WR720N-V3", "TP-LINK TL-WR720N v3",
+ tl_wr720nv3_setup);
Index: target/linux/ar71xx/generic/profiles/tp-link.mk
===================================================================
--- target/linux/ar71xx/generic/profiles/tp-link.mk (Version 33288)
+++ target/linux/ar71xx/generic/profiles/tp-link.mk (Working Copy)
@@ -72,6 +72,18 @@
$(eval $(call Profile,TLWR703))


+define Profile/TLWR720
+ NAME:=TP-LINK TL-WR720N
+ PACKAGES:=kmod-usb-core kmod-usb2
+endef
+
+
+define Profile/TLWR720/Description
+ Package set optimized for the TP-LINK TL-WR720N.
+endef
+$(eval $(call Profile,TLWR720))
+
+
define Profile/TLWA701
NAME:=TP-LINK TL-WA701N/ND
PACKAGES:=
Index: target/linux/ar71xx/image/Makefile
===================================================================
--- target/linux/ar71xx/image/Makefile (Version 33288)
+++ target/linux/ar71xx/image/Makefile (Working Copy)
@@ -809,6 +809,7 @@
$(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),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,4Mlzma))
+$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR720NV3,tl-wr720n-v3,TL-WR720N-v3,ttyATH0,115200,0x07200103,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))
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR1041,tl-wr1041n-v2,TL-WR1041N-v2,ttyS0,115200,0x10410002,1,4Mlzma))
Index: target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch
===================================================================
--- target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch (Version 33288)
+++ target/linux/ar71xx/patches-3.3/610-MIPS-ath79-openwrt-machines.patch (Working Copy)
@@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
-@@ -16,18 +16,94 @@
+@@ -16,18 +16,95 @@

enum ath79_mach_type {
ATH79_MACH_GENERIC = 0,
@@ -62,6 +62,7 @@
+ ATH79_MACH_TL_WR1043ND, /* TP-LINK TL-WR1043ND */
+ ATH79_MACH_TL_WR2543N, /* TP-LINK TL-WR2543N/ND */
+ ATH79_MACH_TL_WR703N, /* TP-LINK TL-WR703N */
++ ATH79_MACH_TL_WR720N_V3, /* TP-LINK TL-WR720N v3 */
+ ATH79_MACH_TL_WR741ND, /* TP-LINK TL-WR741ND */
+ ATH79_MACH_TL_WR741ND_V4, /* TP-LINK TL-WR741ND v4*/
+ ATH79_MACH_TL_WR841N_V1, /* TP-LINK TL-WR841N v1 */
@@ -189,7 +190,7 @@
config ATH79_MACH_PB44
bool "Atheros PB44 reference board"
select SOC_AR71XX
-@@ -66,6 +137,427 @@ config ATH79_MACH_PB44
+@@ -66,6 +137,437 @@ config ATH79_MACH_PB44
Say 'Y' here if you want your kernel to support the
Atheros PB44 reference board.

@@ -516,6 +517,16 @@
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
++config ATH79_MACH_TL_WR720N_V3
++ bool "TP-LINK TL-WR720N v3 support"
++ select SOC_AR933X
++ select ATH79_DEV_ETH
++ select ATH79_DEV_GPIO_BUTTONS
++ select ATH79_DEV_LEDS_GPIO
++ select ATH79_DEV_M25P80
++ select ATH79_DEV_USB
++ select ATH79_DEV_WMAC
++
+config ATH79_MACH_TL_WR741ND
+ bool "TP-LINK TL-WR741ND support"
+ select SOC_AR724X
@@ -679,7 +690,7 @@
endif
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
-@@ -36,9 +36,62 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP) += pci-ath9k-fixup.o
+@@ -36,9 +36,63 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP) += pci-ath9k-fixup.o
#
# Machines
#
@@ -728,6 +739,7 @@
+obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o
+obj-$(CONFIG_ATH79_MACH_TL_WR2543N) += mach-tl-wr2543n.o
+obj-$(CONFIG_ATH79_MACH_TL_WR703N) += mach-tl-wr703n.o
++obj-$(CONFIG_ATH79_MACH_TL_WR720N_V3) += mach-tl-wr720n-v3.o
+obj-$(CONFIG_ATH79_MACH_UBNT) += mach-ubnt.o
obj-$(CONFIG_ATH79_MACH_UBNT_XM) += mach-ubnt-xm.o
+obj-$(CONFIG_ATH79_MACH_WHR_HP_G300N) += mach-whr-hp-g300n.o
Index: tools/firmware-utils/src/mktplinkfw.c
===================================================================
--- tools/firmware-utils/src/mktplinkfw.c (Version 33288)
+++ tools/firmware-utils/src/mktplinkfw.c (Working Copy)
@@ -37,6 +37,7 @@
#define HWID_TL_WA901ND_V1 0x09010001
#define HWID_TL_WA901ND_V2 0x09010002
#define HWID_TL_WR703N_V1 0x07030101
+#define HWID_TL_WR720N_V3 0x07200103
#define HWID_TL_WR741ND_V1 0x07410001
#define HWID_TL_WR741ND_V4 0x07410004
#define HWID_TL_WR740N_V1 0x07400001
@@ -283,6 +284,11 @@
.hw_rev = 1,
.layout_id = "4Mlzma",
}, {
+ .id = "TL-WR720Nv3",
+ .hw_id = HWID_TL_WR720N_V3,
+ .hw_rev = 1,
+ .layout_id = "4Mlzma",
+ }, {
/* terminating entry */
}
};

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to