Merge branch 'master' of github.com:coolsnowwolf/lede

This commit is contained in:
coolsnowwolf 2017-11-26 14:10:14 +08:00
commit 0f0c78e157
18 changed files with 933 additions and 3 deletions

View File

@ -565,6 +565,9 @@ re450)
ucidef_set_led_wlan "wlan2g" "WLAN 2.4 GHz" "$board:blue:wlan2g" "phy1tpt"
ucidef_set_led_wlan "wlan5g" "WLAN 5 GHz" "$board:blue:wlan5g" "phy0tpt"
;;
sgr-w500-n85b-v2)
ucidef_set_led_wlan "wlan" "WLAN" "grentech:green:wlan2g" "phy0tpt"
;;
smart-300)
ucidef_set_led_netdev "wan" "WAN" "nc-link:green:wan" "eth0"
ucidef_set_led_switch "lan1" "LAN1" "nc-link:green:lan1" "switch0" "0x04"
@ -699,6 +702,7 @@ tl-wa901nd)
;;
tl-wa901nd-v2|\
tl-wr941nd|\
tl-wr941n-v7|\
tl-wr1041n-v2)
ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
;;
@ -721,6 +725,7 @@ tl-wdr4900-v2)
ucidef_set_led_wlan "wlan5g" "WLAN5G" "tp-link:blue:wlan5g" "phy1tpt"
;;
tl-wdr6500-v2|\
tl-wdr6500-v6|\
tl-wr741nd)
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x02"
@ -743,6 +748,7 @@ tl-wpa8630)
tl-wr740n-v6|\
tl-wr841n-v9|\
tl-wr841n-v11|\
tl-wr842n-v9|\
tl-wr842n-v3)
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
@ -752,6 +758,7 @@ tl-wr842n-v3)
ucidef_set_led_wlan "wlan" "WLAN" "tp-link:green:wlan" "phy0tpt"
case "$board" in
tl-wr842n-v9|\
tl-wr842n-v3)
ucidef_set_led_usbdev "usb" "USB" "tp-link:green:3g" "1-1"
;;
@ -811,6 +818,13 @@ tl-wr2543n)
ucidef_set_led_wlan "wlan2g" "WLAN2G" "tp-link:green:wlan2g" "phy0tpt"
ucidef_set_led_usbdev "usb" "USB" "tp-link:green:usb" "1-1"
;;
tl-wr882n-v1)
ucidef_set_led_netdev "wan" "WAN" "tp-link:green:wan" "eth1"
ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"
ucidef_set_led_switch "lan2" "LAN2" "tp-link:green:lan2" "switch0" "0x08"
ucidef_set_led_switch "lan3" "LAN3" "tp-link:green:lan3" "switch0" "0x04"
ucidef_set_led_switch "lan4" "LAN4" "tp-link:green:lan4" "switch0" "0x02"
;;
tube2h)
ucidef_set_led_netdev "lan" "LAN" "alfa:blue:lan" "eth0"
ucidef_set_rssimon "wlan0" "200000" "1"

View File

@ -49,6 +49,8 @@ ar71xx_setup_interfaces()
tl-wr841n-v11|\
tl-wr841n-v9|\
tl-wr842n-v3|\
tl-wr842n-v9|\
tl-wr882n-v1|\
whr-g301n|\
whr-hp-g300n|\
whr-hp-gn|\
@ -130,6 +132,7 @@ ar71xx_setup_interfaces()
unifiac-lite|\
wi2a-ac200i|\
wndap360|\
sgr-w500-n85b-v2 |\
wp543)
ucidef_set_interface_lan "eth0"
;;
@ -311,6 +314,7 @@ ar71xx_setup_interfaces()
r6100|\
smart-300|\
tl-wdr6500-v2|\
tl-wdr6500-v6|\
tl-wr940n-v4|\
tl-wr941nd-v6|\
wnr1000-v2|\
@ -430,6 +434,7 @@ ar71xx_setup_interfaces()
;;
archer-c7-v4|\
tl-wdr4300|\
tl-wr941n-v7|\
tl-wr1041n-v2)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"

View File

@ -350,6 +350,9 @@ get_status_led() {
rw2458n)
status_led="$board:green:d3"
;;
sgr-w500-n85b-v2)
status_led="grentech:green:status"
;;
smart-300)
status_led="nc-link:green:system"
;;
@ -413,7 +416,9 @@ get_status_led() {
tl-wa830re-v2|\
tl-wr842n-v2|\
tl-wr842n-v3|\
tl-wr842n-v9|\
tl-wr941nd|\
tl-wr941n-v7|\
tl-wr941nd-v5)
status_led="tp-link:green:system"
;;
@ -436,9 +441,13 @@ get_status_led() {
tl-wr841n-v9)
status_led="tp-link:green:qss"
;;
tl-wr882n-v1)
status_led="tp-link:white:status"
;;
tl-wr2543n)
status_led="tp-link:green:wps"
;;
tl-wdr6500-v6|\
tl-wdr6500-v2)
status_led="tp-link:white:system"
;;

View File

@ -318,6 +318,9 @@ tplink_board_detect() {
"65000002")
model="TP-Link TL-WDR6500"
;;
"65000006")
model="TP-Link TL-WDR6500"
;;
"721000"*)
model="TP-Link TL-WA7210N"
;;
@ -989,6 +992,9 @@ ar71xx_board_detect() {
*"SC450")
name="sc450"
;;
"GRENTECH SGR-W500-N85b v2.0")
name="sgr-w500-n85b-v2"
;;
*"SMART-300")
name="smart-300"
;;
@ -1112,6 +1118,9 @@ ar71xx_board_detect() {
*"TL-WDR6500 v2")
name="tl-wdr6500-v2"
;;
*"TL-WDR6500 v6")
name="tl-wdr6500-v6"
;;
*"TL-WPA8630")
name="tl-wpa8630"
;;
@ -1184,6 +1193,12 @@ ar71xx_board_detect() {
*"TL-WR842N/ND v3")
name="tl-wr842n-v3"
;;
*"TL-WR842N/ND v9")
name="tl-wr842n-v9"
;;
*"TL-WR882N v1")
name="tl-wr882n-v1"
;;
*"TL-WR902AC v1")
name="tl-wr902ac-v1"
;;
@ -1196,6 +1211,9 @@ ar71xx_board_detect() {
*"TL-WR941N/ND v6")
name="tl-wr941nd-v6"
;;
*"TL-WR941N v7")
name="tl-wr941n-v7"
;;
*"TL-WR941ND")
name="tl-wr941nd"
;;

