<p dir="ltr">On Jun 14, 2015 2:56 PM, "Drasko DRASKOVIC" <<a href="mailto:drasko.draskovic@gmail.com">drasko.draskovic@gmail.com</a>> wrote:<br>
><br>
> Hello,<br>
> please find below patch that adds support for WeIO board<br>
> (<a href="http://we-io.net">http://we-io.net</a>) to Chaos Calmer master branch.<br>
><br>
> The board is based on Carambola2 module from 8Devices, and this patch<br>
> adds a separate profile for WeIO.</p>
<p dir="ltr">Your patch has been mangled by your mailer, you might want to use git-send-email instead. Since this is a new target, trunk is more appropriate, once it gets there, backports to CC can be made.</p>
<p dir="ltr">><br>
> Best regards,<br>
> Drasko<br>
><br>
><br>
><br>
><br>
> From c68e410601b1fe656dad7b08ed41de470d0550c6 Mon Sep 17 00:00:00 2001<br>
> From: Drasko DRASKOVIC <<a href="mailto:drasko.draskovic@gmail.com">drasko.draskovic@gmail.com</a>><br>
> Date: Sun, 14 Jun 2015 22:41:45 +0200<br>
> Subject: [PATCH] Add support for WeIO board<br>
><br>
> Signed-off-by: Drasko DRASKOVIC <<a href="mailto:drasko.draskovic@gmail.com">drasko.draskovic@gmail.com</a>><br>
> ---<br>
>  .../ar71xx/base-files/etc/uci-defaults/01_leds     |   6 +<br>
>  target/linux/ar71xx/base-files/lib/ar71xx.sh       |   3 +<br>
>  .../ar71xx/base-files/lib/upgrade/platform.sh      |   3 +-<br>
>  target/linux/ar71xx/config-3.18                    |   1 +<br>
>  .../linux/ar71xx/files/arch/mips/ath79/mach-weio.c | 148 +++++++++++++++++++++<br>
>  target/linux/ar71xx/generic/profiles/<a href="http://weio.mk">weio.mk</a>       |  17 +++<br>
>  target/linux/ar71xx/image/Makefile                 |   8 ++<br>
>  .../610-MIPS-ath79-openwrt-machines.patch          |  21 ++-<br>
>  8 files changed, 201 insertions(+), 6 deletions(-)<br>
>  create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-weio.c<br>
>  create mode 100644 target/linux/ar71xx/generic/profiles/<a href="http://weio.mk">weio.mk</a><br>
><br>
> diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds<br>
> b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds<br>
> index 41eeeeb..b0fb36e 100644<br>
> --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds<br>
> +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds<br>
> @@ -63,6 +63,12 @@ carambola2)<br>
>   ucidef_set_led_wlan "wlan" "WLAN" "carambola2:green:wlan" "phy0tpt"<br>
>   ;;<br>
><br>
> +weio)<br>
> + ucidef_set_led_netdev "lan" "LAN" "weio:orange:eth0" "eth0"<br>
> + ucidef_set_led_netdev "wan" "WAN" "weio:orange:eth1" "eth1"<br>
> + ucidef_set_led_wlan "wlan" "WLAN" "weio:green:wlan" "phy0tpt"<br>
> + ;;<br>
> +<br>
>  cpe510)<br>
>   ucidef_set_led_switch "lan0" "LAN0" "tp-link:green:lan0" "switch0" "0x20"<br>
>   ucidef_set_led_switch "lan1" "LAN1" "tp-link:green:lan1" "switch0" "0x10"<br>
> diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh<br>
> b/target/linux/ar71xx/base-files/lib/ar71xx.sh<br>
> index b13be1e..fe7478c 100755<br>
> --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh<br>
> +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh<br>
> @@ -892,6 +892,9 @@ ar71xx_board_detect() {<br>
>   "8devices Carambola2"*)<br>
>   name="carambola2"<br>
>   ;;<br>
> + *"WeIO")<br>
> + name="weio"<br>
> + ;;<br>
>   *"Sitecom WLR-8100")<br>
>   name="wlr8100"<br>
>   ;;<br>
> diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh<br>
> b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh<br>
> index 3dbd91c..0f2920b 100755<br>
> --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh<br>
> +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh<br>
> @@ -243,7 +243,8 @@ platform_check_image() {<br>
>   nbg460n_550n_550nh | \<br>
>   unifi | \<br>
>   unifi-outdoor | \<br>
> - carambola2 )<br>
> + carambola2 | \<br>
> + weio )<br>
>   [ "$magic" != "2705" ] && {<br>
>   echo "Invalid image type."<br>
>   return 1<br>
> diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18<br>
> index 543b77e..ae68a18 100644<br>
> --- a/target/linux/ar71xx/config-3.18<br>
> +++ b/target/linux/ar71xx/config-3.18<br>
> @@ -43,6 +43,7 @@ CONFIG_ATH79_MACH_AW_NR580=y<br>
>  CONFIG_ATH79_MACH_BHU_BXU2000N2_A=y<br>
>  CONFIG_ATH79_MACH_CAP4200AG=y<br>
>  CONFIG_ATH79_MACH_CARAMBOLA2=y<br>
> +CONFIG_ATH79_MACH_WEIO=y<br>
>  CONFIG_ATH79_MACH_CPE510=y<br>
>  CONFIG_ATH79_MACH_DB120=y<br>
>  CONFIG_ATH79_MACH_DGL_5500_A1=y<br>
> diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-weio.c<br>
> b/target/linux/ar71xx/files/arch/mips/ath79/mach-weio.c<br>
> new file mode 100644<br>
> index 0000000..70ed543<br>
> --- /dev/null<br>
> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-weio.c<br>
> @@ -0,0 +1,148 @@<br>
> +/**<br>
> + * WEIO Web Of Things Platform<br>
> + *<br>
> + * Copyright (C) 2013 Drasko DRASKOVIC and Uros PETREVSKI<br>
> + *<br>
> + *              ##      ## ######## ####  #######<br>
> + *              ##  ##  ## ##        ##  ##     ##<br>
> + *              ##  ##  ## ##        ##  ##     ##<br>
> + *              ##  ##  ## ######    ##  ##     ##<br>
> + *              ##  ##  ## ##        ##  ##     ##<br>
> + *              ##  ##  ## ##        ##  ##     ##<br>
> + *               ###  ###  ######## ####  #######<br>
> + *<br>
> + *                   Web Of Things Platform<br>
> + *<br>
> + * Authors :<br>
> + * Drasko DRASKOVIC <<a href="mailto:drasko.draskovic@gmail.com">drasko.draskovic@gmail.com</a>><br>
> + * Uros PETREVSKI <<a href="mailto:uros@nodesign.net">uros@nodesign.net</a>><br>
> + */<br>
> +<br>
> +#include <asm/mach-ath79/ath79.h><br>
> +#include <asm/mach-ath79/ar71xx_regs.h><br>
> +#include "common.h"<br>
> +#include "dev-eth.h"<br>
> +#include "dev-gpio-buttons.h"<br>
> +#include "dev-leds-gpio.h"<br>
> +#include "dev-m25p80.h"<br>
> +#include "dev-spi.h"<br>
> +#include "dev-usb.h"<br>
> +#include "dev-wmac.h"<br>
> +#include "machtypes.h"<br>
> +#include "linux/i2c-gpio.h"<br>
> +#include "linux/platform_device.h"<br>
> +<br>
> +#define WEIO_GPIO_LED_STA 1<br>
> +#define WEIO_GPIO_LED_AP 16<br>
> +//#define WEIO_GPIO_LED_ETH0 13<br>
> +<br>
> +#define WEIO_GPIO_BTN_AP    20<br>
> +#define WEIO_GPIO_BTN_RESET 23<br>
> +<br>
> +#define WEIO_KEYS_POLL_INTERVAL 20 /* msecs */<br>
> +#define WEIO_KEYS_DEBOUNCE_INTERVAL (3 * WEIO_KEYS_POLL_INTERVAL)<br>
> +<br>
> +#define WEIO_MAC0_OFFSET 0x0000<br>
> +#define WEIO_MAC1_OFFSET 0x0006<br>
> +#define WEIO_CALDATA_OFFSET    0x1000<br>
> +#define WEIO_WMAC_MAC_OFFSET 0x1002<br>
> +<br>
> +static struct gpio_led weio_leds_gpio[] __initdata = {<br>
> + {<br>
> + .name = "weio:green:sta",<br>
> + .gpio = WEIO_GPIO_LED_STA,<br>
> + .active_low = 1,<br>
> +        .default_state = LEDS_GPIO_DEFSTATE_ON,<br>
> + }, {<br>
> + .name = "weio:green:ap",<br>
> + .gpio = WEIO_GPIO_LED_AP,<br>
> + .active_low = 1,<br>
> +        .default_state = LEDS_GPIO_DEFSTATE_ON,<br>
> + }<br>
> +};<br>
> +<br>
> +static struct gpio_keys_button weio_gpio_keys[] __initdata = {<br>
> + {<br>
> + .desc = "ap button",<br>
> + .type = EV_KEY,<br>
> + .code = BTN_0,<br>
> + .debounce_interval = WEIO_KEYS_DEBOUNCE_INTERVAL,<br>
> + .gpio = WEIO_GPIO_BTN_AP,<br>
> + .active_low = 1,<br>
> + },<br>
> + {<br>
> + .desc = "soft-reset button",<br>
> + .type = EV_KEY,<br>
> + .code = BTN_1,<br>
> + .debounce_interval = WEIO_KEYS_DEBOUNCE_INTERVAL,<br>
> + .gpio = WEIO_GPIO_BTN_RESET,<br>
> + .active_low = 1,<br>
> + }<br>
> +};<br>
> +<br>
> +static struct i2c_gpio_platform_data weio_i2c_gpio_data = {<br>
> + .sda_pin        = 18,<br>
> + .scl_pin        = 19,<br>
> +};<br>
> +<br>
> +static struct platform_device weio_i2c_gpio = {<br>
> + .name           = "i2c-gpio",<br>
> + .id             = 0,<br>
> + .dev     = {<br>
> + .platform_data  = &weio_i2c_gpio_data,<br>
> + },<br>
> +};<br>
> +<br>
> +static struct platform_device *weio_devices[] __initdata = {<br>
> +        &weio_i2c_gpio<br>
> +};<br>
> +<br>
> +static void __init weio_common_setup(void)<br>
> +{<br>
> + u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);<br>
> +<br>
> + ath79_register_m25p80(NULL);<br>
> + ath79_register_wmac(art + WEIO_CALDATA_OFFSET,<br>
> +    art + WEIO_WMAC_MAC_OFFSET);<br>
> +<br>
> +    /** WeIO does not use ETH - only WiFi by default */<br>
> +#if 0<br>
> + ath79_setup_ar933x_phy4_switch(true, true);<br>
> +<br>
> + ath79_init_mac(ath79_eth0_data.mac_addr, art + WEIO_MAC0_OFFSET, 0);<br>
> + ath79_init_mac(ath79_eth1_data.mac_addr, art + WEIO_MAC1_OFFSET, 0);<br>
> +<br>
> + ath79_register_mdio(0, 0x0);<br>
> +<br>
> + /* LAN ports */<br>
> + ath79_register_eth(1);<br>
> +<br>
> + /* WAN port */<br>
> + ath79_register_eth(0);<br>
> +#endif /** commented out ETH */<br>
> +}<br>
> +<br>
> +static void __init weio_setup(void)<br>
> +{<br>
> + weio_common_setup();<br>
> +<br>
> +<br>
> + ath79_gpio_function_disable(AR933X_GPIO_FUNC_ETH_SWITCH_LED0_EN |<br>
> + AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN |<br>
> + AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN |<br>
> + AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN |<br>
> +                AR933X_GPIO_FUNC_ETH_SWITCH_LED4_EN);<br>
> +<br>
> +    platform_add_devices(weio_devices, ARRAY_SIZE(weio_devices));<br>
> +<br>
> + ath79_register_leds_gpio(-1, ARRAY_SIZE(weio_leds_gpio),<br>
> + weio_leds_gpio);<br>
> +<br>
> + ath79_register_gpio_keys_polled(-1, WEIO_KEYS_POLL_INTERVAL,<br>
> + ARRAY_SIZE(weio_gpio_keys),<br>
> + weio_gpio_keys);<br>
> + ath79_register_usb();<br>
> +}<br>
> +<br>
> +MIPS_MACHINE(ATH79_MACH_WEIO, "WEIO", "WeIO board from Drasko<br>
> DRASKOVIC and Uros PETREVSKI",<br>
> + weio_setup);<br>
> diff --git a/target/linux/ar71xx/generic/profiles/<a href="http://weio.mk">weio.mk</a><br>
> b/target/linux/ar71xx/generic/profiles/<a href="http://weio.mk">weio.mk</a><br>
> new file mode 100644<br>
> index 0000000..227cec9<br>
> --- /dev/null<br>
> +++ b/target/linux/ar71xx/generic/profiles/<a href="http://weio.mk">weio.mk</a><br>
> @@ -0,0 +1,17 @@<br>
> +#<br>
> +# Copyright (C) 2013 OpenWrt.org<br>
> +#<br>
> +# This is free software, licensed under the GNU General Public License v2.<br>
> +# See /LICENSE for more information.<br>
> +#<br>
> +<br>
> +define Profile/WEIO<br>
> +        NAME:=WeIO<br>
> +        PACKAGES:=kmod-usb-core kmod-usb2<br>
> +endef<br>
> +<br>
> +define Profile/WEIO/Description<br>
> +        Package set optimized for the WeIO board.<br>
> +endef<br>
> +<br>
> +$(eval $(call Profile,WEIO))<br>
> diff --git a/target/linux/ar71xx/image/Makefile<br>
> b/target/linux/ar71xx/image/Makefile<br>
> index 580a640..23dc9d0 100644<br>
> --- a/target/linux/ar71xx/image/Makefile<br>
> +++ b/target/linux/ar71xx/image/Makefile<br>
> @@ -128,6 +128,14 @@ define Device/carambola2<br>
>  endef<br>
>  TARGET_DEVICES += carambola2<br>
><br>
> +define Device/weio<br>
> +  BOARDNAME = WEIO<br>
> +  IMAGE_SIZE = 16000k<br>
> +  CONSOLE = ttyATH0,115200<br>
> +  MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro<br>
> +endef<br>
> +TARGET_DEVICES += weio<br>
> +<br>
>  define Device/wndr3700<br>
>    BOARDNAME = WNDR3700<br>
>    NETGEAR_KERNEL_MAGIC = 0x33373030<br>
> diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch<br>
> b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch<br>
> index f8a561c..e8c8d5a 100644<br>
> --- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch<br>
> +++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch<br>
> @@ -1,6 +1,6 @@<br>
>  --- a/arch/mips/ath79/machtypes.h<br>
>  +++ b/arch/mips/ath79/machtypes.h<br>
> -@@ -16,22 +16,191 @@<br>
> +@@ -16,22 +16,192 @@<br>
><br>
>   enum ath79_mach_type {<br>
>   ATH79_MACH_GENERIC = 0,<br>
> @@ -25,6 +25,7 @@<br>
>  + ATH79_MACH_BHU_BXU2000N2_A1, /* BHU BXU2000n-2 A1 */<br>
>  + ATH79_MACH_CAP4200AG, /* Senao CAP4200AG */<br>
>  + ATH79_MACH_CARAMBOLA2, /* 8devices Carambola2 */<br>
> ++ ATH79_MACH_WEIO, /* WeIO board */<br>
>  + ATH79_MACH_CPE510, /* TP-LINK CPE510 */<br>
>   ATH79_MACH_DB120, /* Atheros DB120 reference board */<br>
>   ATH79_MACH_PB44, /* Atheros PB44 reference board */<br>
> @@ -1280,7 +1281,7 @@<br>
><br>
>   config ATH79_MACH_UBNT_XM<br>
>   bool "Ubiquiti Networks XM/UniFi boards"<br>
> -@@ -83,6 +1071,97 @@ config ATH79_MACH_UBNT_XM<br>
> +@@ -83,6 +1071,106 @@ config ATH79_MACH_UBNT_XM<br>
>    Say 'Y' here if you want your kernel to support the<br>
>    Ubiquiti Networks XM (rev 1.0) board.<br>
><br>
> @@ -1354,6 +1355,15 @@<br>
>  + select ATH79_DEV_USB<br>
>  + select ATH79_DEV_WMAC<br>
>  +<br>
> ++config ATH79_MACH_WEIO<br>
> ++ bool "WeIO board"<br>
> ++ select SOC_AR933X<br>
> ++ select ATH79_DEV_GPIO_BUTTONS<br>
> ++ select ATH79_DEV_LEDS_GPIO<br>
> ++ select ATH79_DEV_M25P80<br>
> ++ select ATH79_DEV_USB<br>
> ++ select ATH79_DEV_WMAC<br>
> ++<br>
>  +config ATH79_MACH_BHU_BXU2000N2_A<br>
>  + bool "BHU BXU2000n-2 rev. A support"<br>
>  + select SOC_AR934X<br>
> @@ -1378,7 +1388,7 @@<br>
>   endmenu<br>
><br>
>   config SOC_AR71XX<br>
> -@@ -124,7 +1203,10 @@ config ATH79_DEV_DSA<br>
> +@@ -124,7 +1212,10 @@ config ATH79_DEV_DSA<br>
>   config ATH79_DEV_ETH<br>
>   def_bool n<br>
><br>
> @@ -1390,7 +1400,7 @@<br>
>   def_bool n<br>
><br>
>   config ATH79_DEV_GPIO_BUTTONS<br>
> -@@ -154,6 +1236,11 @@ config ATH79_PCI_ATH9K_FIXUP<br>
> +@@ -154,6 +1245,11 @@ config ATH79_PCI_ATH9K_FIXUP<br>
>   def_bool n<br>
><br>
>   config ATH79_ROUTERBOOT<br>
> @@ -1404,7 +1414,7 @@<br>
>   endif<br>
>  --- a/arch/mips/ath79/Makefile<br>
>  +++ b/arch/mips/ath79/Makefile<br>
> -@@ -38,9 +38,120 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route<br>
> +@@ -38,9 +38,121 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route<br>
>   #<br>
>   # Machines<br>
>   #<br>
> @@ -1524,6 +1534,7 @@<br>
>  +obj-$(CONFIG_ATH79_MACH_WZR_450HP2) += mach-wzr-450hp2.o<br>
>  +obj-$(CONFIG_ATH79_MACH_ZCN_1523H) += mach-zcn-1523h.o<br>
>  +obj-$(CONFIG_ATH79_MACH_CARAMBOLA2) += mach-carambola2.o<br>
> ++obj-$(CONFIG_ATH79_MACH_WEIO) += mach-weio.o<br>
>  +obj-$(CONFIG_ATH79_MACH_NBG6716) += mach-nbg6716.o<br>
>  --- a/arch/mips/ath79/prom.c<br>
>  +++ b/arch/mips/ath79/prom.c<br>
> --<br>
> 2.1.4<br>
> _______________________________________________<br>
> openwrt-devel mailing list<br>
> <a href="mailto:openwrt-devel@lists.openwrt.org">openwrt-devel@lists.openwrt.org</a><br>
> <a href="https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel">https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel</a><br>
</p>