X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Farch%2Fmips%2Fath79%2Fmach-tl-wr703n.c;h=1d8d01cc63fab3ae1771851c567ced14e3af3dc8;hb=4802f611cb0ad73f5ac569d94567e5f5ed8024da;hp=badc35af151d624213ae7fedd8201d9953887249;hpb=d72bde99cd03721fd5b04a1b365bd3f30d4277d9;p=librecmc%2Flibrecmc.git diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c index badc35af15..1d8d01cc63 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c @@ -1,5 +1,5 @@ /* - * TP-LINK TL-WR703N board support + * TP-LINK TL-WR703N/TL-MR10U board support * * Copyright (C) 2011 dongyuqi <729650915@qq.com> * Copyright (C) 2011-2012 Gabor Juhos @@ -26,6 +26,8 @@ #define TL_WR703N_GPIO_USB_POWER 8 +#define TL_MR10U_GPIO_USB_POWER 18 + #define TL_WR703N_KEYS_POLL_INTERVAL 20 /* msecs */ #define TL_WR703N_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR703N_KEYS_POLL_INTERVAL) @@ -53,15 +55,18 @@ static struct gpio_keys_button tl_wr703n_gpio_keys[] __initdata = { .code = KEY_RESTART, .debounce_interval = TL_WR703N_KEYS_DEBOUNCE_INTERVAL, .gpio = TL_WR703N_GPIO_BTN_RESET, - .active_low = 1, + .active_low = 0, } }; -static void __init tl_wr703n_setup(void) +static void __init common_setup(unsigned usb_power_gpio, bool sec_ethernet) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + /* disable PHY_SWAP and PHY_ADDR_SWAP bits */ + ath79_setup_ar933x_phy4_switch(false, false); + ath79_register_m25p80(&tl_wr703n_flash_data); ath79_register_leds_gpio(-1, ARRAY_SIZE(tl_wr703n_leds_gpio), tl_wr703n_leds_gpio); @@ -69,8 +74,9 @@ static void __init tl_wr703n_setup(void) ARRAY_SIZE(tl_wr703n_gpio_keys), tl_wr703n_gpio_keys); - gpio_request(TL_WR703N_GPIO_USB_POWER, "USB power"); - gpio_direction_output(TL_WR703N_GPIO_USB_POWER, 1); + gpio_request_one(usb_power_gpio, + GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + "USB power"); ath79_register_usb(); ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); @@ -78,8 +84,35 @@ static void __init tl_wr703n_setup(void) ath79_register_mdio(0, 0x0); ath79_register_eth(0); + if (sec_ethernet) + { + ath79_init_mac(ath79_eth1_data.mac_addr, mac, -1); + ath79_register_eth(1); + } + ath79_register_wmac(ee, mac); } +static void __init tl_mr10u_setup(void) +{ + common_setup(TL_MR10U_GPIO_USB_POWER, false); +} + +MIPS_MACHINE(ATH79_MACH_TL_MR10U, "TL-MR10U", "TP-LINK TL-MR10U", + tl_mr10u_setup); + +static void __init tl_wr703n_setup(void) +{ + common_setup(TL_WR703N_GPIO_USB_POWER, false); +} + MIPS_MACHINE(ATH79_MACH_TL_WR703N, "TL-WR703N", "TP-LINK TL-WR703N v1", tl_wr703n_setup); + +static void __init tl_wr710n_setup(void) +{ + common_setup(TL_WR703N_GPIO_USB_POWER, true); +} + +MIPS_MACHINE(ATH79_MACH_TL_WR710N, "TL-WR710N", "TP-LINK TL-WR710N v1", + tl_wr710n_setup);