ar71xx: support for D-LINK DIR-615 rev. E4
authorGabor Juhos <juhosg@openwrt.org>
Tue, 31 Jan 2012 18:37:09 +0000 (18:37 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Tue, 31 Jan 2012 18:37:09 +0000 (18:37 +0000)
This patch adds support for D-LINK DIR-615 E4 board. It's mostly based
on the existing support for DIR-600 A1, with some changes in the leds
configuration.

It's an updated version of the patch that reliably works on my hw for
about a year (it was built from trunk on Jan 2011). When I decided to
update the firmware and checked for the current support for that device,
I also found previously posted patches by Alexey Loukianov that
mentioned some stability issues. I'm not sure where could be the
difference, the patches are very similar except the wmac led pin number
- I was using 1, and those patches used 17.

[juhosg: add 3.2 support]

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
SVN-Revision: 29973

15 files changed:
target/linux/ar71xx/base-files/etc/diag.sh
target/linux/ar71xx/base-files/etc/uci-defaults/leds
target/linux/ar71xx/base-files/etc/uci-defaults/network
target/linux/ar71xx/base-files/lib/ar71xx.sh
target/linux/ar71xx/base-files/lib/upgrade/platform.sh
target/linux/ar71xx/config-2.6.39
target/linux/ar71xx/config-3.2
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Kconfig
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/Makefile
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-615-e4.c [new file with mode: 0644]
target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/machtype.h
target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-615-e4.c [new file with mode: 0644]
target/linux/ar71xx/generic/profiles/d-link.mk
target/linux/ar71xx/image/Makefile
target/linux/ar71xx/patches-3.2/610-MIPS-ath79-openwrt-machines.patch

index f30ad052236a2c8bd1dae02234193417462cb856..a3d5075a281704a782a3ab9a9d803b8da0dc9c3c 100755 (executable)
@@ -57,6 +57,9 @@ get_status_led() {
        dir-615-c1)
                status_led="dir-615c1:green:status"
                ;;
+       dir-615-e4)
+               status_led="dir-615-e4:green:power"
+               ;;
        dir-825-b1)
                status_led="dir825b1:orange:power"
                ;;
index d9613930d488b430a4254dcd86f483b1dfac1c6f..c33510af461cca72e0d4c8741288d956a1c01864 100755 (executable)
@@ -118,6 +118,14 @@ rb750)
        set_led_switch "port5" "port5" "rb750:green:port5" "switch0" "0x02"
        ;;
 
+dir-615-e4)
+       set_led_netdev "wan" "WAN" "dir-615-e4:green:wan" "eth1"
+       set_led_switch "lan1" "LAN1" "dir-615-e4:green:lan1" "switch0" "0x02"
+       set_led_switch "lan2" "LAN2" "dir-615-e4:green:lan2" "switch0" "0x04"
+       set_led_switch "lan3" "LAN3" "dir-615-e4:green:lan3" "switch0" "0x08"
+       set_led_switch "lan4" "LAN4" "dir-615-e4:green:lan4" "switch0" "0x10"
+       ;;
+
 dir-825-b1)
        set_led_usbdev "usb" "USB" "dir825b1:blue:usb" "1-1"
        ;;
index ca9989818322c973e5fe47a2ad9c2ce671876e4a..613b2a0e87a26fb1d9a9787df6dfaba0387955ed 100755 (executable)
@@ -137,6 +137,7 @@ ap96 |\
 airrouter |\
 dir-600-a1 |\
 dir-615-c1 |\
+dir-615-e4 |\
 ja76pf |\
 rb-750 |\
 tew-632brp |\
index 9f117225f1927e3197ba9ef2be8882543c5e68d0..82b53f161793cc9483b350cab1f9570773347e89 100755 (executable)
@@ -166,6 +166,9 @@ ar71xx_board_detect() {
        *"DIR-600 rev. A1")
                name="dir-600-a1"
                ;;
