ar71xx: allow to use LAN LED on the TL-WA901N/ND boards
[openwrt.git] / target / linux / ar71xx / files / arch / mips / ar71xx / mach-tl-wa901nd.c
index 5d2d2fd..056f35a 100644 (file)
@@ -9,9 +9,6 @@
  *  by the Free Software Foundation.
  */
 
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-
 #include <asm/mach-ar71xx/ar71xx.h>
 
 #include "machtype.h"
@@ -23,6 +20,7 @@
 
 #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_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           = "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,
@@ -100,17 +76,18 @@ 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_eth1_data.has_ar7240_switch = 1;
-
        ar71xx_add_device_mdio(0, 0x0);
        ar71xx_add_device_eth(1);