View File

@ -328,6 +328,7 @@ platform_check_image() {
hornet-ub|\
mr12|\
mr16|\
sgr-w500-n85b-v2|\
zbt-we1526|\
zcn-1523h-2|\
zcn-1523h-5)
@ -427,6 +428,7 @@ platform_check_image() {
tl-wdr4300|\
tl-wdr4900-v2|\
tl-wdr6500-v2|\
tl-wdr6500-v6|\
tl-wpa8630|\
tl-wr1041n-v2|\
tl-wr1043nd-v2|\
@ -451,14 +453,19 @@ platform_check_image() {
tl-wr841n-v9|\
tl-wr842n-v2|\
tl-wr842n-v3|\
tl-wr842n-v9|\
tl-wr882n-v1|\
tl-wr902ac-v1|\
tl-wr941nd-v5|\
tl-wr941nd-v6|\
tl-wr941n-v7|\
tl-wr940n-v4|\
tl-wr941nd)
local magic_ver="0100"
case "$board" in
tl-wdr6500-v6|\
tl-wdr3320-v2|\
tl-wdr6500-v2)
magic_ver="0200"
;;

View File

@ -168,6 +168,7 @@ CONFIG_ATH79_MACH_RW2458N=y
CONFIG_ATH79_MACH_SC1750=y
CONFIG_ATH79_MACH_SC300M=y
CONFIG_ATH79_MACH_SC450=y
CONFIG_ATH79_MACH_SGR_W500_N85B_V2=y
CONFIG_ATH79_MACH_SMART_300=y
CONFIG_ATH79_MACH_SOM9331=y
CONFIG_ATH79_MACH_SR3200=y
@ -196,6 +197,7 @@ CONFIG_ATH79_MACH_TL_WDR3320_V2=y
CONFIG_ATH79_MACH_TL_WDR3500=y
CONFIG_ATH79_MACH_TL_WDR4300=y
CONFIG_ATH79_MACH_TL_WDR6500_V2=y
CONFIG_ATH79_MACH_TL_WDR6500_V6=y
CONFIG_ATH79_MACH_TL_WPA8630=y
CONFIG_ATH79_MACH_TL_WR1041N_V2=y
CONFIG_ATH79_MACH_TL_WR1043ND=y
@ -213,10 +215,12 @@ CONFIG_ATH79_MACH_TL_WR840N_V2=y
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_WR882N_V1=y
CONFIG_ATH79_MACH_TL_WR902AC_V1=y
CONFIG_ATH79_MACH_TL_WR940N_V4=y
CONFIG_ATH79_MACH_TL_WR941ND=y
CONFIG_ATH79_MACH_TL_WR941ND_V6=y
CONFIG_ATH79_MACH_TL_WR941N_V7=y
CONFIG_ATH79_MACH_TL_WR942N_V1=y
CONFIG_ATH79_MACH_TUBE2H=y
CONFIG_ATH79_MACH_UBNT=y

View File

@ -166,6 +166,7 @@ CONFIG_ATH79_MACH_RW2458N=y
CONFIG_ATH79_MACH_SC1750=y
CONFIG_ATH79_MACH_SC300M=y
CONFIG_ATH79_MACH_SC450=y
CONFIG_ATH79_MACH_SGR_W500_N85B_V2=y
CONFIG_ATH79_MACH_SMART_300=y
CONFIG_ATH79_MACH_SOM9331=y
CONFIG_ATH79_MACH_SR3200=y
@ -194,6 +195,7 @@ CONFIG_ATH79_MACH_TL_WDR3320_V2=y
CONFIG_ATH79_MACH_TL_WDR3500=y
CONFIG_ATH79_MACH_TL_WDR4300=y
CONFIG_ATH79_MACH_TL_WDR6500_V2=y
CONFIG_ATH79_MACH_TL_WDR6500_V6=y
CONFIG_ATH79_MACH_TL_WPA8630=y
CONFIG_ATH79_MACH_TL_WR1041N_V2=y
CONFIG_ATH79_MACH_TL_WR1043ND=y
@ -211,10 +213,12 @@ CONFIG_ATH79_MACH_TL_WR840N_V2=y
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_WR882N_V1=y
CONFIG_ATH79_MACH_TL_WR902AC_V1=y
CONFIG_ATH79_MACH_TL_WR940N_V4=y
CONFIG_ATH79_MACH_TL_WR941ND=y
CONFIG_ATH79_MACH_TL_WR941ND_V6=y
CONFIG_ATH79_MACH_TL_WR941N_V7=y
CONFIG_ATH79_MACH_TL_WR942N_V1=y
CONFIG_ATH79_MACH_TUBE2H=y
CONFIG_ATH79_MACH_UBNT=y

View File

@ -1625,6 +1625,17 @@ config ATH79_MACH_TL_WDR6500_V2
select ATH79_DEV_USB
select ATH79_DEV_WMAC
config ATH79_MACH_TL_WDR6500_V6
bool "TP-LINK TL-WDR6500 v6 board support"
select SOC_QCA956X
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_USB
select ATH79_DEV_WMAC
config ATH79_MACH_TL_WR703N
bool "TP-LINK TL-WR703N/TL-WR710N/TL-MR10U support"
select SOC_AR933X
@ -1728,6 +1739,16 @@ config ATH79_MACH_TL_WR841N_V9
select ATH79_DEV_USB
select ATH79_DEV_WMAC
config ATH79_MACH_TL_WR882N_V1
bool "TP-LINK TL-WR882N v1 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_WMAC
select ATH79_DEV_USB
config ATH79_MACH_TL_WR902AC_V1
bool "TP-LINK TL-WR902AC v1 support"
select SOC_QCA953X
@ -1758,6 +1779,16 @@ config ATH79_MACH_TL_WR941ND_V6
select ATH79_DEV_M25P80
select ATH79_DEV_WMAC
config ATH79_MACH_TL_WR941N_V7
bool "TP-LINK TL-WR941N v7 support"
select SOC_QCA955X
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_WR940N_V4
bool "TP-LINK TL-WR940N v4 support"
select SOC_QCA956X
@ -2140,3 +2171,14 @@ config ATH79_MACH_FRITZ300E
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
config ATH79_MACH_SGR_W500_N85B_V2
bool "GRENTECH SGR-W500-N85b v2.0 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_WMAC
select ATH79_DEV_USB

