ar71xx: support for D-LINK DIR-615 rev. E4
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
This commit is contained in:
parent
97e4ddd012
commit
faeca86e50
@ -57,6 +57,9 @@ get_status_led() {
|
|||||||
dir-615-c1)
|
dir-615-c1)
|
||||||
status_led="dir-615c1:green:status"
|
status_led="dir-615c1:green:status"
|
||||||
;;
|
;;
|
||||||
|
dir-615-e4)
|
||||||
|
status_led="dir-615-e4:green:power"
|
||||||
|
;;
|
||||||
dir-825-b1)
|
dir-825-b1)
|
||||||
status_led="dir825b1:orange:power"
|
status_led="dir825b1:orange:power"
|
||||||
;;
|
;;
|
||||||
|
@ -118,6 +118,14 @@ rb750)
|
|||||||
set_led_switch "port5" "port5" "rb750:green:port5" "switch0" "0x02"
|
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)
|
dir-825-b1)
|
||||||
set_led_usbdev "usb" "USB" "dir825b1:blue:usb" "1-1"
|
set_led_usbdev "usb" "USB" "dir825b1:blue:usb" "1-1"
|
||||||
;;
|
;;
|
||||||
|
@ -137,6 +137,7 @@ ap96 |\
|
|||||||
airrouter |\
|
airrouter |\
|
||||||
dir-600-a1 |\
|
dir-600-a1 |\
|
||||||
dir-615-c1 |\
|
dir-615-c1 |\
|
||||||
|
dir-615-e4 |\
|
||||||
ja76pf |\
|
ja76pf |\
|
||||||
rb-750 |\
|
rb-750 |\
|
||||||
tew-632brp |\
|
tew-632brp |\
|
||||||
|
@ -166,6 +166,9 @@ ar71xx_board_detect() {
|
|||||||
*"DIR-600 rev. A1")
|
*"DIR-600 rev. A1")
|
||||||
name="dir-600-a1"
|
name="dir-600-a1"
|
||||||
;;
|
;;
|
||||||
|
*"DIR-615 rev. E4")
|
||||||
|
name="dir-615-e4"
|
||||||
|
;;
|
||||||
*"DIR-825 rev. B1")
|
*"DIR-825 rev. B1")
|
||||||
name="dir-825-b1"
|
name="dir-825-b1"
|
||||||
;;
|
;;
|
||||||
|
@ -97,6 +97,7 @@ platform_check_image() {
|
|||||||
ap83 | \
|
ap83 | \
|
||||||
dir-600-a1 | \
|
dir-600-a1 | \
|
||||||
dir-615-c1 | \
|
dir-615-c1 | \
|
||||||
|
dir-615-e4 | \
|
||||||
dir-825-b1 | \
|
dir-825-b1 | \
|
||||||
mzk-w04nu | \
|
mzk-w04nu | \
|
||||||
mzk-w300nh | \
|
mzk-w300nh | \
|
||||||
|
@ -25,6 +25,7 @@ CONFIG_AR71XX_MACH_AW_NR580=y
|
|||||||
CONFIG_AR71XX_MACH_DB120=y
|
CONFIG_AR71XX_MACH_DB120=y
|
||||||
CONFIG_AR71XX_MACH_DIR_600_A1=y
|
CONFIG_AR71XX_MACH_DIR_600_A1=y
|
||||||
CONFIG_AR71XX_MACH_DIR_615_C1=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_DIR_825_B1=y
|
||||||
CONFIG_AR71XX_MACH_EAP7660D=y
|
CONFIG_AR71XX_MACH_EAP7660D=y
|
||||||
CONFIG_AR71XX_MACH_HORNET_UB=y
|
CONFIG_AR71XX_MACH_HORNET_UB=y
|
||||||
|
@ -34,6 +34,7 @@ CONFIG_ATH79_MACH_AW_NR580=y
|
|||||||
CONFIG_ATH79_MACH_DB120=y
|
CONFIG_ATH79_MACH_DB120=y
|
||||||
CONFIG_ATH79_MACH_DIR_600_A1=y
|
CONFIG_ATH79_MACH_DIR_600_A1=y
|
||||||
CONFIG_ATH79_MACH_DIR_615_C1=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_DIR_825_B1=y
|
||||||
CONFIG_ATH79_MACH_EAP7660D=y
|
CONFIG_ATH79_MACH_EAP7660D=y
|
||||||
CONFIG_ATH79_MACH_HORNET_UB=y
|
CONFIG_ATH79_MACH_HORNET_UB=y
|
||||||
|
@ -104,6 +104,15 @@ config AR71XX_MACH_DIR_615_C1
|
|||||||
select AR71XX_DEV_LEDS_GPIO
|
select AR71XX_DEV_LEDS_GPIO
|
||||||
select AR71XX_NVRAM
|
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
|
config AR71XX_MACH_DIR_825_B1
|
||||||
bool "D-Link DIR-825 rev. B1 board support"
|
bool "D-Link DIR-825 rev. B1 board support"
|
||||||
select SOC_AR71XX
|
select SOC_AR71XX
|
||||||
|
@ -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_DB120) += mach-db120.o
|
||||||
obj-$(CONFIG_AR71XX_MACH_DIR_600_A1) += mach-dir-600-a1.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_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_DIR_825_B1) += mach-dir-825-b1.o
|
||||||
obj-$(CONFIG_AR71XX_MACH_EAP7660D) += mach-eap7660d.o
|
obj-$(CONFIG_AR71XX_MACH_EAP7660D) += mach-eap7660d.o
|
||||||
obj-$(CONFIG_AR71XX_MACH_JA76PF) += mach-ja76pf.o
|
obj-$(CONFIG_AR71XX_MACH_JA76PF) += mach-ja76pf.o
|
||||||
|
@ -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);
|
@ -29,6 +29,7 @@ enum ar71xx_mach_type {
|
|||||||
AR71XX_MACH_DB120, /* Atheros DB120 (AR934x based) */
|
AR71XX_MACH_DB120, /* Atheros DB120 (AR934x based) */
|
||||||
AR71XX_MACH_DIR_600_A1, /* D-Link DIR-600 rev. A1 */
|
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_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_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
|
||||||
AR71XX_MACH_EAP7660D, /* Senao EAP7660D */
|
AR71XX_MACH_EAP7660D, /* Senao EAP7660D */
|
||||||
AR71XX_MACH_JA76PF, /* jjPlus JA76PF */
|
AR71XX_MACH_JA76PF, /* jjPlus JA76PF */
|
||||||
|
179
target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-615-e4.c
Normal file
179
target/linux/ar71xx/files-3.2/arch/mips/ath79/mach-dir-615-e4.c
Normal file
@ -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);
|
@ -29,6 +29,18 @@ endef
|
|||||||
$(eval $(call Profile,DIR615C1))
|
$(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
|
define Profile/DIR825B1
|
||||||
NAME:=D-Link DIR-825 rev. B1
|
NAME:=D-Link DIR-825 rev. B1
|
||||||
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev
|
PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev
|
||||||
|
@ -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")
|
$(call Image/Build/Template/$(fs_64k)/$(1),Cameo7240,dir-600-a1,$(dir600a1_cmdline),"AP91-AR7240-RT-090223-00")
|
||||||
endef
|
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
|
eap7660d_cmdline=board=EAP7660D console=ttyS0,115200
|
||||||
define Image/Build/Profile/EAP7660D
|
define Image/Build/Profile/EAP7660D
|
||||||
$(call Image/Build/Template/$(fs_128k)/$(1),PB4X,eap7660d,$(eap7660d_cmdline))
|
$(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/DB120,$(1))
|
||||||
$(call Image/Build/Profile/DIR600A1,$(1))
|
$(call Image/Build/Profile/DIR600A1,$(1))
|
||||||
$(call Image/Build/Profile/DIR615C1,$(1))
|
$(call Image/Build/Profile/DIR615C1,$(1))
|
||||||
|
$(call Image/Build/Profile/DIR615E4,$(1))
|
||||||
$(call Image/Build/Profile/DIR825B1,$(1))
|
$(call Image/Build/Profile/DIR825B1,$(1))
|
||||||
$(call Image/Build/Profile/EAP7660D,$(1))
|
$(call Image/Build/Profile/EAP7660D,$(1))
|
||||||
$(call Image/Build/Profile/FR54RTR,$(1))
|
$(call Image/Build/Profile/FR54RTR,$(1))
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/arch/mips/ath79/machtypes.h
|
--- a/arch/mips/ath79/machtypes.h
|
||||||
+++ b/arch/mips/ath79/machtypes.h
|
+++ b/arch/mips/ath79/machtypes.h
|
||||||
@@ -16,17 +16,80 @@
|
@@ -16,17 +16,81 @@
|
||||||
|
|
||||||
enum ath79_mach_type {
|
enum ath79_mach_type {
|
||||||
ATH79_MACH_GENERIC = 0,
|
ATH79_MACH_GENERIC = 0,
|
||||||
@ -18,6 +18,7 @@
|
|||||||
ATH79_MACH_PB44, /* Atheros PB44 reference board */
|
ATH79_MACH_PB44, /* Atheros PB44 reference board */
|
||||||
+ ATH79_MACH_DIR_600_A1, /* D-Link DIR-600 rev. A1 */
|
+ 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_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_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
|
||||||
+ ATH79_MACH_EAP7660D, /* Senao EAP7660D */
|
+ ATH79_MACH_EAP7660D, /* Senao EAP7660D */
|
||||||
+ ATH79_MACH_JA76PF, /* jjPlus JA76PF */
|
+ ATH79_MACH_JA76PF, /* jjPlus JA76PF */
|
||||||
@ -187,7 +188,7 @@
|
|||||||
config ATH79_MACH_PB44
|
config ATH79_MACH_PB44
|
||||||
bool "Atheros PB44 reference board"
|
bool "Atheros PB44 reference board"
|
||||||
select SOC_AR71XX
|
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
|
Say 'Y' here if you want your kernel to support the
|
||||||
Atheros PB44 reference board.
|
Atheros PB44 reference board.
|
||||||
|
|
||||||
@ -296,6 +297,16 @@
|
|||||||
+ select ATH79_DEV_WMAC
|
+ select ATH79_DEV_WMAC
|
||||||
+ select ATH79_NVRAM
|
+ 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
|
+config ATH79_MACH_DIR_825_B1
|
||||||
+ bool "D-Link DIR-825 rev. B1 board support"
|
+ bool "D-Link DIR-825 rev. B1 board support"
|
||||||
+ select SOC_AR71XX
|
+ select SOC_AR71XX
|
||||||
@ -557,7 +568,7 @@
|
|||||||
config ATH79_MACH_UBNT_XM
|
config ATH79_MACH_UBNT_XM
|
||||||
bool "Ubiquiti Networks XM (rev 1.0) board"
|
bool "Ubiquiti Networks XM (rev 1.0) board"
|
||||||
select SOC_AR724X
|
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
|
Say 'Y' here if you want your kernel to support the
|
||||||
Ubiquiti Networks XM (rev 1.0) board.
|
Ubiquiti Networks XM (rev 1.0) board.
|
||||||
|
|
||||||
@ -582,7 +593,7 @@
|
|||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
config SOC_AR71XX
|
config SOC_AR71XX
|
||||||
@@ -96,10 +560,6 @@ config SOC_AR934X
|
@@ -96,10 +570,6 @@ config SOC_AR934X
|
||||||
select PCI_AR724X if PCI
|
select PCI_AR724X if PCI
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
@ -593,7 +604,7 @@
|
|||||||
config ATH79_DEV_AP9X_PCI
|
config ATH79_DEV_AP9X_PCI
|
||||||
select ATH79_PCI_ATH9K_FIXUP
|
select ATH79_PCI_ATH9K_FIXUP
|
||||||
def_bool n
|
def_bool n
|
||||||
@@ -110,7 +570,14 @@ config ATH79_DEV_DSA
|
@@ -110,7 +580,14 @@ config ATH79_DEV_DSA
|
||||||
config ATH79_DEV_ETH
|
config ATH79_DEV_ETH
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
@ -609,7 +620,7 @@
|
|||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
config ATH79_DEV_GPIO_BUTTONS
|
config ATH79_DEV_GPIO_BUTTONS
|
||||||
@@ -135,4 +602,7 @@ config ATH79_NVRAM
|
@@ -135,4 +612,7 @@ config ATH79_NVRAM
|
||||||
config ATH79_PCI_ATH9K_FIXUP
|
config ATH79_PCI_ATH9K_FIXUP
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
@ -619,7 +630,7 @@
|
|||||||
endif
|
endif
|
||||||
--- a/arch/mips/ath79/Makefile
|
--- a/arch/mips/ath79/Makefile
|
||||||
+++ b/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
|
# Machines
|
||||||
#
|
#
|
||||||
@ -635,6 +646,7 @@
|
|||||||
obj-$(CONFIG_ATH79_MACH_DB120) += mach-db120.o
|
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_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_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_DIR_825_B1) += mach-dir-825-b1.o
|
||||||
+obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o
|
+obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o
|
||||||
+obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o
|
+obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o
|
||||||
|
Loading…
Reference in New Issue
Block a user