[OpenWrt-Devel] [PATCH] [SIGNED-OFF] Add WeIO Board Support

John Crispin blogic at openwrt.org
Thu Sep 24 05:36:24 EDT 2015


its in trunk finally, sorry for the delay

On 23/09/2015 20:23, Drasko DRASKOVIC wrote:
> A kind reminder,
> please someone take a look at this patch and integrate it if it is OK.
> 
> BR,
> Drasko
> 
> 
> On Sun, Sep 20, 2015 at 7:27 PM, Drasko DRASKOVIC
> <drasko.draskovic at gmail.com> wrote:
>> Add support for WeIO board (http://we-io.net).
>> This board is based on Carambola2 board form 8Devices.
>>
>> Signed-off-by: Drasko DRASKOVIC <drasko.draskovic at gmail.com>
>> ---
>>  target/linux/ar71xx/base-files/lib/ar71xx.sh       |   3 +
>>  .../ar71xx/base-files/lib/upgrade/platform.sh      |   3 +-
>>  target/linux/ar71xx/config-4.1                     |   1 +
>>  .../linux/ar71xx/files/arch/mips/ath79/mach-weio.c | 145 +++++++++++++++++++++
>>  target/linux/ar71xx/generic/profiles/weio.mk       |  17 +++
>>  target/linux/ar71xx/image/Makefile                 |   8 ++
>>  .../700-MIPS-ath79-openwrt-machines.patch          |  21 ++-
>>  7 files changed, 192 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/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> index efb3d16..ad98cfb 100755
>> --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
>> @@ -850,6 +850,9 @@ ar71xx_board_detect() {
>>         *"UniFi AP Pro")
>>                 name="uap-pro"
>>                 ;;
>> +       *"WeIO")
>> +               name="weio"
>> +               ;;
>>         *WHR-G301N)
>>                 name="whr-g301n"
>>                 ;;
>> diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
>> index cad8b43..c947b78 100755
>> --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
>> +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
>> @@ -252,7 +252,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-4.1 b/target/linux/ar71xx/config-4.1
>> index 51f2f2f..50dc7b2 100644
>> --- a/target/linux/ar71xx/config-4.1
>> +++ b/target/linux/ar71xx/config-4.1
>> @@ -143,6 +143,7 @@ CONFIG_ATH79_MACH_TL_WR941ND=y
>>  CONFIG_ATH79_MACH_TUBE2H=y
>>  CONFIG_ATH79_MACH_UBNT=y
>>  CONFIG_ATH79_MACH_UBNT_XM=y
>> +CONFIG_ATH79_MACH_WEIO=y
>>  CONFIG_ATH79_MACH_WHR_HP_G300N=y
>>  CONFIG_ATH79_MACH_WLAE_AG300N=y
>>  CONFIG_ATH79_MACH_WLR8100=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..44a831b
>> --- /dev/null
>> +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-weio.c
>> @@ -0,0 +1,145 @@
>> +/**
>> + * WEIO Web Of Things Platform
>> + *
>> + * Copyright (C) 2013 Drasko DRASKOVIC and Uros PETREVSKI
>> + *
>> + *              ##      ## ######## ####  #######
>> + *              ##  ##  ## ##        ##  ##     ##
>> + *              ##  ##  ## ##        ##  ##     ##
>> + *              ##  ##  ## ######    ##  ##     ##
>> + *              ##  ##  ## ##        ##  ##     ##
>> + *              ##  ##  ## ##        ##  ##     ##
>> + *               ###  ###  ######## ####  #######
>> + *
>> + *                   Web Of Things Platform
>> + *
>> + * This program is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU General Public License
>> + * as published by the Free Software Foundation; either version 2
>> + * of the License, or (at your option) any later version.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program; if not, write to the Free Software
>> + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
>> + *
>> + * 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_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);
>> +}
>> +
>> +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 b00846f..f730640 100644
>> --- a/target/linux/ar71xx/image/Makefile
>> +++ b/target/linux/ar71xx/image/Makefile
>> @@ -208,6 +208,14 @@ define Device/cf-e316n-v2
>>  endef
>>  TARGET_DEVICES += cf-e316n-v2
>>
>> +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-4.1/700-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch
>> index 020bdfe..8ee0d3f 100644
>> --- a/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch
>> +++ b/target/linux/ar71xx/patches-4.1/700-MIPS-ath79-openwrt-machines.patch
>> @@ -1,6 +1,6 @@
>>  --- a/arch/mips/ath79/machtypes.h
>>  +++ b/arch/mips/ath79/machtypes.h
>> -@@ -16,24 +16,209 @@
>> +@@ -16,24 +16,210 @@
>>
>>   enum ath79_mach_type {
>>         ATH79_MACH_GENERIC = 0,
>> @@ -178,6 +178,7 @@
>>         ATH79_MACH_UBNT_UNIFI_OUTDOOR,  /* Ubiquiti UnifiAP Outdoor */
>>  +      ATH79_MACH_UBNT_UNIFI_OUTDOOR_PLUS, /* Ubiquiti UnifiAP Outdoor+ */
>>         ATH79_MACH_UBNT_XM,             /* Ubiquiti Networks XM board rev 1.0 */
>> ++      ATH79_MACH_WEIO,                        /* WeIO board */
>>  +      ATH79_MACH_WHR_G301N,           /* Buffalo WHR-G301N */
>>  +      ATH79_MACH_WHR_HP_G300N,        /* Buffalo WHR-HP-G300N */
>>  +      ATH79_MACH_WHR_HP_GN,           /* Buffalo WHR-HP-GN */
>> @@ -1439,10 +1440,19 @@
>>
>>   config ATH79_MACH_UBNT_XM
>>         bool "Ubiquiti Networks XM/UniFi boards"
>> -@@ -83,6 +1212,107 @@ config ATH79_MACH_UBNT_XM
>> +@@ -83,6 +1212,116 @@ config ATH79_MACH_UBNT_XM
>>           Say 'Y' here if you want your kernel to support the
>>           Ubiquiti Networks XM (rev 1.0) board.
>>
>> ++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_MYNET_N600
>>  +      bool "WD My Net N600 board support"
>>  +      select SOC_AR934X
>> @@ -1547,7 +1557,7 @@
>>   endmenu
>>
>>   config SOC_AR71XX
>> -@@ -134,7 +1364,10 @@ config ATH79_DEV_DSA
>> +@@ -134,7 +1373,10 @@ config ATH79_DEV_DSA
>>   config ATH79_DEV_ETH
>>         def_bool n
>>
>> @@ -1559,7 +1569,7 @@
>>         def_bool n
>>
>>   config ATH79_DEV_GPIO_BUTTONS
>> -@@ -164,6 +1397,11 @@ config ATH79_PCI_ATH9K_FIXUP
>> +@@ -164,6 +1406,11 @@ config ATH79_PCI_ATH9K_FIXUP
>>         def_bool n
>>
>>   config ATH79_ROUTERBOOT
>> @@ -1573,7 +1583,7 @@
>>   endif
>>  --- a/arch/mips/ath79/Makefile
>>  +++ b/arch/mips/ath79/Makefile
>> -@@ -38,9 +38,134 @@ obj-$(CONFIG_ATH79_ROUTERBOOT)             += route
>> +@@ -38,9 +38,135 @@ obj-$(CONFIG_ATH79_ROUTERBOOT)             += route
>>   #
>>   # Machines
>>   #
>> @@ -1683,6 +1693,7 @@
>>  +obj-$(CONFIG_ATH79_MACH_TUBE2H)               += mach-tube2h.o
>>  +obj-$(CONFIG_ATH79_MACH_UBNT)         += mach-ubnt.o
>>   obj-$(CONFIG_ATH79_MACH_UBNT_XM)      += mach-ubnt-xm.o
>> ++obj-$(CONFIG_ATH79_MACH_WEIO)         += mach-weio.o
>>  +obj-$(CONFIG_ATH79_MACH_WHR_HP_G300N) += mach-whr-hp-g300n.o
>>  +obj-$(CONFIG_ATH79_MACH_WLAE_AG300N)  += mach-wlae-ag300n.o
>>  +obj-$(CONFIG_ATH79_MACH_WLR8100)      += mach-wlr8100.o
>> --
>> 2.1.4
>>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
> 
_______________________________________________
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