+       *"DIR-615 rev. E4")
+               name="dir-615-e4"
+               ;;
        *"DIR-825 rev. B1")
                name="dir-825-b1"
                ;;
index 49df3c39667f041f0318ed54040ac0ac3e2f1f9b..3adfcd58b34ea15eae12ee1f61884230c75733c5 100755 (executable)
@@ -97,6 +97,7 @@ platform_check_image() {
        ap83 | \
        dir-600-a1 | \
        dir-615-c1 | \
+       dir-615-e4 | \
        dir-825-b1 | \
        mzk-w04nu | \
        mzk-w300nh | \
index 4f51b1a2b97424032766d1d54c3f72b23d886110..b8a91b50f305bc0bb6fddc556dd37c163eb0377e 100644 (file)
@@ -25,6 +25,7 @@ CONFIG_AR71XX_MACH_AW_NR580=y
 CONFIG_AR71XX_MACH_DB120=y
 CONFIG_AR71XX_MACH_DIR_600_A1=y
 CONFIG_AR71XX_MACH_DIR_615_C1=y
+CONFIG_AR71XX_MACH_DIR_615_E4=y
 CONFIG_AR71XX_MACH_DIR_825_B1=y
 CONFIG_AR71XX_MACH_EAP7660D=y
 CONFIG_AR71XX_MACH_HORNET_UB=y
index 50fe18fd95af8670fe146b554e617ba2c69e687c..c3bcc763ff7801d446966105ca19c13426e2a1d6 100644 (file)
@@ -34,6 +34,7 @@ CONFIG_ATH79_MACH_AW_NR580=y
 CONFIG_ATH79_MACH_DB120=y
 CONFIG_ATH79_MACH_DIR_600_A1=y
 CONFIG_ATH79_MACH_DIR_615_C1=y
+CONFIG_ATH79_MACH_DIR_615_E4=y
 CONFIG_ATH79_MACH_DIR_825_B1=y
 CONFIG_ATH79_MACH_EAP7660D=y
 CONFIG_ATH79_MACH_HORNET_UB=y
index 60db3ef41529bdfa8796fd4f4f6b0029b4da094d..14982b1953da80333b92ca95ffe71342ec7ce00c 100644 (file)
@@ -104,6 +104,15 @@ config AR71XX_MACH_DIR_615_C1
        select AR71XX_DEV_LEDS_GPIO
        select AR71XX_NVRAM
 
+config AR71XX_MACH_DIR_615_E4
+       bool "D-Link DIR-615 rev. E4 support"
+       select SOC_AR724X
+       select AR71XX_DEV_AP91_PCI if PCI
+       select AR71XX_DEV_M25P80
+       select AR71XX_DEV_GPIO_BUTTONS
+       select AR71XX_DEV_LEDS_GPIO
+       select AR71XX_NVRAM
+
 config AR71XX_MACH_DIR_825_B1
        bool "D-Link DIR-825 rev. B1 board support"
        select SOC_AR71XX
index 22e32e5acc69979ef329cd69b3f57e389d6ff557..546ff34cc33b8e0e3bd6fbbbac7a53d9ebf51517 100644 (file)
@@ -40,6 +40,7 @@ obj-$(CONFIG_AR71XX_MACH_AW_NR580)    += mach-aw-nr580.o
 obj-$(CONFIG_AR71XX_MACH_DB120)                += mach-db120.o
 obj-$(CONFIG_AR71XX_MACH_DIR_600_A1)   += mach-dir-600-a1.o
 obj-$(CONFIG_AR71XX_MACH_DIR_615_C1)   += mach-dir-615-c1.o
+obj-$(CONFIG_AR71XX_MACH_DIR_615_E4)   += mach-dir-615-e4.o
 obj-$(CONFIG_AR71XX_MACH_DIR_825_B1)   += mach-dir-825-b1.o
 obj-$(CONFIG_AR71XX_MACH_EAP7660D)     += mach-eap7660d.o
 obj-$(CONFIG_AR71XX_MACH_JA76PF)       += mach-ja76pf.o
diff --git a/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-615-e4.c b/target/linux/ar71xx/files-2.6.39/arch/mips/ar71xx/mach-dir-615-e4.c
new file mode 100644 (file)
index 0000000..943929a
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ *  D-Link DIR-615 rev. E4 board support
+ *
+ *  Copyright (C) 2010 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
+ *  by the Free Software Foundation.
+ */
+
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+
+#include <asm/mach-ar71xx/ar71xx.h>
+
+#include "machtype.h"
+#include "devices.h"
+#include "dev-m25p80.h"
+#include "dev-ap91-pci.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "nvram.h"
+
+#define DIR_615_E4_GPIO_LED_WPS                        0
+#define DIR_615_E4_GPIO_LED_POWER_AMBER                1
+#define DIR_615_E4_GPIO_LED_POWER_GREEN                6
+#define DIR_615_E4_GPIO_LED_WAN_AMBER          7
+#define DIR_615_E4_GPIO_LED_WAN_GREEN          17
+#define DIR_615_E4_GPIO_LED_LAN1_GREEN         13
+#define DIR_615_E4_GPIO_LED_LAN2_GREEN         14
+#define DIR_615_E4_GPIO_LED_LAN3_GREEN         15
+#define DIR_615_E4_GPIO_LED_LAN4_GREEN         16
+
+#define DIR_615_E4_GPIO_BTN_RESET              8
+#define DIR_615_E4_GPIO_BTN_WPS                        12
+
+#define DIR_615_E4_KEYS_POLL_INTERVAL  20
+#define DIR_615_E4_KEYS_DEBOUNCE_INTERVAL (3 * DIR_615_E4_KEYS_POLL_INTERVAL)
+
+#define DIR_615_E4_NVRAM_ADDR  0x1f030000
+#define DIR_615_E4_NVRAM_SIZE  0x10000
+
+#ifdef CONFIG_MTD_PARTITIONS
+static struct mtd_partition dir_615_e4_partitions[] = {
+       {
+               .name           = "u-boot",
+               .offset         = 0,
+               .size           = 0x030000,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "nvram",
+               .offset         = 0x030000,
+               .size           = 0x010000,
+       }, {
+               .name           = "kernel",
+               .offset         = 0x040000,
+               .size           = 0x0e0000,
+       }, {
+               .name           = "rootfs",
+               .offset         = 0x120000,
+               .size           = 0x2c0000,
+       }, {
+               .name           = "mac",
+               .offset         = 0x3e0000,
+               .size           = 0x010000,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "art",
+               .offset         = 0x3f0000,
+               .size           = 0x010000,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "firmware",
+               .offset         = 0x040000,
+               .size           = 0x3a0000,
+       }
+};
+#endif /* CONFIG_MTD_PARTITIONS */
+
+static struct flash_platform_data dir_615_e4_flash_data = {
+#ifdef CONFIG_MTD_PARTITIONS
+       .parts          = dir_615_e4_partitions,
+       .nr_parts       = ARRAY_SIZE(dir_615_e4_partitions),
+#endif
+};
+
+
+static struct gpio_led dir_615_e4_leds_gpio[] __initdata = {
+       {
+               .name           = "dir-615-e4:green:power",
+               .gpio           = DIR_615_E4_GPIO_LED_POWER_GREEN,
+       }, {
+               .name           = "dir-615-e4:amber:power",
+               .gpio           = DIR_615_E4_GPIO_LED_POWER_AMBER,
+       }, {
+               .name           = "dir-615-e4:green:wan",
+               .gpio           = DIR_615_E4_GPIO_LED_WAN_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:amber:wan",
+               .gpio           = DIR_615_E4_GPIO_LED_WAN_AMBER,
+       }, {
+               .name           = "dir-615-e4:green:lan1",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN1_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:green:lan2",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN2_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:green:lan3",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN3_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:green:lan4",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN4_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:blue:wps",
+               .gpio           = DIR_615_E4_GPIO_LED_WPS,
+               .active_low     = 1,
+       }
+};
+
+static struct gpio_keys_button dir_615_e4_gpio_keys[] __initdata = {
+       {
+               .desc           = "reset",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = DIR_615_E4_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = DIR_615_E4_GPIO_BTN_RESET,
+               .active_low     = 1,
+       }, {
+               .desc           = "wps",
+               .type           = EV_KEY,
+               .code           = KEY_WPS_BUTTON,
+               .debounce_interval = DIR_615_E4_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = DIR_615_E4_GPIO_BTN_WPS,
+               .active_low     = 1,
+       }
+};
+
+static void __init dir_615_e4_setup(void)
+{
+       const char *nvram = (char *) KSEG1ADDR(DIR_615_E4_NVRAM_ADDR);
+       u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+       u8 mac_buff[6];
+       u8 *mac = NULL;
+
+       if (nvram_parse_mac_addr(nvram, DIR_615_E4_NVRAM_SIZE,
+                               "lan_mac=", mac_buff) == 0) {
+               ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac_buff, 0);
+               ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac_buff, 1);
+               mac = mac_buff;
+       }
+
+       ar71xx_add_device_m25p80(&dir_615_e4_flash_data);
+
+       ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir_615_e4_leds_gpio),
+                                       dir_615_e4_leds_gpio);
+
+       ar71xx_register_gpio_keys_polled(-1, DIR_615_E4_KEYS_POLL_INTERVAL,
+                                        ARRAY_SIZE(dir_615_e4_gpio_keys),
+                                        dir_615_e4_gpio_keys);
+
+       ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0);
+       ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1);
+
+       ar71xx_add_device_mdio(0, 0x0);
+
+       /* LAN ports */
+       ar71xx_add_device_eth(1);
+
+       /* WAN port */
+       ar71xx_add_device_eth(0);
+
+       ap91_pci_setup_wmac_led_pin(1);
+       ap91_pci_init(ee, mac);
+}
+
+MIPS_MACHINE(AR71XX_MACH_DIR_615_E4, "DIR-615-E4", "D-Link DIR-615 rev. E4",
+            dir_615_e4_setup);
index 452055d78ff545bdd62c46eccfd84cf0207a4712..82fc944cb36c671e05f42715e94a99896bb0fb35 100644 (file)
@@ -29,6 +29,7 @@ enum ar71xx_mach_type {
        AR71XX_MACH_DB120,      /* Atheros DB120 (AR934x based) */
        AR71XX_MACH_DIR_600_A1, /* D-Link DIR-600 rev. A1 */
        AR71XX_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */
+       AR71XX_MACH_DIR_615_E4, /* D-Link DIR-615 rev. E4 */
        AR71XX_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
        AR71XX_MACH_EAP7660D,   /* Senao EAP7660D */
        AR71XX_MACH_JA76PF,     /* jjPlus JA76PF */
diff --git a/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-615-e4.c b/target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-615-e4.c
new file mode 100644 (file)
index 0000000..cce5dce
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ *  D-Link DIR-615 rev. E4 board support
+ *
+ *  Copyright (C) 2010 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
+ *  by the Free Software Foundation.
+ */
+
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+
+#include <asm/mach-ath79/ath79.h>
+
+#include "dev-ap9x-pci.h"
+#include "dev-eth.h"
+#include "dev-gpio-buttons.h"
+#include "dev-leds-gpio.h"
+#include "dev-m25p80.h"
+#include "machtypes.h"
+#include "nvram.h"
+
+#define DIR_615_E4_GPIO_LED_WPS                        0
+#define DIR_615_E4_GPIO_LED_POWER_AMBER                1
+#define DIR_615_E4_GPIO_LED_POWER_GREEN                6
+#define DIR_615_E4_GPIO_LED_WAN_AMBER          7
+#define DIR_615_E4_GPIO_LED_WAN_GREEN          17
+#define DIR_615_E4_GPIO_LED_LAN1_GREEN         13
+#define DIR_615_E4_GPIO_LED_LAN2_GREEN         14
+#define DIR_615_E4_GPIO_LED_LAN3_GREEN         15
+#define DIR_615_E4_GPIO_LED_LAN4_GREEN         16
+
+#define DIR_615_E4_GPIO_BTN_RESET              8
+#define DIR_615_E4_GPIO_BTN_WPS                        12
+
+#define DIR_615_E4_KEYS_POLL_INTERVAL  20
+#define DIR_615_E4_KEYS_DEBOUNCE_INTERVAL (3 * DIR_615_E4_KEYS_POLL_INTERVAL)
+
+#define DIR_615_E4_NVRAM_ADDR  0x1f030000
+#define DIR_615_E4_NVRAM_SIZE  0x10000
+
+static struct mtd_partition dir_615_e4_partitions[] = {
+       {
+               .name           = "u-boot",
+               .offset         = 0,
+               .size           = 0x030000,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "nvram",
+               .offset         = 0x030000,
+               .size           = 0x010000,
+       }, {
+               .name           = "kernel",
+               .offset         = 0x040000,
+               .size           = 0x0e0000,
+       }, {
+               .name           = "rootfs",
+               .offset         = 0x120000,
+               .size           = 0x2c0000,
+       }, {
+               .name           = "mac",
+               .offset         = 0x3e0000,
+               .size           = 0x010000,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "art",
+               .offset         = 0x3f0000,
+               .size           = 0x010000,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "firmware",
+               .offset         = 0x040000,
+               .size           = 0x3a0000,
+       }
+};
+
+static struct flash_platform_data dir_615_e4_flash_data = {
+       .parts          = dir_615_e4_partitions,
+       .nr_parts       = ARRAY_SIZE(dir_615_e4_partitions),
+};
+
+
+static struct gpio_led dir_615_e4_leds_gpio[] __initdata = {
+       {
+               .name           = "dir-615-e4:green:power",
+               .gpio           = DIR_615_E4_GPIO_LED_POWER_GREEN,
+       }, {
+               .name           = "dir-615-e4:amber:power",
+               .gpio           = DIR_615_E4_GPIO_LED_POWER_AMBER,
+       }, {
+               .name           = "dir-615-e4:green:wan",
+               .gpio           = DIR_615_E4_GPIO_LED_WAN_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:amber:wan",
+               .gpio           = DIR_615_E4_GPIO_LED_WAN_AMBER,
+       }, {
+               .name           = "dir-615-e4:green:lan1",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN1_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:green:lan2",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN2_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:green:lan3",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN3_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:green:lan4",
+               .gpio           = DIR_615_E4_GPIO_LED_LAN4_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "dir-615-e4:blue:wps",
+               .gpio           = DIR_615_E4_GPIO_LED_WPS,
+               .active_low     = 1,
+       }
+};
+
+static struct gpio_keys_button dir_615_e4_gpio_keys[] __initdata = {
+       {
+               .desc           = "reset",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = DIR_615_E4_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = DIR_615_E4_GPIO_BTN_RESET,
+               .active_low     = 1,
+       }, {
+               .desc           = "wps",
+               .type           = EV_KEY,
+               .code           = KEY_WPS_BUTTON,
+               .debounce_interval = DIR_615_E4_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = DIR_615_E4_GPIO_BTN_WPS,
+               .active_low     = 1,
+       }
+};
+
+static void __init dir_615_e4_setup(void)
+{
+       const char *nvram = (char *) KSEG1ADDR(DIR_615_E4_NVRAM_ADDR);
+       u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
+       u8 mac_buff[6];
+       u8 *mac = NULL;
+
+       if (ath79_nvram_parse_mac_addr(nvram, DIR_615_E4_NVRAM_SIZE,
+                                      "lan_mac=", mac_buff) == 0) {
+               ath79_init_mac(ath79_eth0_data.mac_addr, mac_buff, 0);
+               ath79_init_mac(ath79_eth1_data.mac_addr, mac_buff, 1);
+               mac = mac_buff;
+       }
+
+       ath79_register_m25p80(&dir_615_e4_flash_data);
+
+       ath79_register_leds_gpio(-1, ARRAY_SIZE(dir_615_e4_leds_gpio),
+                                dir_615_e4_leds_gpio);
+
+       ath79_register_gpio_keys_polled(-1, DIR_615_E4_KEYS_POLL_INTERVAL,
+                                       ARRAY_SIZE(dir_615_e4_gpio_keys),
+                                       dir_615_e4_gpio_keys);
+
+       ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
+       ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
+
+       ath79_register_mdio(0, 0x0);
+
+       /* LAN ports */
+       ath79_register_eth(1);
+
+       /* WAN port */
+       ath79_register_eth(0);
+
+       ap9x_pci_setup_wmac_led_pin(0, 1);
+       ap91_pci_init(ee, mac);
+}
+
+MIPS_MACHINE(ATH79_MACH_DIR_615_E4, "DIR-615-E4", "D-Link DIR-615 rev. E4",
+            dir_615_e4_setup);
index ec79ddecf43d85ab0f0c8263526a87b26f1e01c3..3068c4f31ac6441ebbe1c29e73d1b2e6e745d8e8 100644 (file)
@@ -29,6 +29,18 @@ endef
 $(eval $(call Profile,DIR615C1))
 
 
+define Profile/DIR615E4
+       NAME:=D-Link DIR-615 rev. E4
+       PACKAGES:=
+endef
+
+define Profile/DIR615E4/Description
+       Package set optimized for the D-Link DIR-615 rev. E4.
+endef
+
+$(eval $(call Profile,DIR615E4))
+
+
 define Profile/DIR825B1
        NAME:=D-Link DIR-825 rev. B1
        PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev
index bd5e945f59cbf3769d857d662ece7a7c6bf49193..19e26ad2d640851f01e87c5618f3797a9732eb9e 100644 (file)
@@ -698,6 +698,11 @@ define Image/Build/Profile/DIR600A1
        $(call Image/Build/Template/$(fs_64k)/$(1),Cameo7240,dir-600-a1,$(dir600a1_cmdline),"AP91-AR7240-RT-090223-00")
 endef
 
+dir615e4_cmdline=board=DIR-615-E4 console=ttyS0,115200
+define Image/Build/Profile/DIR615E4
+       $(call Image/Build/Template/$(fs_64k)/$(1),Cameo7240,dir-615-e4,$(dir615e4_cmdline),"AP99-AR7240-RT-091105-05")
+endef
+
 eap7660d_cmdline=board=EAP7660D console=ttyS0,115200
 define Image/Build/Profile/EAP7660D
        $(call Image/Build/Template/$(fs_128k)/$(1),PB4X,eap7660d,$(eap7660d_cmdline))
@@ -995,6 +1000,7 @@ define Image/Build/Profile/Default
        $(call Image/Build/Profile/DB120,$(1))
        $(call Image/Build/Profile/DIR600A1,$(1))
        $(call Image/Build/Profile/DIR615C1,$(1))
+       $(call Image/Build/Profile/DIR615E4,$(1))
        $(call Image/Build/Profile/DIR825B1,$(1))
        $(call Image/Build/Profile/EAP7660D,$(1))
        $(call Image/Build/Profile/FR54RTR,$(1))
index d5204cb08279425e3c462c86a559c045cb263454..e6542a17417bde6bcf2364a103c6357f39501942 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/machtypes.h
 +++ b/arch/mips/ath79/machtypes.h
-@@ -16,17 +16,80 @@
+@@ -16,17 +16,81 @@
  
  enum ath79_mach_type {
        ATH79_MACH_GENERIC = 0,
@@ -18,6 +18,7 @@
        ATH79_MACH_PB44,                /* Atheros PB44 reference board */
 +      ATH79_MACH_DIR_600_A1,          /* D-Link DIR-600 rev. A1 */
 +      ATH79_MACH_DIR_615_C1,          /* D-Link DIR-615 rev. C1 */
++      ATH79_MACH_DIR_615_E4,          /* D-Link DIR-615 rev. E4 */
 +      ATH79_MACH_DIR_825_B1,          /* D-Link DIR-825 rev. B1 */
 +      ATH79_MACH_EAP7660D,            /* Senao EAP7660D */
 +      ATH79_MACH_JA76PF,              /* jjPlus JA76PF */
  config ATH79_MACH_PB44
        bool "Atheros PB44 reference board"
        select SOC_AR71XX
-@@ -54,6 +137,369 @@ config ATH79_MACH_PB44
+@@ -54,6 +137,379 @@ config ATH79_MACH_PB44
          Say 'Y' here if you want your kernel to support the
          Atheros PB44 reference board.
  
 +      select ATH79_DEV_WMAC
 +      select ATH79_NVRAM
 +
++config ATH79_MACH_DIR_615_E4
++      bool "D-Link DIR-615 rev. E4 support"
++      select SOC_AR724X
++      select ATH79_DEV_AP9X_PCI if PCI
++      select ATH79_DEV_ETH
++      select ATH79_DEV_GPIO_BUTTONS
++      select ATH79_DEV_LEDS_GPIO
++      select ATH79_DEV_M25P80
++      select ATH79_NVRAM
++
 +config ATH79_MACH_DIR_825_B1
 +      bool "D-Link DIR-825 rev. B1 board support"
 +      select SOC_AR71XX
  config ATH79_MACH_UBNT_XM
        bool "Ubiquiti Networks XM (rev 1.0) board"
        select SOC_AR724X
-@@ -67,6 +513,24 @@ config ATH79_MACH_UBNT_XM
+@@ -67,6 +523,24 @@ config ATH79_MACH_UBNT_XM
          Say 'Y' here if you want your kernel to support the
          Ubiquiti Networks XM (rev 1.0) board.
  
  endmenu
  
  config SOC_AR71XX
-@@ -96,10 +560,6 @@ config SOC_AR934X
+@@ -96,10 +570,6 @@ config SOC_AR934X
        select PCI_AR724X if PCI
        def_bool n
  
  config ATH79_DEV_AP9X_PCI
        select ATH79_PCI_ATH9K_FIXUP
        def_bool n
-@@ -110,7 +570,14 @@ config ATH79_DEV_DSA
+@@ -110,7 +580,14 @@ config ATH79_DEV_DSA
  config ATH79_DEV_ETH
        def_bool n
  
        def_bool n
  
  config ATH79_DEV_GPIO_BUTTONS
-@@ -135,4 +602,7 @@ config ATH79_NVRAM
+@@ -135,4 +612,7 @@ config ATH79_NVRAM
  config ATH79_PCI_ATH9K_FIXUP
        def_bool n
  
  endif
 --- a/arch/mips/ath79/Makefile
 +++ b/arch/mips/ath79/Makefile
-@@ -36,8 +36,56 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP) += p
+@@ -36,8 +36,57 @@ obj-$(CONFIG_ATH79_PCI_ATH9K_FIXUP) += p
  #
  # Machines
  #
  obj-$(CONFIG_ATH79_MACH_DB120)                += mach-db120.o
 +obj-$(CONFIG_ATH79_MACH_DIR_600_A1)   += mach-dir-600-a1.o
 +obj-$(CONFIG_ATH79_MACH_DIR_615_C1)   += mach-dir-615-c1.o
++obj-$(CONFIG_ATH79_MACH_DIR_615_E4)     += mach-dir-615-e4.o
 +obj-$(CONFIG_ATH79_MACH_DIR_825_B1)   += mach-dir-825-b1.o
 +obj-$(CONFIG_ATH79_MACH_EAP7660D)     += mach-eap7660d.o
 +obj-$(CONFIG_ATH79_MACH_JA76PF)               += mach-ja76pf.o