diff options
Diffstat (limited to 'target')
| -rwxr-xr-x | target/linux/ar71xx/base-files/etc/diag.sh | 3 | ||||
| -rwxr-xr-x | target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-2 | 24 | ||||
| -rwxr-xr-x | target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-5 | 30 | ||||
| -rwxr-xr-x | target/linux/ar71xx/base-files/lib/ar71xx.sh | 6 | ||||
| -rwxr-xr-x | target/linux/ar71xx/base-files/lib/upgrade/platform.sh | 7 | ||||
| -rw-r--r-- | target/linux/ar71xx/config-2.6.32 | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/config-2.6.33 | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/config-2.6.34 | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/config-2.6.35 | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig | 10 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/Makefile | 1 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/mach-zcn-1523h.c | 211 | ||||
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h | 2 | 
13 files changed, 297 insertions, 1 deletions
| diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 384bf032c..b1e1d2312 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -108,6 +108,9 @@ get_status_led() {  	wzr-hp-g300nh)  		status_led="wzr-hp-g300nh:green:router"  		;; +	zcn-1523h-2 | zcn-1523h-5) +		status_led="zcn-1523h:amber:init" +		;;  	esac;  } diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-2 b/target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-2 new file mode 100755 index 000000000..4f7731635 --- /dev/null +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-2 @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Copyright (C) 2010 OpenWrt.org +# + +. /lib/ar71xx.sh + +board=$(ar71xx_board_name) + +zcn_set_leds() { +	uci batch <<EOF +set system.led_lan1='led' +set system.led_lan1.name='lan1' +set system.led_lan1.sysfs='zcn-1523h:green:lan1' +set system.led_lan1.trigger='netdev' +set system.led_lan1.dev='eth0' +set system.led_lan1.mode='link tx rx' +commit system +EOF +} + +if [ "${board}" == "zcn-1523h-2" ]; then +	zcn_set_leds +fi diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-5 b/target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-5 new file mode 100755 index 000000000..c62f72f09 --- /dev/null +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/zcn-1523h-5 @@ -0,0 +1,30 @@ +#!/bin/sh +# +# Copyright (C) 2010 OpenWrt.org +# + +. /lib/ar71xx.sh + +board=$(ar71xx_board_name) + +zcn_set_leds() { +	uci batch <<EOF +set system.led_lan1='led' +set system.led_lan1.name='lan1' +set system.led_lan1.sysfs='zcn-1523h:green:lan1' +set system.led_lan1.trigger='netdev' +set system.led_lan1.dev='eth0' +set system.led_lan1.mode='link tx rx' +set system.led_lan2='led' +set system.led_lan2.name='lan2' +set system.led_lan2.sysfs='zcn-1523h:green:lan2' +set system.led_lan2.trigger='netdev' +set system.led_lan2.dev='eth1' +set system.led_lan2.mode='link tx rx' +commit system +EOF +} + +if [ "${board}" == "zcn-1523h-5" ]; then +	zcn_set_leds +fi diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 2a9682262..4b08e93c1 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -121,6 +121,12 @@ ar71xx_board_name() {  	*WZR-HP-G300NH)  		name="wzr-hp-g300nh"  		;; +	*ZCN-1523H-2) +		name="zcn-1523h-2" +		;; +	*ZCN-1523H-5) +		name="zcn-1523h-5" +		;;  	*)  		name="generic"  		;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index bfa5cc69b..29aeff42e 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -96,6 +96,13 @@ platform_check_image() {  		}  		return 0  		;; +	zcn-1523h-2 | zcn-1523h-5) +		[ "$magic" != "6873" -a "$magic" != "1985" ] && { +			echo "Invalid image type." +			return 1 +		} +		return 0 +		;;  	routerstation | routerstation-pro | ls-sr71 | pb42 | pb44 | eap7660d )  		[ "$magic" != "4349" ] && {  			echo "Invalid image. Use *-sysupgrade.bin files on this board" diff --git a/target/linux/ar71xx/config-2.6.32 b/target/linux/ar71xx/config-2.6.32 index 9e4296b9f..b3ed8917a 100644 --- a/target/linux/ar71xx/config-2.6.32 +++ b/target/linux/ar71xx/config-2.6.32 @@ -45,6 +45,7 @@ CONFIG_AR71XX_MACH_WP543=y  CONFIG_AR71XX_MACH_WRT160NL=y  CONFIG_AR71XX_MACH_WRT400N=y  CONFIG_AR71XX_MACH_WZR_HP_G300NH=y +CONFIG_AR71XX_MACH_ZCN_1523H=y  CONFIG_AR71XX_NVRAM=y  CONFIG_AR71XX_WDT=y  CONFIG_AR8216_PHY=y diff --git a/target/linux/ar71xx/config-2.6.33 b/target/linux/ar71xx/config-2.6.33 index 5bc478c46..e27fb2a25 100644 --- a/target/linux/ar71xx/config-2.6.33 +++ b/target/linux/ar71xx/config-2.6.33 @@ -45,6 +45,7 @@ CONFIG_AR71XX_MACH_WP543=y  CONFIG_AR71XX_MACH_WRT160NL=y  CONFIG_AR71XX_MACH_WRT400N=y  CONFIG_AR71XX_MACH_WZR_HP_G300NH=y +CONFIG_AR71XX_MACH_ZCN_1523H=y  CONFIG_AR71XX_NVRAM=y  CONFIG_AR71XX_WDT=y  CONFIG_AR8216_PHY=y diff --git a/target/linux/ar71xx/config-2.6.34 b/target/linux/ar71xx/config-2.6.34 index 36a8f3302..6632d501d 100644 --- a/target/linux/ar71xx/config-2.6.34 +++ b/target/linux/ar71xx/config-2.6.34 @@ -45,6 +45,7 @@ CONFIG_AR71XX_MACH_WP543=y  CONFIG_AR71XX_MACH_WRT160NL=y  CONFIG_AR71XX_MACH_WRT400N=y  CONFIG_AR71XX_MACH_WZR_HP_G300NH=y +CONFIG_AR71XX_MACH_ZCN_1523H=y  CONFIG_AR71XX_NVRAM=y  CONFIG_AR71XX_WDT=y  CONFIG_AR8216_PHY=y diff --git a/target/linux/ar71xx/config-2.6.35 b/target/linux/ar71xx/config-2.6.35 index 36a8f3302..6632d501d 100644 --- a/target/linux/ar71xx/config-2.6.35 +++ b/target/linux/ar71xx/config-2.6.35 @@ -45,6 +45,7 @@ CONFIG_AR71XX_MACH_WP543=y  CONFIG_AR71XX_MACH_WRT160NL=y  CONFIG_AR71XX_MACH_WRT400N=y  CONFIG_AR71XX_MACH_WZR_HP_G300NH=y +CONFIG_AR71XX_MACH_ZCN_1523H=y  CONFIG_AR71XX_NVRAM=y  CONFIG_AR71XX_WDT=y  CONFIG_AR8216_PHY=y diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig index 984222fff..bae727421 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Kconfig @@ -177,7 +177,7 @@ config AR71XX_MACH_TL_WA901ND  	select AR71XX_DEV_GPIO_BUTTONS  	select AR71XX_DEV_LEDS_GPIO  	default n -	 +  config AR71XX_MACH_TL_WR741ND  	bool "TP-LINK TL-WR741ND support"  	select AR71XX_DEV_M25P80 @@ -240,6 +240,14 @@ config AR71XX_MACH_EAP7660D  	select AR71XX_DEV_LEDS_GPIO  	default n +config AR71XX_MACH_ZCN_1523H +	bool "Zcomax ZCN-1523H support" +	select AR71XX_DEV_M25P80 +	select AR71XX_DEV_AP91_PCI if PCI +	select AR71XX_DEV_GPIO_BUTTONS +	select AR71XX_DEV_LEDS_GPIO +	default n +  endmenu  config AR71XX_DEV_M25P80 diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile index 3c7329180..b9c368e1a 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/Makefile @@ -55,3 +55,4 @@ obj-$(CONFIG_AR71XX_MACH_WP543)		+= mach-wp543.o  obj-$(CONFIG_AR71XX_MACH_WRT160NL)	+= mach-wrt160nl.o  obj-$(CONFIG_AR71XX_MACH_WRT400N)	+= mach-wrt400n.o  obj-$(CONFIG_AR71XX_MACH_WZR_HP_G300NH)	+= mach-wzr-hp-g300nh.o +obj-$(CONFIG_AR71XX_MACH_ZCN_1523H)	+= mach-zcn-1523h.o diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-zcn-1523h.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-zcn-1523h.c new file mode 100644 index 000000000..b65e13291 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-zcn-1523h.c @@ -0,0 +1,211 @@ +/* + *  Zcomax ZCN-1523H-2-8/5-16 board support + * + *  Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org> + * + *  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" + +#define ZCN_1523H_GPIO_BTN_RESET	0 +#define ZCN_1523H_GPIO_LED_INIT		11 +#define ZCN_1523H_GPIO_LED_LAN1		17 + +#define ZCN_1523H_2_GPIO_LED_WEAK	13 +#define ZCN_1523H_2_GPIO_LED_MEDIUM	14 +#define ZCN_1523H_2_GPIO_LED_STRONG	15 + +#define ZCN_1523H_5_GPIO_LED_UNKNOWN	1 +#define ZCN_1523H_5_GPIO_LED_LAN2	13 +#define ZCN_1523H_5_GPIO_LED_WEAK	14 +#define ZCN_1523H_5_GPIO_LED_MEDIUM	15 +#define ZCN_1523H_5_GPIO_LED_STRONG	16 + +#define ZCN_1523H_BUTTONS_POLL_INTERVAL	20 + +#ifdef CONFIG_MTD_PARTITIONS +static struct mtd_partition zcn_1523h_partitions[] = { +	{ +		.name		= "u-boot", +		.offset		= 0, +		.size		= 0x040000, +		.mask_flags	= MTD_WRITEABLE, +	} , { +		.name		= "u-boot-env", +		.offset		= 0x040000, +		.size		= 0x010000, +		.mask_flags	= MTD_WRITEABLE, +	} , { +		.name		= "rootfs", +		.offset		= 0x050000, +		.size		= 0x610000, +	} , { +		.name		= "kernel", +		.offset		= 0x660000, +		.size		= 0x170000, +	} , { +		.name		= "configure", +		.offset		= 0x7d0000, +		.size		= 0x010000, +		.mask_flags	= MTD_WRITEABLE, +	} , { +		.name		= "mfg", +		.offset		= 0x7e0000, +		.size		= 0x010000, +		.mask_flags	= MTD_WRITEABLE, +	} , { +		.name		= "eeprom", +		.offset		= 0x7f0000, +		.size		= 0x010000, +		.mask_flags	= MTD_WRITEABLE, +	} , { +		.name		= "firmware", +		.offset		= 0x050000, +		.size		= 0x780000, +	} +}; +#endif /* CONFIG_MTD_PARTITIONS */ + +static struct flash_platform_data zcn_1523h_flash_data = { +#ifdef CONFIG_MTD_PARTITIONS +        .parts          = zcn_1523h_partitions, +        .nr_parts       = ARRAY_SIZE(zcn_1523h_partitions), +#endif +}; + +static struct gpio_button zcn_1523h_gpio_buttons[] __initdata = { +	{ +		.desc		= "reset", +		.type		= EV_KEY, +		.code		= KEY_RESTART, +		.threshold	= 3, +		.gpio		= ZCN_1523H_GPIO_BTN_RESET, +		.active_low	= 1, +	} +}; + +static struct gpio_led zcn_1523h_leds_gpio[] __initdata = { +	{ +		.name		= "zcn-1523h:amber:init", +		.gpio		= ZCN_1523H_GPIO_LED_INIT, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:green:lan1", +		.gpio		= ZCN_1523H_GPIO_LED_LAN1, +		.active_low	= 1, +	} +}; + +static struct gpio_led zcn_1523h_2_leds_gpio[] __initdata = { +	{ +		.name		= "zcn-1523h:red:weak", +		.gpio		= ZCN_1523H_2_GPIO_LED_WEAK, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:amber:medium", +		.gpio		= ZCN_1523H_2_GPIO_LED_MEDIUM, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:green:strong", +		.gpio		= ZCN_1523H_2_GPIO_LED_STRONG, +		.active_low	= 1, +	} +}; + +static struct gpio_led zcn_1523h_5_leds_gpio[] __initdata = { +	{ +		.name		= "zcn-1523h:red:weak", +		.gpio		= ZCN_1523H_5_GPIO_LED_WEAK, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:amber:medium", +		.gpio		= ZCN_1523H_5_GPIO_LED_MEDIUM, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:green:strong", +		.gpio		= ZCN_1523H_5_GPIO_LED_STRONG, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:green:lan2", +		.gpio		= ZCN_1523H_5_GPIO_LED_LAN2, +		.active_low	= 1, +	}, { +		.name		= "zcn-1523h:amber:unknown", +		.gpio		= ZCN_1523H_5_GPIO_LED_UNKNOWN, +	} +}; + +static void __init zcn_1523h_generic_setup(void) +{ +	u8 *mac = (u8 *) KSEG1ADDR(0x1f7e0004); +	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_add_device_m25p80(&zcn_1523h_flash_data); + +	ar71xx_add_device_leds_gpio(0, ARRAY_SIZE(zcn_1523h_leds_gpio), +				    zcn_1523h_leds_gpio); + +	ar71xx_add_device_gpio_buttons(-1, ZCN_1523H_BUTTONS_POLL_INTERVAL, +					ARRAY_SIZE(zcn_1523h_gpio_buttons), +					zcn_1523h_gpio_buttons); + +	ap91_pci_init(ee, mac); + +	ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); +	ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1); + +	/* LAN1 port */ +	ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; +	ar71xx_eth0_data.speed = SPEED_100; +	ar71xx_eth0_data.duplex = DUPLEX_FULL; + +	/* LAN2 port */ +	ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; +	ar71xx_eth1_data.speed = SPEED_1000; +	ar71xx_eth1_data.duplex = DUPLEX_FULL; + +	ar71xx_add_device_mdio(0x0); +	ar71xx_add_device_eth(0); +} + +static void __init zcn_1523h_2_setup(void) +{ +	zcn_1523h_generic_setup(); + +	ar71xx_add_device_leds_gpio(1, ARRAY_SIZE(zcn_1523h_2_leds_gpio), +				    zcn_1523h_2_leds_gpio); +} + +MIPS_MACHINE(AR71XX_MACH_ZCN_1523H_2, "ZCN-1523H-2", "Zcomax ZCN-1523H-2", +	     zcn_1523h_2_setup); + +static void __init zcn_1523h_5_setup(void) +{ +	zcn_1523h_generic_setup(); + +	ar71xx_add_device_leds_gpio(1, ARRAY_SIZE(zcn_1523h_5_leds_gpio), +				    zcn_1523h_5_leds_gpio); +	ar71xx_add_device_eth(1); +} + +MIPS_MACHINE(AR71XX_MACH_ZCN_1523H_5, "ZCN-1523H-5", "Zcomax ZCN-1523H-5", +	     zcn_1523h_5_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h index b9114a884..b530abfe4 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h @@ -56,6 +56,8 @@ enum ar71xx_mach_type {  	AR71XX_MACH_WRT400N,	/* Linksys WRT400N */  	AR71XX_MACH_WZR_HP_G300NH, /* Buffalo WZR-HP-G300NH */  	AR71XX_MACH_EAP7660D,	/* Senao EAP7660D */ +	AR71XX_MACH_ZCN_1523H_2, /* Zcomax ZCN-1523H-2-xx */ +	AR71XX_MACH_ZCN_1523H_5, /* Zcomax ZCN-1523H-5-xx */  };  #endif /* _AR71XX_MACHTYPE_H */ | 