View File

@ -175,6 +175,7 @@ obj-$(CONFIG_ATH79_MACH_RW2458N) += mach-rw2458n.o
obj-$(CONFIG_ATH79_MACH_SC1750) += mach-sc1750.o
obj-$(CONFIG_ATH79_MACH_SC300M) += mach-sc300m.o
obj-$(CONFIG_ATH79_MACH_SC450) += mach-sc450.o
obj-$(CONFIG_ATH79_MACH_SGR_W500_N85B_V2) += mach-sgr-w500-n85b-v2.o
obj-$(CONFIG_ATH79_MACH_SMART_300) += mach-smart-300.o
obj-$(CONFIG_ATH79_MACH_SOM9331) += mach-som9331.o
obj-$(CONFIG_ATH79_MACH_SR3200) += mach-sr3200.o
@ -203,6 +204,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WDR3320_V2) += mach-tl-wdr3320-v2.o
obj-$(CONFIG_ATH79_MACH_TL_WDR3500) += mach-tl-wdr3500.o
obj-$(CONFIG_ATH79_MACH_TL_WDR4300) += mach-tl-wdr4300.o
obj-$(CONFIG_ATH79_MACH_TL_WDR6500_V2) += mach-tl-wdr6500-v2.o
obj-$(CONFIG_ATH79_MACH_TL_WDR6500_V6) += mach-tl-wdr6500-v6.o
obj-$(CONFIG_ATH79_MACH_TL_WPA8630) += mach-tl-wpa8630.o
obj-$(CONFIG_ATH79_MACH_TL_WR1041N_V2) += mach-tl-wr1041n-v2.o
obj-$(CONFIG_ATH79_MACH_TL_WR1043ND) += mach-tl-wr1043nd.o
@ -220,9 +222,11 @@ obj-$(CONFIG_ATH79_MACH_TL_WR840N_V2) += mach-tl-wr841n-v9.o
obj-$(CONFIG_ATH79_MACH_TL_WR841N_V1) += mach-tl-wr841n.o
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_WR882N_V1) += mach-tl-wr882n-v1.o
obj-$(CONFIG_ATH79_MACH_TL_WR902AC_V1) += mach-tl-wr902ac-v1.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_WR941N_V7) += mach-tl-wr941n-v7.o
obj-$(CONFIG_ATH79_MACH_TL_WR940N_V4) += mach-tl-wr940n-v4.o
obj-$(CONFIG_ATH79_MACH_TL_WR942N_V1) += mach-tl-wr942n-v1.o
obj-$(CONFIG_ATH79_MACH_TUBE2H) += mach-tube2h.o

View File

@ -0,0 +1,134 @@
/*
* GRENTECH SGR-W500-N85b v2.0 board support
*
* Copyright (c) 2017 Weijie Gao <hackpascal@gmail.com>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
#include <linux/pci.h>
#include <linux/phy.h>
#include <linux/gpio.h>
#include <linux/platform_device.h>
#include <linux/ath9k_platform.h>
#include <asm/mach-ath79/ar71xx_regs.h>
#include "common.h"
#include "dev-ap9x-pci.h"
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
#include "dev-leds-gpio.h"
#include "dev-m25p80.h"
#include "dev-spi.h"
#include "dev-wmac.h"
#include "machtypes.h"
#define GRENTECH_GPIO_LED_STATUS 21
#define GRENTECH_GPIO_LED_WLAN2G 20
#define GRENTECH_GPIO_BUTTON_RESET 3
#define GRENTECH_GPIO_RTL8211E_RESET_L 11
#define GRENTECH_GPIO_EXTERNAL_LNA0 18
#define GRENTECH_GPIO_EXTERNAL_LNA1 19
#define GRENTECH_KEYS_POLL_INTERVAL 20 /* msecs */
#define GRENTECH_KEYS_DEBOUNCE_INTERVAL (3 * GRENTECH_KEYS_POLL_INTERVAL)
#define GRENTECH_MAC_OFFSET 0
#define GRENTECH_WMAC_CALDATA_OFFSET 0x1000
#define GRENTECH_PCIE_CALDATA_OFFSET 0x5000
static struct gpio_led grentech_leds_gpio[] __initdata = {
{
.name = "grentech:green:status",
.gpio = GRENTECH_GPIO_LED_STATUS,
.active_low = 1,
},
{
.name = "grentech:green:wlan2g",
.gpio = GRENTECH_GPIO_LED_WLAN2G,
.active_low = 1,
}
};
static struct gpio_keys_button grentech_gpio_keys[] __initdata = {
{
.desc = "reset",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = GRENTECH_KEYS_DEBOUNCE_INTERVAL,
.gpio = GRENTECH_GPIO_BUTTON_RESET,
.active_low = 1,
},
};
static struct mdio_board_info grentech_mdio0_info[] = {
{
.bus_id = "ag71xx-mdio.0",
.phy_addr = 1,
},
};
static void __init grentech_setup(void)
{
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
u8 tmpmac[ETH_ALEN];
ath79_register_m25p80(NULL);
ath79_register_leds_gpio(-1, ARRAY_SIZE(grentech_leds_gpio),
grentech_leds_gpio);
ath79_register_gpio_keys_polled(-1, GRENTECH_KEYS_POLL_INTERVAL,
ARRAY_SIZE(grentech_gpio_keys),
grentech_gpio_keys);
gpio_request_one(GRENTECH_GPIO_RTL8211E_RESET_L,
GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
"RTL8211E reset pin");
ath79_wmac_set_ext_lna_gpio(0, GRENTECH_GPIO_EXTERNAL_LNA0);
ath79_wmac_set_ext_lna_gpio(1, GRENTECH_GPIO_EXTERNAL_LNA1);
ath79_init_mac(tmpmac, art + GRENTECH_MAC_OFFSET, 1);
ath79_register_wmac(art + GRENTECH_WMAC_CALDATA_OFFSET, tmpmac);
/* AR9382 */
ath79_init_mac(tmpmac, art + GRENTECH_MAC_OFFSET, 2);
ap9x_pci_setup_wmac_led_pin(0, 6);
ap91_pci_init(art + GRENTECH_PCIE_CALDATA_OFFSET, tmpmac);
ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_RGMII_GMAC0);
ath79_register_mdio(0, 0x0);
ath79_init_mac(ath79_eth0_data.mac_addr, art + GRENTECH_MAC_OFFSET, 0);
mdiobus_register_board_info(grentech_mdio0_info,
ARRAY_SIZE(grentech_mdio0_info));
/* GMAC0 is connected to a RTL8211E Gigabit PHY */
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
ath79_eth0_data.phy_mask = BIT(1);
ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
ath79_eth0_pll_data.pll_1000 = 0x46000000;
ath79_eth0_pll_data.pll_100 = 0x0101;
ath79_eth0_pll_data.pll_10 = 0x1313;
ath79_register_eth(0);
}
MIPS_MACHINE(ATH79_MACH_SGR_W500_N85B_V2, "SGRW500N85BV2", "GRENTECH SGR-W500-N85b v2.0",
grentech_setup);

