diff options
Diffstat (limited to 'target')
13 files changed, 152 insertions, 4 deletions
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index b42669342..6c8651375 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -36,7 +36,7 @@ get_status_led() {  	argus-atp52b)  		status_led="argus-atp52b:green:run"  		;; -	dir-300-b1 | dir-600-b1 | dir-600-b2 | dir-620-a1) +	dir-300-b1 | dir-600-b1 | dir-600-b2 | dir-615-h1 | dir-620-a1)  		status_led="d-link:green:status"  		;;  	dap-1350) diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index 392a8e1da..2a405195c 100644 --- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -57,6 +57,7 @@ case "$FIRMWARE" in  	all5002 | \  	argus-atp52b | \  	bc2 | \ +	dir-615-h1 | \  	dir-620-a1 | \  	esr-9753 | \  	fonera20n | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/leds b/target/linux/ramips/base-files/etc/uci-defaults/leds index 21804c74a..32fae2507 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/leds +++ b/target/linux/ramips/base-files/etc/uci-defaults/leds @@ -32,6 +32,10 @@ case $board in  		ucidef_set_led_default "wan" "WAN LED (amber)" "d-link:amber:wan" "1"  		set_wifi_led "rt2800pci-phy0::radio"  		;; +	dir-615-h1) +		ucidef_set_led_default "status" "Status LED (amber)" "d-link:amber:status" "0" +		set_wifi_led "rt2800pci-phy0::radio" +		;;  	esr-9753)  		set_wifi_led "rt2800pci-phy0::radio"  		;; diff --git a/target/linux/ramips/base-files/etc/uci-defaults/network b/target/linux/ramips/base-files/etc/uci-defaults/network index cbb0b85ff..e7e93345a 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/network +++ b/target/linux/ramips/base-files/etc/uci-defaults/network @@ -18,6 +18,7 @@ ramips_setup_interfaces()  	case $board in  	all0256n | \  	all5002 | \ +	dir-615-h1 | \  	wl-330n)  		ucidef_set_interface_lan "eth0.1"  		;; @@ -89,7 +90,8 @@ ramips_setup_macs()  	case $board in  	all0256n | \ -	all5002) +	all5002 | \ +	dir-615-h1)  		lan_mac=$(ramips_get_mac_binary factory 40)  		;;  	3g-6200n | \ diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac index a6c88ed96..7709b3b47 100644 --- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac +++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac @@ -35,7 +35,8 @@ preinit_set_mac_address() {  		ifconfig eth0 hw ether $mac 2>/dev/null                  ;;  	all0256n |\ -	all5002 | \ +	all5002 |\ +	dir-615-h1 |\  	fonera20n |\  	hw550-3g |\  	nbg-419n |\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 8dcda484a..fb2a573bf 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -83,6 +83,9 @@ ramips_board_name() {  	*"DIR-620 A1")  		name="dir-620-a1"  		;; +	*"DIR-615 H1") +		name="dir-615-h1" +		;;          *"DAP-1350")                  name="dap-1350"                  ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 2548e1d6d..1b5d54643 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -21,6 +21,7 @@ platform_check_image() {  	dir-300-b1 | \  	dir-600-b1 | \  	dir-600-b2 | \ +	dir-615-h1 | \  	dir-620-a1 | \  	dap-1350 | \  	esr-9753 | \ diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h index 2de19d799..d09bd4101 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h @@ -63,6 +63,7 @@ enum ramips_mach_type {  	/* RT3352 based machines */  	RAMIPS_MACH_ALL5002,		/* Allnet ALL5002 */ +	RAMIPS_MACH_DIR_615_H1,  	/* RT3662 based machines */  	RAMIPS_MACH_RT_N56U,		/* Asus RT-N56U */ diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig index 48745ae5d..5837196f6 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig @@ -16,7 +16,7 @@ config RT305X_MACH_ALL0256N  	bool "Allnet ALL0256N support"  	select RALINK_DEV_GPIO_BUTTONS  	select RALINK_DEV_GPIO_LEDS -	 +  config RT305X_MACH_ALL5002  	bool "Allnet ALL5002 support"  	select RALINK_DEV_GPIO_BUTTONS @@ -71,6 +71,11 @@ config RT305X_MACH_DIR_300_REVB  	select RALINK_DEV_GPIO_BUTTONS  	select RALINK_DEV_GPIO_LEDS +config RT305X_MACH_DIR_615_H1 +	bool "D-Link DIR-615 H1 board support" +	select RALINK_DEV_GPIO_BUTTONS +	select RALINK_DEV_GPIO_LEDS +  config RT305X_MACH_DAP_1350  	bool "D-Link DAP-1350 board support"  	select RALINK_DEV_GPIO_BUTTONS diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile index e5035e2e6..0dcb1f9e3 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile @@ -17,6 +17,7 @@ obj-$(CONFIG_RT305X_MACH_BC2)		+= mach-bc2.o  obj-$(CONFIG_RT305X_MACH_ALL0256N)	+= mach-all0256n.o  obj-$(CONFIG_RT305X_MACH_ALL5002)	+= mach-all5002.o  obj-$(CONFIG_RT305X_MACH_DIR_300_REVB)	+= mach-dir-300-revb.o +obj-$(CONFIG_RT305X_MACH_DIR_615_H1)	+= mach-dir-615-h1.o  obj-$(CONFIG_RT305X_MACH_DAP_1350)	+= mach-dap-1350.o  obj-$(CONFIG_RT305X_MACH_ESR_9753)	+= mach-esr-9753.o  obj-$(CONFIG_RT305X_MACH_F5D8235_V2)    += mach-f5d8235-v2.o diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-615-h1.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-615-h1.c new file mode 100644 index 000000000..dbfe4aa92 --- /dev/null +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-615-h1.c @@ -0,0 +1,112 @@ +/* + *  D-Link DIR-615 H1 + * + *  Copyright (C) 2012 Mikko Hissa <mikko.hissa@uta.fi> + * + *  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/init.h> +#include <linux/platform_device.h> +#include <linux/spi/spi.h> +#include <linux/spi/flash.h> +#include <linux/mtd/mtd.h> +#include <linux/mtd/partitions.h> +#include <linux/mtd/physmap.h> + +#include <asm/mach-ralink/machine.h> +#include <asm/mach-ralink/dev-gpio-buttons.h> +#include <asm/mach-ralink/dev-gpio-leds.h> +#include <asm/mach-ralink/rt305x.h> +#include <asm/mach-ralink/rt305x_regs.h> + +#include "devices.h" + +#define DIR_615_H1_GPIO_LED_WAN_AMBER	12 /* active low */ +#define DIR_615_H1_GPIO_LED_WAN_GREEN	13 /* active low */ +#define DIR_615_H1_GPIO_LED_WPS_BLUE	14 /* active low */ + +#define DIR_615_H1_GPIO_LED_STATUS_AMBER 7 +#define DIR_615_H1_GPIO_LED_STATUS_GREEN 9 + +#define DIR_615_H1_GPIO_BUTTON_RESET	10 /* active low */ +#define DIR_615_H1_GPIO_BUTTON_WPS	0  /* active low */ + +#define DIR_615_H1_KEYS_POLL_INTERVAL	20 +#define DIR_615_H1_KEYS_DEBOUNCE_INTERVAL (3 * DIR_615_H1_KEYS_POLL_INTERVAL) + +static struct gpio_led dir_615_h1_leds_gpio[] __initdata = { +	{ +		.name		= "d-link:amber:status", +		.gpio		= DIR_615_H1_GPIO_LED_STATUS_AMBER, +	}, { +		.name		= "d-link:green:status", +		.gpio		= DIR_615_H1_GPIO_LED_STATUS_GREEN, +	}, { +		.name		= "d-link:amber:wan", +		.gpio		= DIR_615_H1_GPIO_LED_WAN_AMBER, +		.active_low	= 1, +	}, { +		.name		= "d-link:green:wan", +		.gpio		= DIR_615_H1_GPIO_LED_WAN_GREEN, +		.active_low	= 1, +	}, { +		.name		= "d-link:blue:wps", +		.gpio		= DIR_615_H1_GPIO_LED_WPS_BLUE, +		.active_low	= 1, +	} +}; + +static struct gpio_keys_button dir_615_h1_gpio_buttons[] __initdata = { +	{ +		.desc		= "reset", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.debounce_interval = DIR_615_H1_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= DIR_615_H1_GPIO_BUTTON_RESET, +		.active_low	= 1, +	}, { +		.desc		= "wps", +		.type		= EV_KEY, +		.code		= KEY_WPS_BUTTON, +		.debounce_interval = DIR_615_H1_KEYS_DEBOUNCE_INTERVAL, +		.gpio		= DIR_615_H1_GPIO_BUTTON_WPS, +		.active_low	= 1, +	} +}; + +const struct flash_platform_data dir615h1_flash = { +	.type		= "mx25l3205d", +}; + +struct spi_board_info dir615h1_spi_slave_info[] __initdata = { +	{ +		.modalias	= "m25p80", +		.platform_data	= &dir615h1_flash, +		.irq		= -1, +		.max_speed_hz	= 10000000, +		.bus_num	= 0, +		.chip_select	= 0, +	}, +}; + +static void __init dir615h1_init(void) +{ +	rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); +	rt305x_register_spi(dir615h1_spi_slave_info, +			    ARRAY_SIZE(dir615h1_spi_slave_info)); +	rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW; +	rt305x_register_ethernet(); +	ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_615_h1_leds_gpio), +				  dir_615_h1_leds_gpio); +	ramips_register_gpio_buttons(-1, DIR_615_H1_KEYS_POLL_INTERVAL, +				     ARRAY_SIZE(dir_615_h1_gpio_buttons), +				     dir_615_h1_gpio_buttons); +	rt305x_register_wifi(); +	rt305x_register_wdt(); +} + +MIPS_MACHINE(RAMIPS_MACH_DIR_615_H1, "DIR-615-H1", "D-Link DIR-615 H1", +	     dir615h1_init); diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 1e17187c3..344186361 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -183,6 +183,17 @@ define BuildFirmware/DIR300B1/initramfs  	$(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir300b1)),$(mtd_dir300b1_kernel_part_size),$(mtd_dir300b1_rootfs_part_size))  endef +mtdlayout_dir615h1=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) +define BuildFirmware/DIR615H1 +        $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_dir615h1)),917504,2949120) +	mkdir615h1 -e $(call sysupname,$(1),$(2)) \ +		-o $(call imgname,$(1),$(2))-factory.bin +endef + +define BuildFirmware/DIR615H1/initramfs +        $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_dir615h1))) +endef +  mtdlayout_dap1350=192k(u-boot)ro,64k(devdata)ro,192k(devconf)ro,256k(devlang)ro,1088k(kernel),6400k(rootfs),7488k@0xb0000(firmware)  mtd_dap1350_kernel_part_size=1114112  mtd_dap1350_rootfs_part_size=6553600 @@ -380,6 +391,10 @@ define Image/Build/Profile/DIR300B1  	$(call Image/Build/Template/$(fs_squash)/$(1),DIR620A1,dir-620-a1,DIR-620-A1)  endef +define Image/Build/Profile/DIR615H1 +        $(call Image/Build/Template/$(fs_squash)/$(1),DIR615H1,dir-615-h1,DIR-615-H1,ttyS1,57600,spi) +endef +  define Image/Build/Profile/DAP1350  	$(call Image/Build/Template/$(fs_squash)/$(1),DAP1350,dap-1350,DAP-1350,RT3052-AP-DAP1350-3)  endef @@ -503,6 +518,7 @@ define Image/Build/Profile/Default  	$(call Image/Build/Profile/ARGUS_ATP52B,$(1))  	$(call Image/Build/Profile/BC2,$(1))  	$(call Image/Build/Profile/DIR300B1,$(1)) +	$(call Image/Build/Profile/DIR615H1,$(1))  	$(call Image/Build/Profile/DAP1350,$(1))  	$(call Image/Build/Profile/ESR9753,$(1))  	$(call Image/Build/Profile/F5D8235V2,$(1)) diff --git a/target/linux/ramips/rt305x/config-3.3 b/target/linux/ramips/rt305x/config-3.3 index 04afff646..409bdbbbe 100644 --- a/target/linux/ramips/rt305x/config-3.3 +++ b/target/linux/ramips/rt305x/config-3.3 @@ -93,6 +93,7 @@ CONFIG_RT305X_MACH_ALL5002=y  CONFIG_RT305X_MACH_ARGUS_ATP52B=y  CONFIG_RT305X_MACH_BC2=y  CONFIG_RT305X_MACH_DIR_300_REVB=y +CONFIG_RT305X_MACH_DIR_615_H1=y  CONFIG_RT305X_MACH_DAP_1350=y  CONFIG_RT305X_MACH_ESR_9753=y  CONFIG_RT305X_MACH_F5D8235_V2=y  | 
