ar71xx: add support for TP-LINK TL-WR941ND v6 (international version)

The international version is completely different from the already
supported Chinese version. The WLAN of the QCA956x SoC used by this router
has been fixed in r46948.

This patch looks like it changes a lot in
700-MIPS-ath79-openwrt-machines.patch; that is not the case. Unfortunately,
quilt decided to completely reorganize the Kconfig patch even though only
a single section has been added.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 47420
v19.07.3_mercusys_ac12_duma
Felix Fietkau 9 years ago
parent 1d6a530fe6
commit 7f75961e38

@ -295,7 +295,8 @@ get_status_led() {
tl-wdr4300 | \
tl-wr703n | \
tl-wr710n | \
tl-wr720n-v3)
tl-wr720n-v3 | \
tl-wr941nd-v6)
status_led="tp-link:blue:system"
;;
tl-wr841n-v9)

@ -510,6 +510,15 @@ tl-wr941nd-v5)
ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
;;
tl-wr941nd-v6)
ucidef_set_led_netdev "wan" "WAN" "tp-link:blue:wan" "eth0"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:blue:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:blue:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:blue:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:blue:lan4" "switch0" "0x02"
ucidef_set_led_wlan "wlan" "WLAN" "tp-link:blue:wlan" "phy0tpt"
;;
tl-wa830re-v2)
ucidef_set_led_netdev "lan" "LAN" "tp-link:green:lan" "eth0"
ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"

@ -243,6 +243,7 @@ tl-mr3420-v2 |\
tl-wr841n-v8 |\
tl-wr842n-v2 |\
tl-wr941nd-v5 |\
tl-wr941nd-v6 |\
tl-wdr6500-v2 |\
wnr2000-v3 |\
wnr2000-v4 |\

@ -835,6 +835,9 @@ ar71xx_board_detect() {
*"TL-WR941N/ND v5")
name="tl-wr941nd-v5"
;;
*"TL-WR941N/ND v6")
name="tl-wr941nd-v6"
;;
*"TL-WR703N v1")
name="tl-wr703n"
;;