View File

@ -0,0 +1,113 @@
/*
* TP-LINK TL-WDR6500 v6
*
*/
#include <linux/pci.h>
#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-ap9x-pci.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"
#include "pci.h"
#define TL_WDR6500_V6_GPIO_LED_SYS 21
#define TL_WDR6500_V6_GPIO_LED_WAN 18
#define TL_WDR6500_V6_GPIO_LED_LAN1 17
#define TL_WDR6500_V6_GPIO_LED_LAN2 16
#define TL_WDR6500_V6_GPIO_LED_LAN3 15
#define TL_WDR6500_V6_GPIO_LED_LAN4 14
#define TL_WDR6500_V6_GPIO_BTN_RESET 1
#define TL_WDR6500_V6_KEYS_POLL_INTERVAL 20 /* msecs */
#define TL_WDR6500_V6_KEYS_DEBOUNCE_INTERVAL (3 * TL_WDR6500_V6_KEYS_POLL_INTERVAL)
#define TL_WDR6500_V6_WMAC_CALDATA_OFFSET 0x1000
#define TL_WDR6500_V6_PCIE_CALDATA_OFFSET 0x5000
static const char *tl_wdr6500_v6_part_probes[] = {
"tp-link-64k",
NULL,
};
static struct flash_platform_data tl_wdr6500_v6_flash_data = {
.part_probes = tl_wdr6500_v6_part_probes,
};
static struct gpio_led tl_wdr6500_v6_leds_gpio[] __initdata = {
{
.name = "tp-link:green:lan1",
.gpio = TL_WDR6500_V6_GPIO_LED_LAN1,
.active_low = 1,
}, {
.name = "tp-link:green:lan2",
.gpio = TL_WDR6500_V6_GPIO_LED_LAN2,
.active_low = 1,
}, {
.name = "tp-link:green:lan3",
.gpio = TL_WDR6500_V6_GPIO_LED_LAN3,
.active_low = 1,
}, {
.name = "tp-link:green:lan4",
.gpio = TL_WDR6500_V6_GPIO_LED_LAN4,
.active_low = 1,
}, {
.name = "tp-link:green:wan",
.gpio = TL_WDR6500_V6_GPIO_LED_WAN,
.active_low = 1,
}, {
.name = "tp-link:white:system",
.gpio = TL_WDR6500_V6_GPIO_LED_SYS,
.active_low = 0,
},
};
static struct gpio_keys_button tl_wdr6500_v6_gpio_keys[] __initdata = {
{
.desc = "Reset button",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = TL_WDR6500_V6_KEYS_DEBOUNCE_INTERVAL,
.gpio = TL_WDR6500_V6_GPIO_BTN_RESET,
.active_low = 1,
}
};
static void __init tl_ap151_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f00fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff0000);
u8 tmpmac[ETH_ALEN];
ath79_register_usb();
ath79_register_m25p80(&tl_wdr6500_v6_flash_data);
ath79_setup_ar933x_phy4_switch(false, false);
ath79_register_mdio(1, 0x0);
/* WAN */
ath79_switch_data.phy4_mii_en = 1;
ath79_switch_data.phy_poll_mask = BIT(4);
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
ath79_eth0_data.phy_mask = BIT(4);
ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev;
ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
ath79_register_eth(0);
/* LAN */
ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
ath79_eth1_data.duplex = DUPLEX_FULL;
ath79_eth1_data.speed = SPEED_1000;
ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
ath79_register_eth(1);
ath79_init_mac(tmpmac, mac, -1);
ath79_register_wmac(ee + TL_WDR6500_V6_WMAC_CALDATA_OFFSET, tmpmac);
ath79_register_pci();
ath79_register_usb();
}
static void __init tl_wdr6500_v6_setup(void)
{
tl_ap151_setup();
ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wdr6500_v6_leds_gpio),
tl_wdr6500_v6_leds_gpio);
ath79_register_gpio_keys_polled(1, TL_WDR6500_V6_KEYS_POLL_INTERVAL,
ARRAY_SIZE(tl_wdr6500_v6_gpio_keys),
tl_wdr6500_v6_gpio_keys);
}
MIPS_MACHINE(ATH79_MACH_TL_WDR6500_V6, "TL-WDR6500-v6", "TP-LINK TL-WDR6500 v6",
tl_wdr6500_v6_setup);

