X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Farch%2Fmips%2Far71xx%2Fmach-tl-wa901nd.c;h=056f35ab755b237fa9d264e89e6c6b1ee8a1888a;hb=9229d15c65c875d849faf7697c17b3c6ca32aa59;hp=ea4135a3d00ace4b322d77c301a4bc2dbdbeb9a9;hpb=a393655eea19a5375e43c545bf104ab906fc72e9;p=openwrt.git diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd.c index ea4135a3d0..056f35ab75 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd.c @@ -9,14 +9,10 @@ * by the Free Software Foundation. */ -#include -#include - #include #include "machtype.h" #include "devices.h" -#include "dev-dsa.h" #include "dev-m25p80.h" #include "dev-ap91-pci.h" #include "dev-gpio-buttons.h" @@ -24,118 +20,88 @@ #define TL_WA901ND_GPIO_LED_QSS 0 #define TL_WA901ND_GPIO_LED_SYSTEM 1 +#define TL_WA901ND_GPIO_LED_LAN 13 #define TL_WA901ND_GPIO_BTN_RESET 11 #define TL_WA901ND_GPIO_BTN_QSS 12 -#define TL_WA901ND_BUTTONS_POLL_INTERVAL 20 +#define TL_WA901ND_KEYS_POLL_INTERVAL 20 /* msecs */ +#define TL_WA901ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WA901ND_KEYS_POLL_INTERVAL) -#ifdef CONFIG_MTD_PARTITIONS -static struct mtd_partition tl_wa901nd_partitions[] = { - { - .name = "u-boot", - .offset = 0, - .size = 0x020000, - .mask_flags = MTD_WRITEABLE, - } , { - .name = "kernel", - .offset = 0x020000, - .size = 0x140000, - } , { - .name = "rootfs", - .offset = 0x160000, - .size = 0x290000, - } , { - .name = "art", - .offset = 0x3f0000, - .size = 0x010000, - .mask_flags = MTD_WRITEABLE, - } , { - .name = "firmware", - .offset = 0x020000, - .size = 0x3d0000, - } +static const char *tl_wa901nd_part_probes[] = { + "tp-link", + NULL, }; -#endif /* CONFIG_MTD_PARTITIONS */ static struct flash_platform_data tl_wa901nd_flash_data = { -#ifdef CONFIG_MTD_PARTITIONS - .parts = tl_wa901nd_partitions, - .nr_parts = ARRAY_SIZE(tl_wa901nd_partitions), -#endif + .part_probes = tl_wa901nd_part_probes, }; static struct gpio_led tl_wa901nd_leds_gpio[] __initdata = { { - .name = "tl-wa901nd:green:system", + .name = "tp-link:green:lan", + .gpio = TL_WA901ND_GPIO_LED_LAN, + .active_low = 1, + }, { + .name = "tp-link:green:system", .gpio = TL_WA901ND_GPIO_LED_SYSTEM, .active_low = 1, }, { - .name = "tl-wa901nd:green:qss", + .name = "tp-link:green:qss", .gpio = TL_WA901ND_GPIO_LED_QSS, .active_low = 1, } }; -static struct gpio_button tl_wa901nd_gpio_buttons[] __initdata = { +static struct gpio_keys_button tl_wa901nd_gpio_keys[] __initdata = { { .desc = "reset", .type = EV_KEY, .code = BTN_0, - .threshold = 3, + .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL, .gpio = TL_WA901ND_GPIO_BTN_RESET, .active_low = 1, }, { .desc = "qss", .type = EV_KEY, .code = BTN_1, - .threshold = 3, + .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL, .gpio = TL_WA901ND_GPIO_BTN_QSS, .active_low = 1, } }; -static struct dsa_chip_data tl_wa901nd_v1_dsa_chip = { - .port_names[0] = "cpu", - .port_names[1] = "lan", -}; - -static struct dsa_platform_data tl_wa901nd_v1_dsa_data = { - .nr_chips = 1, - .chip = &tl_wa901nd_v1_dsa_chip, -}; - static void __init tl_wa901nd_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + ar71xx_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN | + AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN | + AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN | + AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN | + AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN); + /* * ar71xx_eth0 would be the WAN port, but is not connected on * the TL-WA901ND. ar71xx_eth1 connects to the internal switch chip, * however we have a single LAN port only. */ ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 0); - ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; - ar71xx_eth1_data.speed = SPEED_1000; - ar71xx_eth1_data.duplex = DUPLEX_FULL; - - ar71xx_add_device_mdio(0x0); + ar71xx_add_device_mdio(0, 0x0); ar71xx_add_device_eth(1); - ar71xx_add_device_dsa(1, &tl_wa901nd_v1_dsa_data); - ar71xx_add_device_m25p80(&tl_wa901nd_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wa901nd_leds_gpio), - tl_wa901nd_leds_gpio); + tl_wa901nd_leds_gpio); - ar71xx_add_device_gpio_buttons(-1, TL_WA901ND_BUTTONS_POLL_INTERVAL, - ARRAY_SIZE(tl_wa901nd_gpio_buttons), - tl_wa901nd_gpio_buttons); + ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_KEYS_POLL_INTERVAL, + ARRAY_SIZE(tl_wa901nd_gpio_keys), + tl_wa901nd_gpio_keys); ap91_pci_init(ee, mac); } MIPS_MACHINE(AR71XX_MACH_TL_WA901ND, "TL-WA901ND", "TP-LINK TL-WA901ND", - tl_wa901nd_setup); + tl_wa901nd_setup);