@ -36,6 +36,7 @@ set_preinit_iface() {
tl-wr720n-v3 |\
tl-wr841n-v8 |\
tl-wr842n-v2 |\
tl-wr941nd-v6 |\
wnr2000-v3 |\
wnr2200 |\
wnr612-v2 |\

@ -361,6 +361,7 @@ platform_check_image() {
tl-wr842n-v2 | \
tl-wr941nd | \
tl-wr941nd-v5 | \
tl-wr941nd-v6 | \
tl-wr1041n-v2 | \
tl-wr1043nd | \
tl-wr1043nd-v2 | \

@ -141,6 +141,7 @@ CONFIG_ATH79_MACH_TL_WR841N_V1=y
CONFIG_ATH79_MACH_TL_WR841N_V8=y
CONFIG_ATH79_MACH_TL_WR841N_V9=y
CONFIG_ATH79_MACH_TL_WR941ND=y
CONFIG_ATH79_MACH_TL_WR941ND_V6=y
CONFIG_ATH79_MACH_TUBE2H=y
CONFIG_ATH79_MACH_UBNT=y
CONFIG_ATH79_MACH_UBNT_XM=y

@ -0,0 +1,149 @@
/*
* TP-LINK TL-WR941N/ND v6 board support
*
* Copyright (C) 2015 Matthias Schiffer <mschiffer@universe-factory.net>
*
* 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 <linux/platform_device.h>
#include <asm/mach-ath79/ath79.h>
#include <asm/mach-ath79/ar71xx_regs.h>
#include "common.h"
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
#include "dev-leds-gpio.h"
#include "dev-m25p80.h"
#include "dev-wmac.h"
#include "machtypes.h"
#define TL_WR941ND_V6_GPIO_LED_QSS 3
#define TL_WR941ND_V6_GPIO_LED_WAN 14
#define TL_WR941ND_V6_GPIO_LED_WAN_RED 15
#define TL_WR941ND_V6_GPIO_LED_LAN1 7
#define TL_WR941ND_V6_GPIO_LED_LAN2 6
#define TL_WR941ND_V6_GPIO_LED_LAN3 5
#define TL_WR941ND_V6_GPIO_LED_LAN4 4
#define TL_WR941ND_V6_GPIO_LED_WLAN 8
#define TL_WR941ND_V6_GPIO_LED_SYSTEM 18
#define TL_WR941ND_V6_GPIO_BTN_RESET 1
#define TL_WR941ND_V6_GPIO_BTN_RFKILL 2
#define TL_WR941ND_V6_KEYS_POLL_INTERVAL 20
#define TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR941ND_V6_KEYS_POLL_INTERVAL)
static struct gpio_led tl_wr941nd_v6_leds_gpio[] __initdata = {
{
.name = "tp-link:blue:qss",
.gpio = TL_WR941ND_V6_GPIO_LED_QSS,
.active_low = 1,
},
{
.name = "tp-link:blue:wan",
.gpio = TL_WR941ND_V6_GPIO_LED_WAN,
.active_low = 1,
},
{
.name = "tp-link:red:wan",
.gpio = TL_WR941ND_V6_GPIO_LED_WAN_RED,
.active_low = 0,
},
{
.name = "tp-link:blue:lan1",
.gpio = TL_WR941ND_V6_GPIO_LED_LAN1,
.active_low = 1,
},
{
.name = "tp-link:blue:lan2",
.gpio = TL_WR941ND_V6_GPIO_LED_LAN2,
.active_low = 1,
},
{
.name = "tp-link:blue:lan3",
.gpio = TL_WR941ND_V6_GPIO_LED_LAN3,
.active_low = 1,
},
{
.name = "tp-link:blue:lan4",
.gpio = TL_WR941ND_V6_GPIO_LED_LAN4,
.active_low = 1,
},
{
.name = "tp-link:blue:wlan",
.gpio = TL_WR941ND_V6_GPIO_LED_WLAN,
.active_low = 1,
},
{
.name = "tp-link:blue:system",
.gpio = TL_WR941ND_V6_GPIO_LED_SYSTEM,
.active_low = 1,
},
};
static struct gpio_keys_button tl_wr941nd_v6_gpio_keys[] __initdata = {
{
.desc = "Reset button",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL,
.gpio = TL_WR941ND_V6_GPIO_BTN_RESET,
.active_low = 1,
}, {
.desc = "RFKILL button",
.type = EV_KEY,
.code = KEY_RFKILL,
.debounce_interval = TL_WR941ND_V6_KEYS_DEBOUNCE_INTERVAL,
.gpio = TL_WR941ND_V6_GPIO_BTN_RFKILL,
.active_low = 1,
}
};
static const char *tl_wr941n_v6_part_probes[] = {
"tp-link",
NULL,
};
static struct flash_platform_data tl_wr941n_v6_flash_data = {
.part_probes = tl_wr941n_v6_part_probes,
};
static void __init tl_wr941nd_v6_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_m25p80(&tl_wr941n_v6_flash_data);
ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr941nd_v6_leds_gpio),
tl_wr941nd_v6_leds_gpio);
ath79_register_gpio_keys_polled(-1, TL_WR941ND_V6_KEYS_POLL_INTERVAL,
ARRAY_SIZE(tl_wr941nd_v6_gpio_keys),
tl_wr941nd_v6_gpio_keys);
ath79_register_mdio(0, 0x0);
ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
ath79_init_mac(ath79_eth1_data.mac_addr, mac, -1);
ath79_switch_data.phy4_mii_en = 1;
ath79_register_eth(0);
ath79_register_eth(1);
ath79_register_wmac(ee, mac);
}
MIPS_MACHINE(ATH79_MACH_TL_WR941ND_V6, "TL-WR941ND-v6", "TP-LINK TL-WR941N/ND v6",
tl_wr941nd_v6_setup);

@ -774,6 +774,13 @@ define Device/tl-wr941nd-v5
TPLINK_HWID := 0x09410005
endef
define Device/tl-wr941nd-v6
$(Device/tplink-4mlzma)
BOARDNAME := TL-WR941ND-v6
DEVICE_PROFILE := TLWR941
TPLINK_HWID := 0x09410006
endef
# Chinese version (unlike European) is similar to the TL-WDR3500
define Device/tl-wr941nd-v6-cn
$(Device/tplink-4mlzma)
@ -781,7 +788,7 @@ define Device/tl-wr941nd-v6-cn
DEVICE_PROFILE := TLWR941
TPLINK_HWID := 0x09410006
endef
TARGET_DEVICES += tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6-cn
TARGET_DEVICES += tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn
define Device/tl-wr1041n-v2
$(Device/tplink-4mlzma)

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -16,24 +16,211 @@
@@ -16,24 +16,212 @@
enum ath79_mach_type {
ATH79_MACH_GENERIC = 0,
@ -159,6 +159,7 @@
+ ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */
+ ATH79_MACH_TL_WR941ND, /* TP-LINK TL-WR941ND */
+ ATH79_MACH_TL_WR941ND_V5, /* TP-LINK TL-WR941ND v5 */
+ ATH79_MACH_TL_WR941ND_V6, /* TP-LINK TL-WR941ND v6 */
+ ATH79_MACH_TUBE2H, /* Alfa Network Tube2H */
+ ATH79_MACH_UBNT_AIRGW, /* Ubiquiti AirGateway */
+ ATH79_MACH_UBNT_AIRGWP, /* Ubiquiti AirGateway Pro */
@ -305,7 +306,7 @@
config ATH79_MACH_AP121
bool "Atheros AP121 reference board"
select SOC_AR933X
@@ -11,62 +95,1107 @@ config ATH79_MACH_AP121
@@ -11,62 +95,1116 @@ config ATH79_MACH_AP121
select ATH79_DEV_M25P80
select ATH79_DEV_USB
select ATH79_DEV_WMAC
@ -1186,10 +1187,7 @@
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
-config ATH79_MACH_AP136
- bool "Atheros AP136/AP135 reference board"
- select SOC_QCA955X
+
+config ATH79_MACH_TL_WA7210N_V2
+ bool "TP-LINK TL-WA7210N v2 support"
+ select SOC_AR724X
@ -1204,19 +1202,12 @@
+ bool "TP-LINK TL-WA830RE v2 support"
+ select SOC_AR934X
+ select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
- select ATH79_DEV_NFC
- select ATH79_DEV_SPI
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
select ATH79_DEV_USB
select ATH79_DEV_WMAC
- help
- Say 'Y' here if you want your kernel to support the
- Atheros AP136 or AP135 reference boards.
-config ATH79_MACH_AP81
- bool "Atheros AP81 reference board"
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
+config ATH79_MACH_TL_WA901ND
+ bool "TP-LINK TL-WA901ND/TL-WA7510N support"
+ select SOC_AR724X
@ -1228,11 +1219,11 @@
+
+config ATH79_MACH_TL_WA901ND_V2
+ bool "TP-LINK TL-WA901ND v2 support"
select SOC_AR913X
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
+ select SOC_AR913X
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_WMAC
+
+config ATH79_MACH_TL_WDR3500
@ -1243,34 +1234,13 @@
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
select ATH79_DEV_USB
select ATH79_DEV_WMAC
- help
- Say 'Y' here if you want your kernel to support the
- Atheros AP81 reference board.
-config ATH79_MACH_DB120
- bool "Atheros DB120 reference board"
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
+config ATH79_MACH_TL_WDR4300
+ bool "TP-LINK TL-WDR3600/4300/4310 board support"
select SOC_AR934X
select ATH79_DEV_AP9X_PCI if PCI
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
- select ATH79_DEV_NFC
select ATH79_DEV_USB
select ATH79_DEV_WMAC
- help
- Say 'Y' here if you want your kernel to support the
- Atheros DB120 reference board.
-config ATH79_MACH_PB44
- bool "Atheros PB44 reference board"
+config ATH79_MACH_TL_WR703N
+ bool "TP-LINK TL-WR703N/TL-WR710N/TL-MR10U support"
+ select SOC_AR933X
+ select SOC_AR934X
+ select ATH79_DEV_AP9X_PCI if PCI
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
@ -1278,8 +1248,8 @@
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
+config ATH79_MACH_TL_WR720N_V3
+ bool "TP-LINK TL-WR720N v3/v4 support"
+config ATH79_MACH_TL_WR703N
+ bool "TP-LINK TL-WR703N/TL-WR710N/TL-MR10U support"
+ select SOC_AR933X
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
@ -1287,7 +1257,28 @@
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_DEV_WMAC
+
-config ATH79_MACH_AP136
- bool "Atheros AP136/AP135 reference board"
- select SOC_QCA955X
+config ATH79_MACH_TL_WR720N_V3
+ bool "TP-LINK TL-WR720N v3/v4 support"
+ select SOC_AR933X
+ select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
- select ATH79_DEV_NFC
- select ATH79_DEV_SPI
+ select ATH79_DEV_M25P80
select ATH79_DEV_USB
select ATH79_DEV_WMAC
- help
- Say 'Y' here if you want your kernel to support the
- Atheros AP136 or AP135 reference boards.
-config ATH79_MACH_AP81
- bool "Atheros AP81 reference board"
- select SOC_AR913X
+config ATH79_MACH_TL_WR741ND
+ bool "TP-LINK TL-WR741ND support"
+ select SOC_AR724X
@ -1300,21 +1291,25 @@
+config ATH79_MACH_TL_WR741ND_V4
+ bool "TP-LINK TL-WR741ND v4/TL-MR3220 v2 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_WR841N_V1
+ bool "TP-LINK TL-WR841N v1 support"
select SOC_AR71XX
+ select ATH79_DEV_DSA
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
- select ATH79_DEV_SPI
select ATH79_DEV_M25P80
select ATH79_DEV_USB
select ATH79_DEV_WMAC
- help
- Say 'Y' here if you want your kernel to support the
- Atheros AP81 reference board.
-config ATH79_MACH_DB120
- bool "Atheros DB120 reference board"
+config ATH79_MACH_TL_WR841N_V1
+ bool "TP-LINK TL-WR841N v1 support"
+ select SOC_AR71XX
+ select ATH79_DEV_DSA
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
+ select ATH79_DEV_M25P80
+
+config ATH79_MACH_TL_WR841N_V8
@ -1346,17 +1341,32 @@
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_WMAC
+
+config ATH79_MACH_TL_WR1041N_V2
+ bool "TP-LINK TL-WR1041N v2 support"
+ select SOC_AR934X
+ select ATH79_DEV_AP9X_PCI if PCI
+config ATH79_MACH_TL_WR941ND_V6
+ bool "TP-LINK TL-WR941ND v6 support"
+ select SOC_QCA956X
+ 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_WR1041N_V2
+ bool "TP-LINK TL-WR1041N v2 support"
select SOC_AR934X
select ATH79_DEV_AP9X_PCI if PCI
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
- select ATH79_DEV_NFC
select ATH79_DEV_USB
select ATH79_DEV_WMAC
- help
- Say 'Y' here if you want your kernel to support the
- Atheros DB120 reference board.
-config ATH79_MACH_PB44
- bool "Atheros PB44 reference board"
+config ATH79_MACH_TL_WR1043ND
+ bool "TP-LINK TL-WR1043ND support"
+ select SOC_AR913X
@ -1399,11 +1409,12 @@
+
+config ATH79_MACH_TEW_673GRU
+ bool "TRENDnet TEW-673GRU support"
+ select SOC_AR71XX
select SOC_AR71XX
+ select ATH79_DEV_AP9X_PCI if PCI
+ select ATH79_DEV_ETH
+ select ATH79_DEV_GPIO_BUTTONS
+ select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
- select ATH79_DEV_SPI
+ select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
+ select ATH79_NVRAM
@ -1441,7 +1452,7 @@
config ATH79_MACH_UBNT_XM
bool "Ubiquiti Networks XM/UniFi boards"
@@ -83,6 +1212,116 @@ config ATH79_MACH_UBNT_XM
@@ -83,6 +1221,116 @@ config ATH79_MACH_UBNT_XM
Say 'Y' here if you want your kernel to support the
Ubiquiti Networks XM (rev 1.0) board.
@ -1558,7 +1569,7 @@
endmenu
config SOC_AR71XX
@@ -134,7 +1373,10 @@ config ATH79_DEV_DSA
@@ -134,7 +1382,10 @@ config ATH79_DEV_DSA
config ATH79_DEV_ETH
def_bool n
@ -1570,7 +1581,7 @@
def_bool n
config ATH79_DEV_GPIO_BUTTONS
@@ -164,6 +1406,11 @@ config ATH79_PCI_ATH9K_FIXUP
@@ -164,6 +1415,11 @@ config ATH79_PCI_ATH9K_FIXUP
def_bool n
config ATH79_ROUTERBOOT
@ -1584,7 +1595,7 @@
endif
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -38,9 +38,135 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
@@ -38,9 +38,136 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route
#
# Machines
#
@ -1685,6 +1696,7 @@
+obj-$(CONFIG_ATH79_MACH_TL_WR841N_V8) += mach-tl-wr841n-v8.o
+obj-$(CONFIG_ATH79_MACH_TL_WR841N_V9) += mach-tl-wr841n-v9.o
+obj-$(CONFIG_ATH79_MACH_TL_WR941ND) += mach-tl-wr941nd.o
+obj-$(CONFIG_ATH79_MACH_TL_WR941ND_V6) += mach-tl-wr941nd-v6.o
+obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2) += mach-tl-wr1041n-v2.o
+obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o
+obj-$(CONFIG_ATH79_MACH_TL_WR1043ND_V2) += mach-tl-wr1043nd-v2.o
@ -1722,7 +1734,7 @@
+obj-$(CONFIG_ATH79_MACH_NBG6716) += mach-nbg6716.o
--- a/arch/mips/ath79/prom.c
+++ b/arch/mips/ath79/prom.c
@@ -130,6 +130,13 @@ void __init prom_init(void)
@@ -136,6 +136,13 @@ void __init prom_init(void)
initrd_end = initrd_start + fw_getenvl("initrd_size");
}
#endif

Loading…
Cancel
Save