View File

@ -73,6 +73,17 @@
#define TL_WR842NV3_GPIO_BTN_RESET 1
#define TL_WR842NV3_GPIO_BTN_WIFI 0
#define TL_WR842NV9_GPIO_LED_WLAN 12
#define TL_WR842NV9_GPIO_LED_QSS 3
#define TL_WR842NV9_GPIO_LED_WAN 11
#define TL_WR842NV9_GPIO_LED_LAN1 16
#define TL_WR842NV9_GPIO_LED_LAN2 15
#define TL_WR842NV9_GPIO_LED_LAN3 14
#define TL_WR842NV9_GPIO_LED_LAN4 4
#define TL_WR842NV9_GPIO_LED_SYSTEM 13
#define TL_WR842NV9_GPIO_BTN_RESET 17
#define TL_WR842NV9_GPIO_BTN_WIFI 0
#define TL_WR740NV6_GPIO_LED_SYSTEM 1
#define TL_WR740NV6_GPIO_LED_QSS 3
#define TL_WR740NV6_GPIO_LED_WAN_ORANGE 2
@ -343,15 +354,59 @@ static struct gpio_keys_button tl_wr740n_v6_gpio_keys[] __initdata = {
}
};
static struct gpio_led tl_wr842n_v9_leds_gpio[] __initdata = {
{
.name = "tp-link:green:lan1",
.gpio = TL_WR842NV9_GPIO_LED_LAN1,
.active_low = 1,
}, {
.name = "tp-link:green:lan2",
.gpio = TL_WR842NV9_GPIO_LED_LAN2,
.active_low = 1,
}, {
.name = "tp-link:green:lan3",
.gpio = TL_WR842NV9_GPIO_LED_LAN3,
.active_low = 1,
}, {
.name = "tp-link:green:lan4",
.gpio = TL_WR842NV9_GPIO_LED_LAN4,
.active_low = 1,
}, {
.name = "tp-link:green:system",
.gpio = TL_WR842NV9_GPIO_LED_SYSTEM,
.active_low = 1,
}, {
.name = "tp-link:green:wan",
.gpio = TL_WR842NV9_GPIO_LED_WAN,
.active_low = 1,
}, {
.name = "tp-link:green:wlan",
.gpio = TL_WR842NV9_GPIO_LED_WLAN,
.active_low = 1,
},
};
static struct gpio_keys_button tl_wr842n_v9_gpio_keys[] __initdata = {
{
.desc = "Reset button",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL,
.gpio = TL_WR842NV9_GPIO_BTN_RESET,
.active_low = 1,
}
};
static void __init tl_ap143_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
u8 tmpmac[ETH_ALEN];
ath79_register_usb();
ath79_register_m25p80(&tl_wr841n_v9_flash_data);
ath79_setup_ar933x_phy4_switch(false, false);
/*ath79_setup_ar933x_phy4_switch(false, false);*/
ath79_register_mdio(0, 0x0);
@ -435,7 +490,6 @@ static void __init tl_wr842n_v3_setup(void)
ARRAY_SIZE(tl_wr842n_v3_gpio_keys),
tl_wr842n_v3_gpio_keys);
ath79_register_usb();
}
MIPS_MACHINE(ATH79_MACH_TL_WR842N_V3, "TL-WR842N-v3", "TP-LINK TL-WR842N/ND v3",
@ -455,3 +509,49 @@ static void __init tl_wr740n_v6_setup(void)
MIPS_MACHINE(ATH79_MACH_TL_WR740N_V6, "TL-WR740N-v6", "TP-LINK TL-WR740N/ND v6",
tl_wr740n_v6_setup);
static void __init tl_wr842n_v9_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
u8 tmpmac[ETH_ALEN];
ath79_register_usb();
ath79_register_m25p80(&tl_wr841n_v9_flash_data);
/*ath79_setup_ar933x_phy4_switch(false, false);*/
ath79_register_mdio(0, 0x0);
ath79_register_mdio(1, 0x0);
/* add by zcc */
ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP);
/* LAN */
ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
ath79_eth1_data.duplex = DUPLEX_FULL;
ath79_eth1_data.speed = SPEED_1000;
ath79_switch_data.phy_poll_mask |= BIT(0);
ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
ath79_register_eth(1);
/* WAN */
ath79_switch_data.phy4_mii_en = 1;
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
ath79_eth0_data.phy_mask = BIT(0);
ath79_eth0_data.duplex = DUPLEX_FULL;
ath79_eth0_data.speed = SPEED_100;
ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
ath79_register_eth(0);
ath79_init_mac(tmpmac, mac, 0);
ath79_register_wmac(ee, tmpmac);
ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr842n_v9_leds_gpio),
tl_wr842n_v9_leds_gpio);
ath79_register_gpio_keys_polled(1, TL_WR841NV9_KEYS_POLL_INTERVAL,
ARRAY_SIZE(tl_wr842n_v9_gpio_keys),
tl_wr842n_v9_gpio_keys);
}
MIPS_MACHINE(ATH79_MACH_TL_WR842N_V9, "TL-WR842N-v9", "TP-LINK TL-WR842N/ND v9",
tl_wr842n_v9_setup);

View File

