This patch adds support for the Elink EL-150. The Elink EL-150 is a Atheros AR9331 Module.
http://item.taobao.com/item.htm?spm=a1z10.5.w4002-2498531248.10.ESiKXR&id=16612265015 Two Development Boards are available for this module. http://item.taobao.com/item.htm?spm=2013.1.0.0.7F5wOQ&id=25332812868&scm=1007.10115.744.0&pvid=9f4f22f6-8789-44a9-9811-dfb5ec530c64 http://item.taobao.com/item.htm?spm=2013.1.0.0.7F5wOQ&id=20218043975&scm=1007.10115.744.0&pvid=9f4f22f6-8789-44a9-9811-dfb5ec530c64 Signed-off-by: L. D. Pinney <ldpin...@gmail.com> ------------------------------------------------------------------------- Index: target/linux/ar71xx/image/Makefile =================================================================== --- target/linux/ar71xx/image/Makefile +++ target/linux/ar71xx/image/Makefile @@ -1112,6 +1112,7 @@ $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7V1,archer-c7-v1,ARCHER-C7,ttyS0,115200,0x75000001,1,8Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ARCHERC7V2,archer-c7-v2,ARCHER-C7,ttyS0,115200,0xc7000002,1,16Mlzma)) +$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,ELM150,el-m150,EL-M150,ttyATH0,115200,0x01500101,1,8Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR10U,tl-mr10u-v1,TL-MR10U,ttyATH0,115200,0x00100101,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV1,tl-mr11u-v1,TL-MR11U,ttyATH0,115200,0x00110101,1,4Mlzma)) $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR11UV2,tl-mr11u-v2,TL-MR11U,ttyATH0,115200,0x00110102,1,4Mlzma)) Index: target/linux/ar71xx/config-3.10 =================================================================== --- target/linux/ar71xx/config-3.10 +++ target/linux/ar71xx/config-3.10 @@ -47,6 +47,7 @@ CONFIG_ATH79_MACH_DIR_825_C1=y CONFIG_ATH79_MACH_DRAGINO2=y CONFIG_ATH79_MACH_EAP7660D=y +CONFIG_ATH79_MACH_EL_M150=y CONFIG_ATH79_MACH_EW_DORIN=y CONFIG_ATH79_MACH_GS_OOLITE=y CONFIG_ATH79_MACH_HORNET_UB=y Index: target/linux/ar71xx/base-files/lib/ar71xx.sh =================================================================== --- target/linux/ar71xx/base-files/lib/ar71xx.sh +++ target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -94,6 +94,9 @@ "3C0001"*) model="OOLITE" ;; + "015000"*) + model="ELink EL-M150" + ;; "070300"*) model="TP-Link TL-WR703N" ;; @@ -298,6 +304,9 @@ *EAP7660D) name="eap7660d" ;; + *EL-M150) + name="el-m150" + ;; *JA76PF) name="ja76pf" ;; Index: target/linux/ar71xx/base-files/lib/upgrade/platform.sh =================================================================== --- target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -220,6 +220,7 @@ ;; archer-c7 | \ + el-m150 | \ oolite | \ tl-mr10u | \ tl-mr11u | \ Index: target/linux/ar71xx/base-files/etc/uci-defaults/03_network-switchX-migration =================================================================== --- target/linux/ar71xx/base-files/etc/uci-defaults/03_network-switchX-migration +++ target/linux/ar71xx/base-files/etc/uci-defaults/03_network-switchX-migration @@ -80,6 +80,7 @@ migrate_switch_name "eth0" "switch0" ;; +el-m150|\ rb-450) migrate_switch_name "eth1" "switch0" ;; Index: target/linux/ar71xx/base-files/etc/uci-defaults/02_network =================================================================== --- target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -148,6 +148,12 @@ ucidef_add_switch_vlan "switch0" "2" "0t 2" ;; +el-m150) + ucidef_set_interfaces_lan_wan "eth1" "eth0" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 3" + ;; + tl-wdr4300|\ tl-wr1041n-v2) ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" Index: target/linux/ar71xx/base-files/etc/diag.sh =================================================================== --- target/linux/ar71xx/base-files/etc/diag.sh +++ target/linux/ar71xx/base-files/etc/diag.sh @@ -64,6 +64,9 @@ eap7660d) status_led="eap7660d:green:ds4" ;; + el-m150) + status_led="elink:green:system" + ;; hornet-ub) status_led="alfa:blue:wps" ;; Index: target/linux/ar71xx/generic/profiles/easy-link.mk =================================================================== --- /dev/null +++ target/linux/ar71xx/generic/profiles/easy-link.mk @@ -0,0 +1,17 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/ELM150 + NAME:=ELINK EL-M150 + PACKAGES:=kmod-usb-core kmod-usb2 +endef + + +define Profile/ELM150/Description + Package set optimized for the ELINK EL-M150. +endef +$(eval $(call Profile,ELM150)) Index: target/linux/ar71xx/files/arch/mips/ath79/mach-el-m150.c =================================================================== --- /dev/null +++ target/linux/ar71xx/files/arch/mips/ath79/mach-el-m150.c @@ -0,0 +1,112 @@ +/* + * ELINK EL-M150 board support + * + * Copyright (C) 2012 HYS <550663...@qq.com> + * Copyright (C) 2012 huangfc <huangfangch...@163.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/gpio.h> + +#include <asm/mach-ath79/ath79.h> +#include <asm/mach-ath79/ar71xx_regs.h> + +#include "common.h" +#include "dev-eth.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-m25p80.h" +#include "dev-wmac.h" +#include "machtypes.h" +#include "dev-usb.h" + +#define EL_M150_GPIO_BTN6 6 +#define EL_M150_GPIO_BTN7 7 +#define EL_M150_GPIO_BTN_RESET 11 + +#define EL_M150_GPIO_LED_SYSTEM 27 +#define EL_M150_GPIO_USB_POWER 8 + +#define EL_M150_KEYS_POLL_INTERVAL 20 /* msecs */ +#define EL_M150_KEYS_DEBOUNCE_INTERVAL (3 * EL_M150_KEYS_POLL_INTERVAL) + +static const char *EL_M150_part_probes[] = { + "tp-link", + NULL, +}; + +static struct flash_platform_data EL_M150_flash_data = { + .part_probes = EL_M150_part_probes, +}; + +static struct gpio_led EL_M150_leds_gpio[] __initdata = { + { + .name = "elink:green:system", + .gpio = EL_M150_GPIO_LED_SYSTEM, + .active_low = 1, + }, +}; + +static struct gpio_keys_button EL_M150_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = EL_M150_KEYS_DEBOUNCE_INTERVAL, + .gpio = EL_M150_GPIO_BTN_RESET, + .active_low = 0, + }, + { + .desc = "BTN_6", + .type = EV_KEY, + .code = BTN_6, + .debounce_interval = EL_M150_KEYS_DEBOUNCE_INTERVAL, + .gpio = EL_M150_GPIO_BTN6, + .active_low = 1, + }, + { + .desc = "BTN_7", + .type = EV_KEY, + .code = BTN_7, + .debounce_interval = EL_M150_KEYS_DEBOUNCE_INTERVAL, + .gpio = EL_M150_GPIO_BTN7, + .active_low = 1, + }, +}; + +static void __init el_m150_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + /* disable PHY_SWAP and PHY_ADDR_SWAP bits */ + ath79_setup_ar933x_phy4_switch(false, false); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(EL_M150_leds_gpio), + EL_M150_leds_gpio); + + ath79_register_gpio_keys_polled(-1, EL_M150_KEYS_POLL_INTERVAL, + ARRAY_SIZE(EL_M150_gpio_keys), + EL_M150_gpio_keys); + + gpio_request_one(EL_M150_GPIO_USB_POWER, + GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + "USB power"); + ath79_register_usb(); + + ath79_register_m25p80(&EL_M150_flash_data); + 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); + ath79_register_eth(0); + ath79_register_eth(1); + + ath79_register_wmac(ee, mac); +} + +MIPS_MACHINE(ATH79_MACH_EL_M150, "EL-M150", + "ELINK EL-M150", el_m150_setup); Index: target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch =================================================================== --- target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch +++ target/linux/ar71xx/patches-3.10/610-MIPS-ath79-openwrt-machines.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -16,22 +16,142 @@ +@@ -16,22 +16,143 @@ enum ath79_mach_type { ATH79_MACH_GENERIC = 0, @@ -36,6 +36,7 @@ + ATH79_MACH_DRAGINO2, /* Dragino Version 2 */ + ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */ + ATH79_MACH_EW_DORIN_ROUTER, /* embedded wireless Dorin Router Platform */ ++ ATH79_MACH_EL_M150, /* ELINK EL-M150 */ + ATH79_MACH_EAP7660D, /* Senao EAP7660D */ + ATH79_MACH_JA76PF, /* jjPlus JA76PF */ + ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */ @@ -207,7 +208,7 @@ config ATH79_MACH_AP121 bool "Atheros AP121 reference board" select SOC_AR933X -@@ -9,64 +64,736 @@ config ATH79_MACH_AP121 +@@ -9,64 +64,746 @@ config ATH79_MACH_AP121 select ATH79_DEV_GPIO_BUTTONS select ATH79_DEV_LEDS_GPIO select ATH79_DEV_M25P80 @@ -289,6 +290,16 @@ + Say 'Y' here if you want your kernel to support the + Atheros DB120 reference board. + ++config ATH79_MACH_EL_M150 ++ bool "ELINK EL-M150 support" ++ select SOC_AR933X ++ select ATH79_DEV_ETH ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_M25P80 ++ select ATH79_DEV_USB ++ select ATH79_DEV_WMAC ++ +config ATH79_MACH_PB42 + bool "Atheros PB42 board support" + select SOC_AR71XX @@ -1058,7 +1069,7 @@ endif --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -38,9 +38,90 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route +@@ -38,9 +38,91 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route # # Machines # @@ -1086,6 +1097,7 @@ +obj-$(CONFIG_ATH79_MACH_DRAGINO2) += mach-dragino2.o +obj-$(CONFIG_ATH79_MACH_EW_DORIN) += mach-ew-dorin.o +obj-$(CONFIG_ATH79_MACH_EAP7660D) += mach-eap7660d.o ++obj-$(CONFIG_ATH79_MACH_EL_M150) += mach-el-m150.o +obj-$(CONFIG_ATH79_MACH_JA76PF) += mach-ja76pf.o +obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o +obj-$(CONFIG_ATH79_MACH_HORNET_UB) += mach-hornet-ub.o
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel