From patchwork Thu Dec 27 01:32:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Bauer X-Patchwork-Id: 1018771 X-Patchwork-Delegate: chunkeey@googlemail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=david-bauer.net Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Vl3wPweh"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::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 43QC5s6xFHz9s3Z for ; Thu, 27 Dec 2018 12:33:21 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:MIME-Version:Message-Id:Date:To :From: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=XqTRrm1EuMUsthcYoew7Pr7F1brvE2fTxY4a/S/zPfo=; b=Vl3wPwehL0mbz8 Bo7gT/mhwXUJrxSEd45CZln1Va8oAztS6S9yPfcCB8pleGeDB++yMMELqkioBzqDpMLj+xqMa4dPx UDAEotPx1J+D1ouAU03isjrn9jEIiIm/QiRsVuqTkRUA8gXDp0neGCNBcQwRpooybCf384CqB+ACu gSaY1fBjaU5ms8hT58TMKZnn3Npf+4b2UP3gwnpENw4smld+O/ylnF4i3YiP9polEFAHh+797R/6R XJ2AuRzu0AIkY9EbyK+HcBzEMuRsnSbSe13VC6dZ4vqsCy/u6QOSrqKANZJlxqIpeey37VEypZ2MK ME2seVWH1dKW527V9SrQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gcKXv-0006dT-Hh; Thu, 27 Dec 2018 01:33:11 +0000 Received: from mars.blocktrron.ovh ([51.254.112.43] helo=mail.blocktrron.ovh) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gcKXo-0006c9-UL for openwrt-devel@lists.openwrt.org; Thu, 27 Dec 2018 01:33:09 +0000 Received: from localhost.localdomain (p20030071CF098900BF9AA02699FFB4A2.dip0.t-ipconnect.de [IPv6:2003:71:cf09:8900:bf9a:a026:99ff:b4a2]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.blocktrron.ovh (Postfix) with ESMTPSA id 9A14F1E24C for ; Thu, 27 Dec 2018 02:32:46 +0100 (CET) From: David Bauer To: openwrt-devel@lists.openwrt.org Date: Thu, 27 Dec 2018 02:32:38 +0100 Message-Id: <20181227013239.9229-1-mail@david-bauer.net> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181226_173305_275810_7379E35D X-CRM114-Status: GOOD ( 15.25 ) X-Spam-Score: -0.0 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record Subject: [OpenWrt-Devel] [PATCH v4 1/2] ath79: add support for devolo WiFi pro 1200e X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Hardware -------- CPU: Qualcomm Atheros QCA9558 RAM: 128M DDR2 FLASH: 16MiB ETH: 1x Atheros AR8035 (PoE in) 1x Atheros AR8033 WiFi2: QCA9558 2T2R WiFi5: QCA9880 2T2R BTN: 1x Reset LED: 1x LED blue 1x LED red BEEP: 1x GPIO attached piezo beeper UART: 3.3V GND TX RX (115200-N-8) (3.3V is square pad) Header is located next to reset-button Installation ------------ Make sure you set a password for the root user as prompted on first setup! 1. Upload OpenWRT sysupgrade image via SSH to the device. Use /tmp as the destination folder on the device. User is root, password the one set in the web interface. 2. Install OpenWRT with > sysupgrade -n -F /tmp/ Signed-off-by: David Bauer --- v2: - fixed whitespace issues - activate CONFIG_GPIO_WATCHDOG_ARCH_INITCALL kernel config symbol v3: - refactored LED DT-nodes - fixed GMAC config for dvl1200e - add patch for dvl1750c v4: - use ath10kcal_patch_mac_crc instead of ath10kcal_patch_mac - reduce line-length of dvl1200e dtsi - fix misspelled commit message - remove unnecessary DT-properties .../ath79/base-files/etc/board.d/02_network | 3 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 4 + .../ath79/dts/qca9558_devolo_dvl1200e.dts | 47 ++++++ .../ath79/dts/qca9558_devolo_dvl1xxx.dtsi | 149 ++++++++++++++++++ target/linux/ath79/generic/config-default | 3 + target/linux/ath79/image/generic.mk | 8 + 6 files changed, 214 insertions(+) create mode 100644 target/linux/ath79/dts/qca9558_devolo_dvl1200e.dts create mode 100644 target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network index 35eff1c8f8..5d6a1eefcd 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -58,6 +58,9 @@ ath79_setup_interfaces() ucidef_add_switch "switch0" \ "0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan" ;; + devolo,dvl1200e) + ucidef_set_interface_lan "eth0 eth1" + ;; dlink,dir-825-b1) ucidef_set_interface_wan "eth1" ucidef_add_switch "switch0" \ diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index fbe70b8b5c..e38e2a1933 100644 --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -87,6 +87,10 @@ board=$(board_name) case "$FIRMWARE" in "ath10k/cal-pci-0000:00:00.0.bin") case $board in + devolo,dvl1200e) + ath10kcal_extract "art" 20480 2116 + ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary art 0) -1) + ;; glinet,gl-x750) ath10kcal_extract "art" 20480 2116 ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1) diff --git a/target/linux/ath79/dts/qca9558_devolo_dvl1200e.dts b/target/linux/ath79/dts/qca9558_devolo_dvl1200e.dts new file mode 100644 index 0000000000..3bca23cc57 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_devolo_dvl1200e.dts @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include +#include + +#include "qca9558_devolo_dvl1xxx.dtsi" + +/ { + compatible = "devolo,dvl1200e", "qca,qca9557"; + model = "devolo WiFi pro 1200e"; + + aliases { + led-boot = &status_blue; + led-failsafe = &status_red; + led-running = &status_blue; + led-upgrade = &status_red; + }; + + leds { + compatible = "gpio-leds"; + + status_blue: status_blue { + label = "dvl1200e:blue:status"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + + status_red: status_red { + label = "dvl1200e:red:status"; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + }; + }; + + beeper { + compatible = "gpio-beeper"; + gpios = <&gpio 4 GPIO_ACTIVE_HIGH>; + }; +}; + +&mdio1 { + status = "okay"; +}; + +ð1 { + status = "okay"; +}; diff --git a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi new file mode 100644 index 0000000000..185b29bdbe --- /dev/null +++ b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi @@ -0,0 +1,149 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/* + * The hardware of this board family is most likely shared with other devices + * from other manufacturers. + * Devolo seems to use hardware from Edimax, namely the Edimax WAP1750. + * + * The base board is identical but the single models differ in number of + * buttons, ethernet ports, external console, USB, external / internal + * antennas and number of spatial streams. + */ + +/dts-v1/; + +#include +#include + +#include "qca9557.dtsi" + +/ { + chosen { + bootargs = "console=ttyS0,115200n8"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "Reset button"; + linux,code = ; + gpios = <&gpio 18 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + }; + }; + + watchdog { + compatible = "linux,wdt-gpio"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + hw_algo = "toggle"; + hw_margin_ms = <300>; + always-running; + }; +}; + +&pcie0 { + status = "okay"; +}; + +&uart { + status = "okay"; +}; + +&gpio { + status = "okay"; +}; + +&spi { + status = "okay"; + num-cs = <1>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <25000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x000000 0x040000>; + read-only; + }; + + partition@40000 { + label = "u-boot-env"; + reg = <0x040000 0x010000>; + read-only; + }; + + art: partition@50000 { + label = "art"; + reg = <0x050000 0x010000>; + read-only; + }; + + partition@60000 { + label = "art_bak"; + reg = <0x060000 0x010000>; + read-only; + }; + + partition@70000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x070000 0xf90000>; + }; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy4: ethernet-phy@4 { + reg = <4>; + at803x-disable-smarteee; + }; +}; + +ð0 { + status = "okay"; + + mtd-mac-address = <&art 0x00>; + phy-handle = <&phy4>; + pll-data = <0xae000000 0x80000101 0x80001313>; + + gmac-config { + device = <&gmac>; + + rxdv-delay = <3>; + rxd-delay = <3>; + txen-delay = <0>; + txd-delay = <0>; + rgmii-enabled = <1>; + }; +}; + +&mdio1 { + phy1: ethernet-phy@1 { + reg = <1>; + }; +}; + +ð1 { + mtd-mac-address = <&art 0x00>; + mtd-mac-address-increment = <1>; + phy-handle = <&phy1>; + pll-data = <0x03000101 0x00000101 0x00001313>; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&art 0x00>; + mtd-mac-address-increment = <(-2)>; +}; diff --git a/target/linux/ath79/generic/config-default b/target/linux/ath79/generic/config-default index b2194a4132..fddcb1d704 100644 --- a/target/linux/ath79/generic/config-default +++ b/target/linux/ath79/generic/config-default @@ -1,5 +1,7 @@ CONFIG_AT803X_PHY=y CONFIG_BLK_MQ_PCI=y +CONFIG_GPIO_WATCHDOG=y +CONFIG_GPIO_WATCHDOG_ARCH_INITCALL=y CONFIG_INTEL_XWAY_PHY=y CONFIG_IP17XX_PHY=y CONFIG_LEDS_RESET=y @@ -23,3 +25,4 @@ CONFIG_RTL8366RB_PHY=y CONFIG_RTL8366S_PHY=y CONFIG_RTL8366_SMI=y CONFIG_RTL8367_PHY=y +CONFIG_WATCHDOG_CORE=y diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index badfa7cbab..ef8cf170de 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -138,6 +138,14 @@ define Device/buffalo_wzr-hp-g450h endef TARGET_DEVICES += buffalo_wzr-hp-g450h +define Device/devolo_dvl1200e + ATH_SOC := qca9558 + DEVICE_TITLE := devolo WiFi pro 1200e + DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct + IMAGE_SIZE := 15936k +endef +TARGET_DEVICES += devolo_dvl1200e + define Device/dlink_dir-825-b1 ATH_SOC := ar7161 DEVICE_TITLE := D-LINK DIR-825 B1