@ -0,0 +1,126 @@
/*
* TP-LINK TL-WR882N v1
*
* Copyright (C) Weijie Gao <hackpascal@gmail.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 <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_WR882NV1_GPIO_LED_WAN 2
#define TL_WR882NV1_GPIO_LED_LAN1 4
#define TL_WR882NV1_GPIO_LED_LAN2 5
#define TL_WR882NV1_GPIO_LED_LAN3 6
#define TL_WR882NV1_GPIO_LED_LAN4 7
#define TL_WR882NV1_GPIO_LED_SYS 18
#define TL_WR882NV1_GPIO_BTN_RESET 1
#define TL_WR882NV1_KEYS_POLL_INTERVAL 20 /* msecs */
#define TL_WR882NV1_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR882NV1_KEYS_POLL_INTERVAL)
static const char *tl_wr882n_v1_part_probes[] = {
"tp-link",
NULL,
};
static struct flash_platform_data tl_wr882n_v1_flash_data = {
.part_probes = tl_wr882n_v1_part_probes,
};
static struct gpio_led tl_wr882n_v1_leds_gpio[] __initdata = {
{
.name = "tp-link:green:lan1",
.gpio = TL_WR882NV1_GPIO_LED_LAN1,
.active_low = 1,
}, {
.name = "tp-link:green:lan2",
.gpio = TL_WR882NV1_GPIO_LED_LAN2,
.active_low = 1,
}, {
.name = "tp-link:green:lan3",
.gpio = TL_WR882NV1_GPIO_LED_LAN3,
.active_low = 1,
}, {
.name = "tp-link:green:lan4",
.gpio = TL_WR882NV1_GPIO_LED_LAN4,
.active_low = 1,
}, {
.name = "tp-link:green:wan",
.gpio = TL_WR882NV1_GPIO_LED_WAN,
.active_low = 1,
}, {
.name = "tp-link:white:status",
.gpio = TL_WR882NV1_GPIO_LED_SYS,
.active_low = 1,
},
};
static struct gpio_keys_button tl_wr882n_v1_gpio_keys[] __initdata = {
{
.desc = "Reset button",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = TL_WR882NV1_KEYS_DEBOUNCE_INTERVAL,
.gpio = TL_WR882NV1_GPIO_BTN_RESET,
.active_low = 1,
}
};
static void __init tl_cus249_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_m25p80(&tl_wr882n_v1_flash_data);
ath79_register_mdio(0, 0x0);
/* LAN */
ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
ath79_eth1_data.duplex = DUPLEX_FULL;
ath79_eth1_data.speed = SPEED_1000;
ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0);
ath79_register_eth(1);
/* WAN */
ath79_switch_data.phy4_mii_en = 1;
ath79_switch_data.phy_poll_mask = BIT(4);
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
ath79_eth0_data.phy_mask = BIT(4);
ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1);
ath79_register_eth(0);
ath79_register_wmac(ee, mac);
}
static void __init tl_wr882n_v1_setup(void)
{
tl_cus249_setup();
ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr882n_v1_leds_gpio),
tl_wr882n_v1_leds_gpio);
ath79_register_gpio_keys_polled(1, TL_WR882NV1_KEYS_POLL_INTERVAL,
ARRAY_SIZE(tl_wr882n_v1_gpio_keys),
tl_wr882n_v1_gpio_keys);
}
MIPS_MACHINE(ATH79_MACH_TL_WR882N_V1, "TL-WR882N-v1", "TP-LINK TL-WR882N v1",
tl_wr882n_v1_setup);

View File

