diff options
Diffstat (limited to 'target/linux/ar71xx/files/arch')
3 files changed, 53 insertions, 131 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile index 23cb881c4c..455af762e3 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile @@ -215,7 +215,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WR720N_V3) += mach-tl-wr720n-v3.o obj-$(CONFIG_ATH79_MACH_TL_WR741ND) += mach-tl-wr741nd.o obj-$(CONFIG_ATH79_MACH_TL_WR741ND_V4) += mach-tl-wr741nd-v4.o obj-$(CONFIG_ATH79_MACH_TL_WR802N_V1) += mach-tl-wr802n.o -obj-$(CONFIG_ATH79_MACH_TL_WR802N_V2) += mach-tl-wr802n-v2.o +obj-$(CONFIG_ATH79_MACH_TL_WR802N_V2) += mach-tl-wr802n.o obj-$(CONFIG_ATH79_MACH_TL_WR810N) += mach-tl-wr810n.o obj-$(CONFIG_ATH79_MACH_TL_WR810N_V2) += mach-tl-wr810n.o obj-$(CONFIG_ATH79_MACH_TL_WR840N_V2) += mach-tl-wr841n-v9.o diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n-v2.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n-v2.c deleted file mode 100644 index 10e0c595a6..0000000000 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n-v2.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * TP-LINK TL-WR802N v2 - * - * Copyright (C) 2016 Thomas Roberts <tom.p.roberts@gmail.com <mailto:tom.p.roberts@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_WR802N_V2_GPIO_LED_SYSTEM 13 -#define TL_WR802N_V2_GPIO_BTN_RESET 11 - -#define TL_WR802N_V2_KEYS_POLL_INTERVAL 20 /* msecs */ -#define TL_WR802N_V2_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR802N_V2_KEYS_POLL_INTERVAL) - -static const char *tl_wr802n_v2_part_probes[] = { - "tp-link", - NULL, -}; - -static struct flash_platform_data tl_wr802n_v2_flash_data = { - .part_probes = tl_wr802n_v2_part_probes, -}; - -static struct gpio_led tl_wr802n_v2_leds_gpio[] __initdata = { - { - .name = "tl-wr802n-v2:green:system", - .gpio = TL_WR802N_V2_GPIO_LED_SYSTEM, - .active_low = 1, - }, -}; - -static struct gpio_keys_button tl_wr802n_v2_gpio_keys[] __initdata = { - { - .desc = "reset", - .type = EV_KEY, - .code = KEY_RESTART, - .debounce_interval = TL_WR802N_V2_KEYS_DEBOUNCE_INTERVAL, - .gpio = TL_WR802N_V2_GPIO_BTN_RESET, - .active_low = 0, - } -}; - -static void __init tl_ap143_setup(void) -{ - u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); - u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); - u8 tmpmac[ETH_ALEN]; - - ath79_register_m25p80(&tl_wr802n_v2_flash_data); - - ath79_setup_ar933x_phy4_switch(false, false); - - ath79_register_mdio(0, 0x0); - - /* LAN */ - ath79_switch_data.phy4_mii_en = 1; - ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; - ath79_eth0_data.duplex = DUPLEX_FULL; - ath79_eth0_data.speed = SPEED_100; - ath79_eth0_data.phy_mask = BIT(4); - 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); -}; - -static void __init tl_wr802n_v2_setup(void) -{ - tl_ap143_setup(); - - ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr802n_v2_leds_gpio), - tl_wr802n_v2_leds_gpio); - - ath79_register_gpio_keys_polled(1, TL_WR802N_V2_KEYS_POLL_INTERVAL, - ARRAY_SIZE(tl_wr802n_v2_gpio_keys), - tl_wr802n_v2_gpio_keys); -} - -MIPS_MACHINE(ATH79_MACH_TL_WR802N_V2, "TL-WR802N-v2", "TP-LINK TL-WR802N v2", - tl_wr802n_v2_setup);
\ No newline at end of file diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n.c index 21c628e0a3..ece38f900f 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr802n.c @@ -1,7 +1,8 @@ /* - * TP-LINK TL-WR802N v1 + * TP-LINK TL-WR802N v1, v2 * * Copyright (C) 2015 Rick Pannen <pannen@gmail.com <mailto:pannen@gmail.com>> + * Copyright (C) 2016 Thomas Roberts <tom.p.roberts@gmail.com <mailto:tom.p.roberts@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 @@ -22,77 +23,95 @@ #include "dev-wmac.h" #include "machtypes.h" -#define TL_WR802N_V1_GPIO_LED_SYSTEM 13 -#define TL_WR802N_V1_GPIO_BTN_RESET 11 +#define TL_WR802N_GPIO_LED_SYSTEM 13 +#define TL_WR802N_GPIO_BTN_RESET 11 -#define TL_WR802N_V1_KEYS_POLL_INTERVAL 20 /* msecs */ -#define TL_WR802N_V1_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR802N_V1_KEYS_POLL_INTERVAL) +#define TL_WR802N_KEYS_POLL_INTERVAL 20 /* msecs */ +#define TL_WR802N_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR802N_KEYS_POLL_INTERVAL) -static const char *tl_wr802n_v1_part_probes[] = { +static const char *tl_wr802n_part_probes[] = { "tp-link", NULL, }; -static struct flash_platform_data tl_wr802n_v1_flash_data = { - .part_probes = tl_wr802n_v1_part_probes, +static struct flash_platform_data tl_wr802n_flash_data = { + .part_probes = tl_wr802n_part_probes, }; static struct gpio_led tl_wr802n_v1_leds_gpio[] __initdata = { { .name = "tp-link:blue:system", - .gpio = TL_WR802N_V1_GPIO_LED_SYSTEM, + .gpio = TL_WR802N_GPIO_LED_SYSTEM, .active_low = 1, }, }; -static struct gpio_keys_button tl_wr802n_v1_gpio_keys[] __initdata = { +static struct gpio_led tl_wr802n_v2_leds_gpio[] __initdata = { + { + .name = "tl-wr802n-v2:green:system", + .gpio = TL_WR802N_GPIO_LED_SYSTEM, + .active_low = 1, + }, +}; + +static struct gpio_keys_button tl_wr802n_gpio_keys[] __initdata = { { .desc = "reset", .type = EV_KEY, .code = KEY_RESTART, - .debounce_interval = TL_WR802N_V1_KEYS_DEBOUNCE_INTERVAL, - .gpio = TL_WR802N_V1_GPIO_BTN_RESET, + .debounce_interval = TL_WR802N_KEYS_DEBOUNCE_INTERVAL, + .gpio = TL_WR802N_GPIO_BTN_RESET, .active_low = 0, } }; static void __init tl_ap143_setup(void) { - u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); - u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); - u8 tmpmac[ETH_ALEN]; + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + u8 tmpmac[ETH_ALEN]; - ath79_register_m25p80(&tl_wr802n_v1_flash_data); + ath79_register_m25p80(&tl_wr802n_flash_data); - ath79_setup_ar933x_phy4_switch(false, false); + ath79_setup_ar933x_phy4_switch(false, false); - ath79_register_mdio(0, 0x0); + ath79_register_mdio(0, 0x0); - /* LAN */ - ath79_switch_data.phy4_mii_en = 1; - ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; - ath79_eth0_data.duplex = DUPLEX_FULL; - ath79_eth0_data.speed = SPEED_100; - ath79_eth0_data.phy_mask = BIT(4); - ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); - ath79_register_eth(0); + /* LAN */ + ath79_switch_data.phy4_mii_en = 1; + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.duplex = DUPLEX_FULL; + ath79_eth0_data.speed = SPEED_100; + ath79_eth0_data.phy_mask = BIT(4); + 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_init_mac(tmpmac, mac, 0); + ath79_register_wmac(ee, tmpmac); + + ath79_register_gpio_keys_polled(1, TL_WR802N_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wr802n_gpio_keys), + tl_wr802n_gpio_keys); +} static void __init tl_wr802n_v1_setup(void) { tl_ap143_setup(); ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr802n_v1_leds_gpio), - tl_wr802n_v1_leds_gpio); + tl_wr802n_v1_leds_gpio); +} + +static void __init tl_wr802n_v2_setup(void) +{ + tl_ap143_setup(); - ath79_register_gpio_keys_polled(1, TL_WR802N_V1_KEYS_POLL_INTERVAL, - ARRAY_SIZE(tl_wr802n_v1_gpio_keys), - tl_wr802n_v1_gpio_keys); + ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr802n_v2_leds_gpio), + tl_wr802n_v2_leds_gpio); } MIPS_MACHINE(ATH79_MACH_TL_WR802N_V1, "TL-WR802N-v1", "TP-LINK TL-WR802N v1", tl_wr802n_v1_setup); +MIPS_MACHINE(ATH79_MACH_TL_WR802N_V2, "TL-WR802N-v2", "TP-LINK TL-WR802N v2", + tl_wr802n_v2_setup); |