diff options
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c | 65 |
1 files changed, 64 insertions, 1 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c index f806568f98..24a1a64352 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v9.c @@ -1,9 +1,10 @@ /* - * TP-LINK TL-WR841N/ND v9/v11 / TL-WR842N/ND v3 + * TP-LINK TL-WR840N v2/v3 / TL-WR841N/ND v9/v11 / TL-WR842N/ND v3 * * Copyright (C) 2014 Matthias Schiffer <mschiffer@universe-factory.net> * Copyright (C) 2016 Cezary Jackiewicz <cezary@eko.one.pl> * Copyright (C) 2016 Stijn Segers <francesco.borromini@gmail.com> + * Copyright (C) 2017 Vaclav Svoboda <svoboda@neng.cz> * * 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 @@ -25,6 +26,14 @@ #include "dev-wmac.h" #include "machtypes.h" +#define TL_WR840NV2_GPIO_LED_SYSTEM 15 +#define TL_WR840NV2_GPIO_LED_WLAN 13 +#define TL_WR840NV2_GPIO_LED_WPS 3 +#define TL_WR840NV2_GPIO_LED_WAN 4 +#define TL_WR840NV2_GPIO_LED_LAN 16 + +#define TL_WR840NV2_GPIO_BTN_RESET 12 + #define TL_WR841NV9_GPIO_LED_WLAN 13 #define TL_WR841NV9_GPIO_LED_QSS 3 #define TL_WR841NV9_GPIO_LED_WAN 4 @@ -75,6 +84,41 @@ static struct flash_platform_data tl_wr841n_v9_flash_data = { .part_probes = tl_wr841n_v9_part_probes, }; +static struct gpio_led tl_wr840n_v2_leds_gpio[] __initdata = { + { + .name = "tp-link:green:system", + .gpio = TL_WR840NV2_GPIO_LED_SYSTEM, + .active_low = 1, + }, { + .name = "tp-link:green:lan", + .gpio = TL_WR840NV2_GPIO_LED_LAN, + .active_low = 1, + }, { + .name = "tp-link:green:wps", + .gpio = TL_WR840NV2_GPIO_LED_WPS, + .active_low = 1, + }, { + .name = "tp-link:green:wan", + .gpio = TL_WR840NV2_GPIO_LED_WAN, + .active_low = 1, + }, { + .name = "tp-link:green:wlan", + .gpio = TL_WR840NV2_GPIO_LED_WLAN, + .active_low = 1, + }, +}; + +static struct gpio_keys_button tl_wr840n_v2_gpio_keys[] __initdata = { + { + .desc = "Reset button", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_WR840NV2_GPIO_BTN_RESET, + .active_low = 1, + } +}; + static struct gpio_led tl_wr841n_v9_leds_gpio[] __initdata = { { .name = "tp-link:green:lan1", @@ -260,6 +304,25 @@ static void __init tl_ap143_setup(void) ath79_register_wmac(ee, tmpmac); } + +static void __init tl_wr840n_v2_setup(void) +{ + tl_ap143_setup(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr840n_v2_leds_gpio), + tl_wr840n_v2_leds_gpio); + + ath79_register_gpio_keys_polled(1, TL_WR841NV9_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wr840n_v2_gpio_keys), + tl_wr840n_v2_gpio_keys); +} + +MIPS_MACHINE(ATH79_MACH_TL_WR840N_V2, "TL-WR840N-v2", "TP-LINK TL-WR840N v2", + tl_wr840n_v2_setup); + +MIPS_MACHINE(ATH79_MACH_TL_WR840N_V3, "TL-WR840N-v3", "TP-LINK TL-WR840N v3", + tl_wr840n_v2_setup); + static void __init tl_wr841n_v9_setup(void) { tl_ap143_setup(); |