@ -0,0 +1,279 @@
/*
* TP-LINK TL-WR941N v7 board support
*
* Copyright (C) 2012 Gabor Juhos <juhosg@openwrt.org>
* Copyright (C) 2014 Weijie Gao <hackpacsal@gmail.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/delay.h>
#include <linux/pci.h>
#include <linux/phy.h>
#include <linux/gpio.h>
#include <linux/platform_device.h>
#include <linux/ath9k_platform.h>
#include <linux/ar8216_platform.h>
#include <asm/mach-ath79/ar71xx_regs.h>
#include "common.h"
#include "dev-ap9x-pci.h"
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
#include "dev-leds-gpio.h"
#include "dev-m25p80.h"
#include "dev-spi.h"
#include "dev-usb.h"
#include "dev-wmac.h"
#include "machtypes.h"
#define WR941NV7_GPIO_LED_WLAN 12
#define WR941NV7_GPIO_LED_SYSTEM 19
#define WR941NV7_GPIO_LED_QSS 15
#define WR941NV7_GPIO_BTN_RESET 16
#define WR941NV7_KEYS_POLL_INTERVAL 20 /* msecs */
#define WR941NV7_KEYS_DEBOUNCE_INTERVAL (3 * WR941NV7_KEYS_POLL_INTERVAL)
#define ATH_MII_MGMT_CMD 0x24
#define ATH_MGMT_CMD_READ 0x1
#define ATH_MII_MGMT_ADDRESS 0x28
#define ATH_ADDR_SHIFT 8
#define ATH_MII_MGMT_CTRL 0x2c
#define ATH_MII_MGMT_STATUS 0x30
#define ATH_MII_MGMT_IND 0x34
#define ATH_MGMT_IND_BUSY (1 << 0)
#define ATH_MGMT_IND_INVALID (1 << 2)
static const char *wr941nv7_part_probes[] = {
"tp-link",
NULL,
};
static struct flash_platform_data wr941nv7_flash_data = {
.part_probes = wr941nv7_part_probes,
};
static struct gpio_led wr941nv7_leds_gpio[] __initdata = {
{
.name = "tp-link:green:qss",
.gpio = WR941NV7_GPIO_LED_QSS,
.active_low = 1,
},
{
.name = "tp-link:green:system",
.gpio = WR941NV7_GPIO_LED_SYSTEM,
.active_low = 1,
},
{
.name = "tp-link:green:wlan",
.gpio = WR941NV7_GPIO_LED_WLAN,
.active_low = 1,
},
};
static struct gpio_keys_button wr941nv7_gpio_keys[] __initdata = {
{
.desc = "reset",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = WR941NV7_KEYS_DEBOUNCE_INTERVAL,
.gpio = WR941NV7_GPIO_BTN_RESET,
.active_low = 1,
},
};
static struct mdio_board_info wr941nv7_mdio0_info[] = {
{
.bus_id = "ag71xx-mdio.0",
.phy_addr = 0,
.platform_data = NULL,
},
};
static unsigned long __init ath_gmac_reg_rd(unsigned long reg)
{
void __iomem *base;
unsigned long t;
base = ioremap(AR71XX_GE0_BASE, AR71XX_GE0_SIZE);
t = __raw_readl(base + reg);
iounmap(base);
return t;
}
static void __init ath_gmac_reg_wr(unsigned long reg, unsigned long value)
{
void __iomem *base;
unsigned long t = value;
base = ioremap(AR71XX_GE0_BASE, AR71XX_GE0_SIZE);
__raw_writel(t, base + reg);
iounmap(base);
}
static void __init phy_reg_write(unsigned char phy_addr, unsigned char reg, unsigned short data)
{
unsigned short addr = (phy_addr << ATH_ADDR_SHIFT) | reg;
volatile int rddata;
unsigned short ii = 0xFFFF;
do
{
udelay(5);
rddata = ath_gmac_reg_rd(ATH_MII_MGMT_IND) & 0x1;
} while (rddata && --ii);
ath_gmac_reg_wr(ATH_MII_MGMT_ADDRESS, addr);
ath_gmac_reg_wr(ATH_MII_MGMT_CTRL, data);
do
{
udelay(5);
rddata = ath_gmac_reg_rd(ATH_MII_MGMT_IND) & 0x1;
} while (rddata && --ii);
}
static unsigned short __init phy_reg_read(unsigned char phy_addr, unsigned char reg)
{
unsigned short addr = (phy_addr << ATH_ADDR_SHIFT) | reg, val;
volatile int rddata;
unsigned short ii = 0xffff;
do
{
udelay(5);
rddata = ath_gmac_reg_rd(ATH_MII_MGMT_IND) & 0x1;
} while (rddata && --ii);
ath_gmac_reg_wr(ATH_MII_MGMT_CMD, 0x0);
ath_gmac_reg_wr(ATH_MII_MGMT_ADDRESS, addr);
ath_gmac_reg_wr(ATH_MII_MGMT_CMD, ATH_MGMT_CMD_READ);
do
{
udelay(5);
rddata = ath_gmac_reg_rd(ATH_MII_MGMT_IND) & 0x1;
} while (rddata && --ii);
val = ath_gmac_reg_rd(ATH_MII_MGMT_STATUS);
ath_gmac_reg_wr(ATH_MII_MGMT_CMD, 0x0);
return val;
}
static void __init athrs27_reg_write(unsigned int s27_addr, unsigned int s27_write_data)
{
unsigned int addr_temp;
unsigned int data;
unsigned char phy_address, reg_address;
addr_temp = (s27_addr) >> 2;
data = addr_temp >> 7;
phy_address = 0x1f;
reg_address = 0x10;
phy_reg_write(phy_address, reg_address, data);
phy_address = (0x17 & ((addr_temp >> 4) | 0x10));
reg_address = (((addr_temp << 1) & 0x1e) | 0x1);
data = (s27_write_data >> 16) & 0xffff;
phy_reg_write(phy_address, reg_address, data);
reg_address = ((addr_temp << 1) & 0x1e);
data = s27_write_data & 0xffff;
phy_reg_write(phy_address, reg_address, data);
}
static unsigned int __init athrs27_reg_read(unsigned int s27_addr)
{
unsigned int addr_temp;
unsigned int s27_rd_csr_low, s27_rd_csr_high, s27_rd_csr;
unsigned int data;
unsigned char phy_address, reg_address;
addr_temp = s27_addr >>2;
data = addr_temp >> 7;
phy_address = 0x1f;
reg_address = 0x10;
phy_reg_write(phy_address, reg_address, data);
phy_address = (0x17 & ((addr_temp >> 4) | 0x10));
reg_address = ((addr_temp << 1) & 0x1e);
s27_rd_csr_low = (unsigned int) phy_reg_read(phy_address, reg_address);
reg_address = reg_address | 0x1;
s27_rd_csr_high = (unsigned int) phy_reg_read(phy_address, reg_address);
s27_rd_csr = (s27_rd_csr_high << 16) | s27_rd_csr_low ;
return (s27_rd_csr);
}
static void __init ar8236_reset(void)
{
unsigned short i = 60;
athrs27_reg_write(0x0, athrs27_reg_read(0x0) | 0x80000000);
while (i--)
{
mdelay(100);
if (!(athrs27_reg_read(0x0) & 0x80000000))
break;
}
}
static void __init wr941nv7_setup(void)
{
u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00);
u8 *art = (u8 *) KSEG1ADDR(0x1fff1000);
ath79_register_m25p80(&wr941nv7_flash_data);
ath79_register_leds_gpio(-1, ARRAY_SIZE(wr941nv7_leds_gpio),
wr941nv7_leds_gpio);
ath79_register_gpio_keys_polled(-1, WR941NV7_KEYS_POLL_INTERVAL,
ARRAY_SIZE(wr941nv7_gpio_keys),
wr941nv7_gpio_keys);
ath79_register_wmac(art, mac);
ar8236_reset();
ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_MII_GE0 |
QCA955X_ETH_CFG_MII_GE0_SLAVE);
mdiobus_register_board_info(wr941nv7_mdio0_info,
ARRAY_SIZE(wr941nv7_mdio0_info));
ath79_register_mdio(0, 0x0);
ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
/* GMAC0 is connected to an AR8236 switch */
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
ath79_eth0_data.speed = SPEED_100;
ath79_eth0_data.duplex = DUPLEX_FULL;
ath79_eth0_data.phy_mask = BIT(0);
ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
ath79_register_eth(0);
ath79_register_usb();
}
MIPS_MACHINE(ATH79_MACH_TL_WR941N_V7, "TL-WR941N-v7",
"TP-LINK TL-WR941N v7",
wr941nv7_setup);

View File

