From b834487203996e71c5ea25f83488873483b96522 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 21 Feb 2018 13:15:17 +0100 Subject: ar71xx: add support for TP-Link TL-WR940N v6 Add support for TL-WR940N v6 board. It is pretty much the same as v5 except they only left WAN LED and removed other ones. Installation: flash factory image through WEB UI or use TFTP. Signed-off-by: Robert Marko --- .../files/arch/mips/ath79/mach-tl-wr940n-v4.c | 69 ++++++++++++++++------ 1 file changed, 52 insertions(+), 17 deletions(-) (limited to 'target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr940n-v4.c') diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr940n-v4.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr940n-v4.c index d693b947c8..b530622d9f 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr940n-v4.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr940n-v4.c @@ -1,5 +1,5 @@ /* - * TP-LINK TL-WR940N v4 board support + * TP-LINK TL-WR940N v4 and v6 board support * * Copyright (C) 2016 David Lutz * @@ -32,12 +32,15 @@ #define TL_WR940N_V4_GPIO_LED_LAN1 8 #define TL_WR940N_V4_GPIO_LED_WLAN 7 #define TL_WR940N_V4_GPIO_LED_SYSTEM 5 +/* WR940N v6 specific GPIO*/ +#define TL_WR940N_V6_GPIO_LED_DIAG_ORANGE 15 +#define TL_WR940N_V6_GPIO_LED_WAN_BLUE 14 #define TL_WR940N_V4_GPIO_BTN_RESET 1 #define TL_WR940N_V4_GPIO_BTN_RFKILL 2 -#define TL_WR940N_V4_KEYS_POLL_INTERVAL 20 -#define TL_WR940N_V4_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR940N_V4_KEYS_POLL_INTERVAL) +#define TL_WR940N_KEYS_POLL_INTERVAL 20 +#define TL_WR940N_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR940N_KEYS_POLL_INTERVAL) static struct gpio_led tl_wr940n_v4_leds_gpio[] __initdata = { @@ -93,43 +96,49 @@ static struct gpio_keys_button tl_wr940n_v4_gpio_keys[] __initdata = { .desc = "Reset button", .type = EV_KEY, .code = KEY_RESTART, - .debounce_interval = TL_WR940N_V4_KEYS_DEBOUNCE_INTERVAL, + .debounce_interval = TL_WR940N_KEYS_DEBOUNCE_INTERVAL, .gpio = TL_WR940N_V4_GPIO_BTN_RESET, .active_low = 1, }, { .desc = "RFKILL button", .type = EV_KEY, .code = KEY_RFKILL, - .debounce_interval = TL_WR940N_V4_KEYS_DEBOUNCE_INTERVAL, + .debounce_interval = TL_WR940N_KEYS_DEBOUNCE_INTERVAL, .gpio = TL_WR940N_V4_GPIO_BTN_RFKILL, .active_low = 1, } }; +static struct gpio_led tl_wr940n_v6_leds_gpio[] __initdata = { + { + .name = "tp-link:blue:wan", + .gpio = TL_WR940N_V6_GPIO_LED_WAN_BLUE, + .active_low = 1, + }, + { + .name = "tp-link:orange:diag", + .gpio = TL_WR940N_V6_GPIO_LED_DIAG_ORANGE, + .active_low = 0, + }, +}; + -static const char *tl_wr940n_v4_part_probes[] = { +static const char *tl_wr940n_part_probes[] = { "tp-link", NULL, }; -static struct flash_platform_data tl_wr940n_v4_flash_data = { - .part_probes = tl_wr940n_v4_part_probes, +static struct flash_platform_data tl_wr940n_flash_data = { + .part_probes = tl_wr940n_part_probes, }; -static void __init tl_wr940n_v4_setup(void) +static void __init tl_wr940n_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); - ath79_register_m25p80(&tl_wr940n_v4_flash_data); - - ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr940n_v4_leds_gpio), - tl_wr940n_v4_leds_gpio); - - ath79_register_gpio_keys_polled(-1, TL_WR940N_V4_KEYS_POLL_INTERVAL, - ARRAY_SIZE(tl_wr940n_v4_gpio_keys), - tl_wr940n_v4_gpio_keys); + ath79_register_m25p80(&tl_wr940n_flash_data); ath79_register_mdio(0, 0x0); @@ -145,5 +154,31 @@ static void __init tl_wr940n_v4_setup(void) } +static void __init tl_wr940n_v4_setup(void) +{ + tl_wr940n_setup(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr940n_v4_leds_gpio), + tl_wr940n_v4_leds_gpio); + + ath79_register_gpio_keys_polled(-1, TL_WR940N_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wr940n_v4_gpio_keys), + tl_wr940n_v4_gpio_keys); +} + +static void __init tl_wr940n_v6_setup(void) +{ + tl_wr940n_setup(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr940n_v6_leds_gpio), + tl_wr940n_v6_leds_gpio); + + ath79_register_gpio_keys_polled(-1, TL_WR940N_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wr940n_v4_gpio_keys), + tl_wr940n_v4_gpio_keys); +} + MIPS_MACHINE(ATH79_MACH_TL_WR940N_V4, "TL-WR940N-v4", "TP-LINK TL-WR940N v4", tl_wr940n_v4_setup); +MIPS_MACHINE(ATH79_MACH_TL_WR940N_V6, "TL-WR940N-v6", "TP-LINK TL-WR940N v6", + tl_wr940n_v6_setup); -- cgit v1.2.3