From 1724d4e9ed7716a5444eca42adf045c2f3afc554 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Thu, 27 Dec 2018 02:32:38 +0100 Subject: [PATCH] ath79: add support for devolo WiFi pro 1200e 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 --- .../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 5e1df97a87..b2c7762bb5 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 da39fd7195..deaac72174 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..9937186b1e --- /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: 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 -- 2.30.2