ar71xx: nuke 2.6.39 support
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / files-3.2 / arch / mips / ath79 / mach-dir-600-a1.c
index 8b280caca1dbf21bdb237f6b5aa8cea278a41b2e..931a7292e212fcf06b621ddac0e5952b796e2715 100644 (file)
@@ -2,6 +2,7 @@
  *  D-Link DIR-600 rev. A1 board support
  *
  *  Copyright (C) 2010-2012 Gabor Juhos <juhosg@openwrt.org>
+ *  Copyright (C) 2012 Vadim Girlin <vadimgirlin@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
@@ -12,7 +13,9 @@
 #include <linux/mtd/partitions.h>
 
 #include <asm/mach-ath79/ath79.h>
+#include <asm/mach-ath79/ar71xx_regs.h>
 
+#include "common.h"
 #include "dev-ap9x-pci.h"
 #include "dev-eth.h"
 #include "dev-gpio-buttons.h"
 #define DIR_600_A1_GPIO_LED_WPS                        0
 #define DIR_600_A1_GPIO_LED_POWER_AMBER                1
 #define DIR_600_A1_GPIO_LED_POWER_GREEN                6
+#define DIR_600_A1_GPIO_LED_LAN1               13
+#define DIR_600_A1_GPIO_LED_LAN2               14
+#define DIR_600_A1_GPIO_LED_LAN3               15
+#define DIR_600_A1_GPIO_LED_LAN4               16
+#define DIR_600_A1_GPIO_LED_WAN_AMBER          7
+#define DIR_600_A1_GPIO_LED_WAN_GREEN          17
 
 #define DIR_600_A1_GPIO_BTN_RESET              8
 #define DIR_600_A1_GPIO_BTN_WPS                        12
@@ -76,13 +85,36 @@ static struct flash_platform_data dir_600_a1_flash_data = {
 
 static struct gpio_led dir_600_a1_leds_gpio[] __initdata = {
        {
-               .name           = "dir-600-a1:green:power",
+               .name           = "d-link:green:power",
                .gpio           = DIR_600_A1_GPIO_LED_POWER_GREEN,
        }, {
-               .name           = "dir-600-a1:amber:power",
+               .name           = "d-link:amber:power",
                .gpio           = DIR_600_A1_GPIO_LED_POWER_AMBER,
        }, {
-               .name           = "dir-600-a1:blue:wps",
+               .name           = "d-link:amber:wan",
+               .gpio           = DIR_600_A1_GPIO_LED_WAN_AMBER,
+       }, {
+               .name           = "d-link:green:wan",
+               .gpio           = DIR_600_A1_GPIO_LED_WAN_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:green:lan1",
+               .gpio           = DIR_600_A1_GPIO_LED_LAN1,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:green:lan2",
+               .gpio           = DIR_600_A1_GPIO_LED_LAN2,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:green:lan3",
+               .gpio           = DIR_600_A1_GPIO_LED_LAN3,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:green:lan4",
+               .gpio           = DIR_600_A1_GPIO_LED_LAN4,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:blue:wps",
                .gpio           = DIR_600_A1_GPIO_LED_WPS,
                .active_low     = 1,
        }
@@ -122,6 +154,12 @@ static void __init dir_600_a1_setup(void)
 
        ath79_register_m25p80(&dir_600_a1_flash_data);
 
+       ath79_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);
+
        ath79_register_leds_gpio(-1, ARRAY_SIZE(dir_600_a1_leds_gpio),
                                 dir_600_a1_leds_gpio);
 
@@ -145,3 +183,12 @@ static void __init dir_600_a1_setup(void)
 
 MIPS_MACHINE(ATH79_MACH_DIR_600_A1, "DIR-600-A1", "D-Link DIR-600 rev. A1",
             dir_600_a1_setup);
+
+static void __init dir_615_e4_setup(void)
+{
+       dir_600_a1_setup();
+       ap9x_pci_setup_wmac_led_pin(0, 1);
+}
+
+MIPS_MACHINE(ATH79_MACH_DIR_615_E4, "DIR-615-E4", "D-Link DIR-615 rev. E4",
+            dir_615_e4_setup);