@ -1,9 +1,13 @@
/*
* TP - LINK TL - WA750RE v1 / TL - WA801ND v2 / TL - WA850RE v1 / TL - WA901ND v3
* board support
* Support for TP - Link boards :
* - TL - WA750RE v1
* - TL - WA801ND v2
* - TL - WA850RE v1 / v2
* - TL - WA901ND v3
*
* Copyright ( C ) 2013 Martijn Zilverschoon < thefriedzombie @ gmail . com >
* Copyright ( C ) 2013 Jiri Pirko < jiri @ resnulli . us >
* Copyright ( C ) 2017 Piotr Dymacz < pepe2k @ 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
@ -33,6 +37,17 @@
# define TL_WAX50RE_GPIO_LED_SIGNAL4 3
# define TL_WAX50RE_GPIO_LED_SIGNAL5 4
# define TL_WA850RE_V2_GPIO_LED_LAN 14
# define TL_WA850RE_V2_GPIO_LED_RE 12
# define TL_WA850RE_V2_GPIO_LED_SIGNAL1 0
# define TL_WA850RE_V2_GPIO_LED_SIGNAL2 1
# define TL_WA850RE_V2_GPIO_LED_SIGNAL3 2
# define TL_WA850RE_V2_GPIO_LED_SIGNAL4 3
# define TL_WA850RE_V2_GPIO_LED_SIGNAL5 4
# define TL_WA850RE_V2_GPIO_LED_WLAN 13
# define TL_WA850RE_V2_GPIO_ENABLE_LEDS 15
# define TL_WA860RE_GPIO_LED_WLAN_ORANGE 0
# define TL_WA860RE_GPIO_LED_WLAN_GREEN 2
# define TL_WA860RE_GPIO_LED_POWER_ORANGE 12
@ -133,6 +148,42 @@ static struct gpio_led tl_wa850re_leds_gpio[] __initdata = {
} ,
} ;
static struct gpio_led tl_wa850re_v2_leds_gpio [ ] __initdata = {
{
. name = " tp-link:blue:lan " ,
. gpio = TL_WA850RE_V2_GPIO_LED_LAN ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:re " ,
. gpio = TL_WA850RE_V2_GPIO_LED_RE ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:signal1 " ,
. gpio = TL_WA850RE_V2_GPIO_LED_SIGNAL1 ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:signal2 " ,
. gpio = TL_WA850RE_V2_GPIO_LED_SIGNAL2 ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:signal3 " ,
. gpio = TL_WA850RE_V2_GPIO_LED_SIGNAL3 ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:signal4 " ,
. gpio = TL_WA850RE_V2_GPIO_LED_SIGNAL4 ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:signal5 " ,
. gpio = TL_WA850RE_V2_GPIO_LED_SIGNAL5 ,
. active_low = 1 ,
} , {
. name = " tp-link:blue:wlan " ,
. gpio = TL_WA850RE_V2_GPIO_LED_WLAN ,
. active_low = 1 ,
} ,
} ;
static struct gpio_led tl_wa860re_leds_gpio [ ] __initdata = {
{
. name = " tp-link:green:lan " ,
@ -242,6 +293,30 @@ static void __init tl_ap123_setup(void)
ath79_register_wmac ( ee , mac ) ;
}
static void __init tl_ap143_setup ( void )
{
u8 * mac = ( u8 * ) KSEG1ADDR ( 0x1f3c0008 ) ;
u8 * ee = ( u8 * ) KSEG1ADDR ( 0x1fff1000 ) ;
u8 tmpmac [ ETH_ALEN ] ;
ath79_register_m25p80 ( NULL ) ;
ath79_setup_ar933x_phy4_switch ( false , false ) ;
ath79_register_mdio ( 0 , 0x0 ) ;
ath79_switch_data . phy4_mii_en = 1 ;
ath79_eth0_data . duplex = DUPLEX_FULL ;
ath79_eth0_data . phy_if_mode = PHY_INTERFACE_MODE_MII ;
ath79_eth0_data . phy_mask = BIT ( 4 ) ;
ath79_eth0_data . speed = SPEED_100 ;
ath79_init_mac ( ath79_eth0_data . mac_addr , mac , - 2 ) ;
ath79_register_eth ( 0 ) ;
ath79_init_mac ( tmpmac , mac , 0 ) ;
ath79_register_wmac ( ee , mac ) ;
}
static void __init tl_wa750re_setup ( void )
{
tl_ap123_setup ( ) ;
@ -284,6 +359,30 @@ static void __init tl_wa850re_setup(void)
MIPS_MACHINE ( ATH79_MACH_TL_WA850RE , " TL-WA850RE " , " TP-LINK TL-WA850RE " ,
tl_wa850re_setup ) ;
static void __init tl_wa850re_v2_setup ( void )
{
tl_ap143_setup ( ) ;
/* For GPIO 0~4 */
ath79_gpio_function_setup ( AR934X_GPIO_FUNC_JTAG_DISABLE ,
AR934X_GPIO_FUNC_CLK_OBS4_EN ) ;
/* Allow to enable/disable all LEDs from userspace */
gpio_request_one ( TL_WA850RE_V2_GPIO_ENABLE_LEDS ,
GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED ,
" LEDs enable " ) ;
ath79_register_leds_gpio ( - 1 , ARRAY_SIZE ( tl_wa850re_v2_leds_gpio ) ,
tl_wa850re_v2_leds_gpio ) ;
ath79_register_gpio_keys_polled ( - 1 , TL_WAX50RE_KEYS_POLL_INTERVAL ,
ARRAY_SIZE ( tl_wax50re_gpio_keys ) ,
tl_wax50re_gpio_keys ) ;
}
MIPS_MACHINE ( ATH79_MACH_TL_WA850RE_V2 , " TL-WA850RE-V2 " ,
" TP-LINK TL-WA850RE v2 " , tl_wa850re_v2_setup ) ;
static void __init tl_wa860re_setup ( void )
{
tl_ap123_setup ( ) ;