From patchwork Wed Nov 29 18:53:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bill Moffitt X-Patchwork-Id: 842693 X-Patchwork-Delegate: pepe2k@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="ec3eZIFk"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yn8pl47cTz9ryk for ; Thu, 30 Nov 2017 05:54:39 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:Date:Message-ID:From:To: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=c/7eopJVXiBoBLjaR2lnKs8gz6jyUsg2CIUNY4YeclA=; b=ec3eZIFkVvd5oz 9Tr7BE1evpOGs8xeJAOBXblKX3wUkeCA9hegvJDkDVBODqmbu38QUJms1PUR8W2Ye+JZbk7zyMOSM +NAffNxw/f1IyjY6ViJUtc0CTrG9OHtn8oB8GTDVTZ4Jb92Q1XRHOyKg5L6JikPIgsSJNM0AnuyeT jq+UY7DJz+RQT+wO0jRAzux3v+FeX1rS0E1p1VziEf6RGAlxe91Y0b4wUlMYfJk32v93PAiSJzuwI e9FpAPqmmV42wHdIm3+SOvoW/g/FXIR8exsmZGzDw98hazkxfkHmtOxVK0XYKcI5xecrwSXq88Ar5 MhcJQVtLvanpMev1TbQg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eK7V2-0003Zg-2E; Wed, 29 Nov 2017 18:54:24 +0000 Received: from p3plsmtpa06-03.prod.phx3.secureserver.net ([173.201.192.104]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1eK7Uc-0003Y0-Ha for lede-dev@lists.infradead.org; Wed, 29 Nov 2017 18:54:01 +0000 Received: from [172.22.47.53] ([108.196.201.22]) by :SMTPAUTH: with SMTP id K7UEe7jE34490K7UEeHKaG; Wed, 29 Nov 2017 11:53:35 -0700 To: lede-dev@lists.infradead.org From: Bill Moffitt Message-ID: Date: Wed, 29 Nov 2017 10:53:34 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Language: en-US X-CMAE-Envelope: MS4wfKqqhhGYv3DwUJdZycblfgZdR8GjZXFfGkIavOUcChJ/lm3lWFYQyB6uWBvdV8N6IkiqrNCJIMKfxJqPot17DorXMVDH9fecGlgqB7oPtiq9ylcmplrE oV220N3lsN8H49+G5WPwjySF670sFHMkzcL4+wUZtvQPiaErrmNLsMR9ZU+GjLg/knKr2AjXQQNq0Q== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171129_105358_669080_3DCB735C X-CRM114-Status: GOOD ( 12.18 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [173.201.192.104 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [173.201.192.104 listed in wl.mailspike.net] 0.0 T_SPF_PERMERROR SPF: test of record failed (permerror) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders Subject: [LEDE-DEV] Add support for Comfast E312A X-BeenThere: lede-dev@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Lede-dev" Errors-To: lede-dev-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org This unit is the 5 GHz cousin to the E314N - a 5 GHz. 2x2 radio with built-in directional antenna. Very similar to a Ubiquiti NanoStation M5. This version of the patch seems to have everything working. I need some help generating a pull request (I'm a git newbie) - I have followed the directions here: https://lede-project.org/submitting-patches, but, when I get to the step "git push --all" I get the response, "fatal: unable to access 'https://git.lede-project.org/source.git/': The requested URL returned error: 403" and I can't seem to get past that. Thanks!    BOARDNAME := CF-E316N-V2 diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index e101d55..1c506d0 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -182,6 +182,11 @@ carambola2)      ucidef_set_led_netdev "wan" "WAN" "$board:orange:eth1" "eth1"      ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan" "phy0tpt"      ;; +cf-e312a) +    ucidef_set_led_netdev "lan" "LAN" "$board:white:lan" "eth0" +    ucidef_set_led_netdev "wan" "WAN" "$board:white:wan" "eth1" +    ucidef_set_led_wlan "wlan" "WLAN" "$board:white:wlan" "phy0tpt" +    ;;  cf-e316n-v2)      ucidef_set_led_netdev "lan" "LAN" "$board:blue:lan" "eth0"      ucidef_set_led_netdev "wan" "WAN" "$board:blue:wan" "eth1" diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 5ef620b..6274841 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -118,6 +118,7 @@ get_status_led() {      cap4200ag)          status_led="senao:green:pwr"          ;; +    cf-e312a|\      cf-e316n-v2|\      cf-e520n|\      cf-e530n) diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 9903563..98ed277 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -504,6 +504,9 @@ ar71xx_board_detect() {      *"Carambola2"*)          name="carambola2"          ;; +    *"CF-E312A") +        name="cf-e312a" +        ;;      *"CF-E316N v2")          name="cf-e316n-v2"          ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 18e5e41..1b13230 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -215,6 +215,7 @@ platform_check_image() {      bullet-m|\      c-55|\      carambola2|\ +    cf-e312a|\      cf-e316n-v2|\      cf-e320n-v2|\      cf-e355ac|\ diff --git a/target/linux/ar71xx/config-4.4 b/target/linux/ar71xx/config-4.4 index 4793bf4..e86837f 100644 --- a/target/linux/ar71xx/config-4.4 +++ b/target/linux/ar71xx/config-4.4 @@ -67,6 +67,7 @@ CONFIG_ATH79_MACH_C55=y  CONFIG_ATH79_MACH_CAP324=y  CONFIG_ATH79_MACH_CAP4200AG=y  CONFIG_ATH79_MACH_CARAMBOLA2=y +CONFIG_ATH79_MACH_CF_E312A=y  CONFIG_ATH79_MACH_CF_E316N_V2=y  CONFIG_ATH79_MACH_CF_E320N_V2=y  CONFIG_ATH79_MACH_CF_E355AC=y diff --git a/target/linux/ar71xx/config-4.9 b/target/linux/ar71xx/config-4.9 index 84b2a0b..231e78e 100644 --- a/target/linux/ar71xx/config-4.9 +++ b/target/linux/ar71xx/config-4.9 @@ -65,6 +65,7 @@ CONFIG_ATH79_MACH_C55=y  CONFIG_ATH79_MACH_CAP324=y  CONFIG_ATH79_MACH_CAP4200AG=y  CONFIG_ATH79_MACH_CARAMBOLA2=y +CONFIG_ATH79_MACH_CF_E312A=y  CONFIG_ATH79_MACH_CF_E316N_V2=y  CONFIG_ATH79_MACH_CF_E320N_V2=y  CONFIG_ATH79_MACH_CF_E355AC=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index 5cb4f7e..e0484f2 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -2021,6 +2021,16 @@ config ATH79_MACH_RAMBUTAN      select ATH79_DEV_USB      select ATH79_DEV_WMAC +config ATH79_MACH_CF_E312A +    bool "COMFAST CF-E312A support" +    select SOC_AR934X +    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_CF_E316N_V2      bool "COMFAST CF-E316N v2 support"      select SOC_AR934X diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Makefile b/target/linux/ar71xx/files/arch/mips/ath79/Makefile index 7d12282..3cf8e69 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Makefile +++ b/target/linux/ar71xx/files/arch/mips/ath79/Makefile @@ -74,6 +74,7 @@ obj-$(CONFIG_ATH79_MACH_C60)            += mach-c60.o  obj-$(CONFIG_ATH79_MACH_CAP324)            += mach-cap324.o  obj-$(CONFIG_ATH79_MACH_CAP4200AG)        += mach-cap4200ag.o  obj-$(CONFIG_ATH79_MACH_CARAMBOLA2)        += mach-carambola2.o +obj-$(CONFIG_ATH79_MACH_CF_E312A)        += mach-cf-e316n-v2.o  obj-$(CONFIG_ATH79_MACH_CF_E316N_V2)        += mach-cf-e316n-v2.o  obj-$(CONFIG_ATH79_MACH_CF_E320N_V2)        += mach-cf-e316n-v2.o  obj-$(CONFIG_ATH79_MACH_CF_E355AC)        += mach-cf-e316n-v2.o diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-cf-e316n-v2.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-cf-e316n-v2.c index 82fe83f..554f2b0 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-cf-e316n-v2.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-cf-e316n-v2.c @@ -1,5 +1,6 @@  /*   *  Support for COMFAST boards: + *  - CF-E312A (AR9341)   *  - CF-E316N v2 (AR9341)   *  - CF-E320N v2 (QCA9531)   *  - CF-E355AC (QCA9531) @@ -36,6 +37,80 @@  #define CF_EXXXN_KEYS_POLL_INTERVAL    20  #define CF_EXXXN_KEYS_DEBOUNCE_INTERVAL    (3 * CF_EXXXN_KEYS_POLL_INTERVAL) +/* CF-E312A */ +#define CF_E312A_GPIO_LED_LAN           2 +#define CF_E312A_GPIO_LED_WAN           3 +#define CF_E312A_GPIO_LED_WLAN          0 +#define CF_E312A_GPIO_LED_SIGNAL1       14 +#define CF_E312A_GPIO_LED_SIGNAL2       15 +#define CF_E312A_GPIO_LED_SIGNAL3       16 +#define CF_E312A_GPIO_LED_SIGNAL4       17 +#define CF_E312A_GPIO_BTN_SUITE         11 +#define CF_E312A_GPIO_BTN_RESET         22 +#define CF_E312A_GPIO_SDA               1 +#define CF_E312A_GPIO_SCL               12 + +#define CF_E312A_GPIO_XWDT_TRIGGER      19 + +static struct gpio_led cf_e312a_leds_gpio[] __initdata = { +    { +        .name        = "cf-e312a:white:lan", +        .gpio        = CF_E312A_GPIO_LED_LAN, +        .active_low    = 0, +    }, { +        .name        = "cf-e312a:white:wan", +        .gpio        = CF_E312A_GPIO_LED_WAN, +        .active_low    = 0, +    }, { +        .name        = "cf-e312a:white:wlan", +        .gpio        = CF_E312A_GPIO_LED_WLAN, +        .active_low    = 1, +    }, { +        .name        = "cf-e312a:white:signal1", +        .gpio        = CF_E312A_GPIO_LED_SIGNAL1, +        .active_low    = 1, +    }, { +        .name        = "cf-e312a:white:signal2", +        .gpio        = CF_E312A_GPIO_LED_SIGNAL2, +        .active_low    = 1, +    }, { +        .name        = "cf-e312a:white:signal3", +        .gpio        = CF_E312A_GPIO_LED_SIGNAL3, +        .active_low    = 1, +    }, { +        .name        = "cf-e312a:white:signal4", +        .gpio        = CF_E312A_GPIO_LED_SIGNAL4, +        .active_low    = 1, + +    }, { +        .name        = "cf-e312a:sda", +        .gpio        = CF_E312A_GPIO_SDA, +        .active_low    = 0, +    }, { +        .name        = "cf-e312a:scl", +        .gpio        = CF_E312A_GPIO_SCL, +        .active_low    = 0, +    }, +}; + +static struct gpio_keys_button cf_e312a_gpio_keys[] __initdata = { +    { +        .desc        = "reset", +        .type        = EV_KEY, +        .code        = KEY_RESTART, +        .debounce_interval = CF_EXXXN_KEYS_DEBOUNCE_INTERVAL, +        .gpio        = CF_E312A_GPIO_BTN_RESET, +        .active_low    = 0, +    }, { +        .desc        = "suite button", +        .type        = EV_KEY, +        .code        = KEY_POWER, +        .debounce_interval = CF_EXXXN_KEYS_DEBOUNCE_INTERVAL, +        .gpio        = CF_E312A_GPIO_BTN_SUITE, +        .active_low    = 1, +    }, +}; +  /* CF-E316N v2 */  #define CF_E316N_V2_GPIO_LED_DIAG_B    0  #define CF_E316N_V2_GPIO_LED_DIAG_R    2 @@ -290,6 +365,41 @@ static void __init cf_exxxn_common_setup(unsigned long art_ofs, int gpio_wdt)      ath79_register_usb();  } +static void __init cf_e312a_setup(void) +{ +    u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); + +    cf_exxxn_common_setup(0x10000, CF_E312A_GPIO_XWDT_TRIGGER); + +    ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP); + +    ath79_register_mdio(1, 0x0); + +    /* GMAC0 is connected to the PHY0 of the internal switch */ +    ath79_switch_data.phy4_mii_en = 1; +    ath79_switch_data.phy_poll_mask = BIT(0); +    ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; +    ath79_eth0_data.phy_mask = BIT(0); +    ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; +    ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); +    ath79_register_eth(0); + +    /* GMAC1 is connected to the internal switch */ +    ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; +    ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2); +    ath79_register_eth(1); + +    ath79_register_leds_gpio(-1, ARRAY_SIZE(cf_e312a_leds_gpio), +                 cf_e312a_leds_gpio); + +    ath79_register_gpio_keys_polled(1, CF_EXXXN_KEYS_POLL_INTERVAL, +                    ARRAY_SIZE(cf_e312a_gpio_keys), +                    cf_e312a_gpio_keys); +} + +MIPS_MACHINE(ATH79_MACH_CF_E312A, "CF-E312A", "COMFAST CF-E312A", +         cf_e312a_setup); +  static void __init cf_e316n_v2_setup(void)  {      u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); @@ -524,4 +634,4 @@ static void __init cf_e530n_setup(void)  }  MIPS_MACHINE(ATH79_MACH_CF_E530N, "CF-E530N", "COMFAST CF-E530N", -         cf_e530n_setup); +        cf_e530n_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 01472b6..949c5fd 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -60,6 +60,7 @@ enum ath79_mach_type {      ATH79_MACH_CAP324,            /* PowerCloud CAP324 */      ATH79_MACH_CAP4200AG,            /* Senao CAP4200AG */      ATH79_MACH_CARAMBOLA2,            /* 8devices Carambola2 */ +    ATH79_MACH_CF_E312A,            /* COMFAST CF-E312A */      ATH79_MACH_CF_E316N_V2,            /* COMFAST CF-E316N v2 */      ATH79_MACH_CF_E320N_V2,            /* COMFAST CF-E320N v2 */      ATH79_MACH_CF_E355AC,            /* COMFAST CF-E355AC */ diff --git a/target/linux/ar71xx/image/generic.mk b/target/linux/ar71xx/image/generic.mk index 3c5fcc3..134360a 100644 --- a/target/linux/ar71xx/image/generic.mk +++ b/target/linux/ar71xx/image/generic.mk @@ -135,6 +135,14 @@ define Device/carambola2  endef  TARGET_DEVICES += carambola2 +define Device/cf-e312a +  DEVICE_TITLE := COMFAST CF-E312A +  BOARDNAME := CF-E312A +  IMAGE_SIZE := 16192k +  MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro +endef +TARGET_DEVICES += cf-e312a +  define Device/cf-e316n-v2    DEVICE_TITLE := COMFAST CF-E316N v2