X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Farch%2Fmips%2Fath79%2Fmach-tl-wr841n-v9.c;h=02096031db9ca7fc632044618806d9d395cfb930;hb=0b45bec22c59cc6e6b2fa71dc9a88386c5587132;hp=3e5c2a2522b5d08b8a1112e2df43655daae37609;hpb=7acbd52055067c246a9f87b62b4df5f74293204b;p=openwrt%2Fopenwrt.git 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 3e5c2a2522..02096031db 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,7 +1,8 @@ /* - * TP-LINK TL-WR841N/ND v9 + * TP-LINK TL-WR841N/ND v9/TL-WR842N/ND v3 * * Copyright (C) 2014 Matthias Schiffer + * Copyright (C) 2016 Cezary Jackiewicz * * 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 @@ -19,6 +20,7 @@ #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" @@ -33,6 +35,20 @@ #define TL_WR841NV9_GPIO_BTN_RESET 12 #define TL_WR841NV9_GPIO_BTN_WIFI 17 +#define TL_WR842NV3_GPIO_LED_SYSTEM 2 +#define TL_WR842NV3_GPIO_LED_WLAN 3 +#define TL_WR842NV3_GPIO_LED_WAN_RED 4 +#define TL_WR842NV3_GPIO_LED_WAN_GREEN 11 +#define TL_WR842NV3_GPIO_LED_LAN1 12 +#define TL_WR842NV3_GPIO_LED_LAN2 13 +#define TL_WR842NV3_GPIO_LED_LAN3 14 +#define TL_WR842NV3_GPIO_LED_LAN4 15 +#define TL_WR842NV3_GPIO_LED_3G 16 +#define TL_WR842NV3_GPIO_LED_WPS 17 + +#define TL_WR842NV3_GPIO_BTN_RESET 1 +#define TL_WR842NV3_GPIO_BTN_WIFI 0 + #define TL_WR841NV9_KEYS_POLL_INTERVAL 20 /* msecs */ #define TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR841NV9_KEYS_POLL_INTERVAL) @@ -95,6 +111,68 @@ static struct gpio_keys_button tl_wr841n_v9_gpio_keys[] __initdata = { } }; +static struct gpio_led tl_wr842n_v3_leds_gpio[] __initdata = { + { + .name = "tp-link:green:lan1", + .gpio = TL_WR842NV3_GPIO_LED_LAN1, + .active_low = 1, + }, { + .name = "tp-link:green:lan2", + .gpio = TL_WR842NV3_GPIO_LED_LAN2, + .active_low = 1, + }, { + .name = "tp-link:green:lan3", + .gpio = TL_WR842NV3_GPIO_LED_LAN3, + .active_low = 1, + }, { + .name = "tp-link:green:lan4", + .gpio = TL_WR842NV3_GPIO_LED_LAN4, + .active_low = 1, + }, { + .name = "tp-link:green:wan", + .gpio = TL_WR842NV3_GPIO_LED_WAN_GREEN, + .active_low = 1, + }, { + .name = "tp-link:red:wan", + .gpio = TL_WR842NV3_GPIO_LED_WAN_RED, + .active_low = 1, + }, { + .name = "tp-link:green:wlan", + .gpio = TL_WR842NV3_GPIO_LED_WLAN, + .active_low = 1, + }, { + .name = "tp-link:green:system", + .gpio = TL_WR842NV3_GPIO_LED_SYSTEM, + .active_low = 1, + }, { + .name = "tp-link:green:3g", + .gpio = TL_WR842NV3_GPIO_LED_3G, + .active_low = 1, + }, { + .name = "tp-link:green:wps", + .gpio = TL_WR842NV3_GPIO_LED_WPS, + .active_low = 1, + }, +}; + +static struct gpio_keys_button tl_wr842n_v3_gpio_keys[] __initdata = { + { + .desc = "Reset button", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_WR842NV3_GPIO_BTN_RESET, + .active_low = 1, + }, { + .desc = "WIFI button", + .type = EV_KEY, + .code = KEY_RFKILL, + .debounce_interval = TL_WR841NV9_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_WR842NV3_GPIO_BTN_WIFI, + .active_low = 1, + } +}; + static void __init tl_ap143_setup(void) { @@ -142,3 +220,20 @@ static void __init tl_wr841n_v9_setup(void) MIPS_MACHINE(ATH79_MACH_TL_WR841N_V9, "TL-WR841N-v9", "TP-LINK TL-WR841N/ND v9", tl_wr841n_v9_setup); + +static void __init tl_wr842n_v3_setup(void) +{ + tl_ap143_setup(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr842n_v3_leds_gpio), + tl_wr842n_v3_leds_gpio); + + ath79_register_gpio_keys_polled(1, TL_WR841NV9_KEYS_POLL_INTERVAL, + 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", + tl_wr842n_v3_setup);