@ -203,6 +203,7 @@ enum ath79_mach_type {
ATH79_MACH_SC1750, /* Abicom SC1750 */
ATH79_MACH_SC300M, /* Abicom SC300M */
ATH79_MACH_SC450, /* Abicom SC450 */
ATH79_MACH_SGR_W500_N85B_V2, /* GRENTECH SGR-W500-N85B v2 */
ATH79_MACH_SMART_300, /* NC-LINK SMART-300 */
ATH79_MACH_SOM9331, /* OpenEmbed SOM9331 */
ATH79_MACH_SR3200, /* YunCore SR3200 */
@ -243,6 +244,7 @@ enum ath79_mach_type {
ATH79_MACH_TL_WDR4300, /* TP-LINK TL-WDR4300 */
ATH79_MACH_TL_WDR4900_V2, /* TP-LINK TL-WDR4900 v2 */
ATH79_MACH_TL_WDR6500_V2, /* TP-LINK TL-WDR6500 v2 */
ATH79_MACH_TL_WDR6500_V6, /* TP-LINK TL-WDR6500 v6 */
ATH79_MACH_TL_WPA8630, /* TP-Link TL-WPA8630 */
ATH79_MACH_TL_WR1041N_V2, /* TP-LINK TL-WR1041N v2 */
ATH79_MACH_TL_WR1043ND, /* TP-LINK TL-WR1043ND */
@ -267,10 +269,13 @@ enum ath79_mach_type {
ATH79_MACH_TL_WR841N_V9, /* TP-LINK TL-WR841N/ND v9 */
ATH79_MACH_TL_WR842N_V2, /* TP-LINK TL-WR842N/ND v2 */
ATH79_MACH_TL_WR842N_V3, /* TP-LINK TL-WR842N/ND v3 */
ATH79_MACH_TL_WR842N_V9, /* TP-LINK TL-WR842N/ND v9 */
ATH79_MACH_TL_WR882N_V1, /* TP-LINK TL-WR882N v1 */
ATH79_MACH_TL_WR902AC_V1, /* TP-LINK TL-WR902AC v1 */
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_TL_WR941N_V7, /* TP-LINK TL-WR941N v7 */
ATH79_MACH_TL_WR940N_V4, /* TP-LINK TL-WR940N v4 */
ATH79_MACH_TL_WR942N_V1, /* TP-LINK TL-WR942N v1 */
ATH79_MACH_TUBE2H, /* Alfa Network Tube2H */

View File

@ -589,3 +589,9 @@ define LegacyDevice/NBG_460N_550N_550NH
DEVICE_PACKAGES := kmod-rtc-pcf8563
endef
LEGACY_DEVICES += NBG_460N_550N_550NH
define LegacyDevice/SGRW500N85BV2
DEVICE_TITLE := GRENTECH SGR-W500-N85b v2.0 board
DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage
endef
LEGACY_DEVICES += SGRW500N85BV2

View File

@ -1004,6 +1004,7 @@ $(eval $(call SingleProfile,Zcomax,64k,ZCN1523H28,zcn-1523h-2-8,ZCN-1523H-2,ttyS
$(eval $(call SingleProfile,Zcomax,64k,ZCN1523H516,zcn-1523h-5-16,ZCN-1523H-5,ttyS0,115200,$$(zcn1523h_mtdlayout)))
$(eval $(call SingleProfile,ZyXEL,64k,NBG_460N_550N_550NH,nbg460n_550n_550nh,NBG460N,ttyS0,115200,NBG-460N))
$(eval $(call SingleProfile,AthLzma,64k,SGRW500N85BV2,sgr-w500-n85b-v2,SGRW500N85BV2,ttyS0,115200,$$(ap147_mtdlayout),RKuImage))
endif # ifeq ($(SUBTARGET),generic)

View File

@ -1102,6 +1102,14 @@ define Device/tl-wr941nd-v6-cn
TPLINK_HWID := 0x09410006
endef
define Device/tl-wr2041nd-v1
$(Device/tplink-8mlzma)
DEVICE_TITLE := TP-LINK TL-WR2041N/ND v1
BOARDNAME := TL-WDR3500
DEVICE_PROFILE := TLWR2041
TPLINK_HWID := 0x20410001
endef
define Device/tl-wr942n-v1
DEVICE_TITLE := TP-LINK TL-WR942N v1
DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
@ -1117,4 +1125,55 @@ define Device/tl-wr942n-v1
MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),13120k(rootfs),64k(product-info)ro,64k(partition-table)ro,256k(oem-config)ro,1344k(oem-vars)ro,64k(ART)ro,14464k@0x20000(firmware)
SUPPORTED_DEVICES := tl-wr942n-v1
endef
TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn
TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr942n-v1 tl-wr2041nd-v1
define Device/tl-wr941n-v7
$(Device/tplink-8mlzma)
DEVICE_TITLE := TP-LINK WR941N v7
BOARDNAME := TL-WR941N-v7
DEVICE_PROFILE := TLWR941
TPLINK_HWID := 0x09410007
endef
TARGET_DEVICES += tl-wr941n-v7
define Device/tl-wdr6500-v6
$(Device/tplink-8mlzma)
DEVICE_TITLE := TP-LINK TL-WDR6500 v6
DEVICE_PACKAGES := kmod-usb-core kmod-usb2
KERNEL := kernel-bin | patch-cmdline | lzma | uImage lzma
KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | uImage lzma | mktplinkfw-combined
BOARDNAME := TL-WDR6500-v6
DEVICE_PROFILE := TLWDR6500V6
TPLINK_HWID := 0x65000006
TPLINK_HEADER_VERSION := 2
endef
TARGET_DEVICES += tl-wdr6500-v6
define Device/tl-wr842n-v9
$(Device/tplink-8mlzma)
DEVICE_TITLE := TP-LINK TL-WR842N/ND v9
DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
BOARDNAME := TL-WR842N-v9
DEVICE_PROFILE := TLWR842
TPLINK_HWID := 0x08420009
endef
TARGET_DEVICES += tl-wr842n-v9
define Device/tl-wr882n-v1
$(Device/tplink-8mlzma)
DEVICE_TITLE := TP-LINK TL-WR882N v1
BOARDNAME := TL-WR882N-v1
DEVICE_PROFILE := TLWR882
TPLINK_HWID := 0x08820001
endef
TARGET_DEVICES += tl-wr882n-v1
define Device/tl-wr2041nd-v2
$(Device/tplink-8mlzma)
DEVICE_TITLE := TP-LINK TL-WR2041N/ND v2
BOARDNAME := TL-WR941N-v7
DEVICE_PROFILE := TLWR2041
TPLINK_HWID := 0x20410002
endef
TARGET_DEVICES += tl-wr2041nd-v2