[OpenWrt-Devel] [PATCH] Add Support for WeIO Board (Chaos Calmer)

Florian Fainelli florian at openwrt.org
Sun Jun 14 20:28:03 EDT 2015


On Jun 14, 2015 2:56 PM, "Drasko DRASKOVIC" <drasko.draskovic at gmail.com>
wrote:
>
> Hello,
> please find below patch that adds support for WeIO board
> (http://we-io.net) to Chaos Calmer master branch.
>
> The board is based on Carambola2 module from 8Devices, and this patch
> adds a separate profile for WeIO.

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.

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


More information about the openwrt-devel mailing list