Skip to content

Commit

Permalink
ath79: add support for AVM FRITZ!WLAN Repeater DVB-C
Browse files Browse the repository at this point in the history
This commit adds support for the AVM FRITZ!WLAN Repeater DVB-C

SOC:   Qualcomm Atheros QCA9556
RAM:   64 MiB
FLASH: 16 MB SPI-NOR
WLAN:  QCA9556 3T3R 2.4 GHZ b/g/n and
       QCA9880 3T3R 5 GHz n/ac
ETH:   Atheros AR8033 1000 Base-T
DVB-C: EM28174 with MaxLinear MXL251 tuner
BTN:   WPS Button
LED:   Power, WLAN, TV, RSSI0-4

Tested and working:
 - Ethernet (correct MAC, gigabit, iperf3 about 200 Mbit/s)
 - 2.4 GHz Wi-Fi (correct MAC)
 - 5 GHz Wi-Fi (correct MAC)
 - WPS Button (tested using wifitoggle)
 - LEDs
 - Installation via EVA bootloader (FTP recovery)
 - OpenWrt sysupgrade (both CLI and LuCI)
 - Download of "urlader" (mtd0)

Not working:
 - Internal USB
 - DVB-C em28174+MxL251 (depends on internal USB)

Installation via EVA bootloader (FTP recovery):
Set NIC to 192.168.178.3/24 gateway 192.168.178.1 and power on the device,
connect to 192.168.178.1 through FTP and sign in with adam2/adam2:

ftp> quote USER adam2
ftp> quote PASS adam2
ftp> binary
ftp> debug
ftp> passive
ftp> quote MEDIA FLSH
ftp> put openwrt-sysupgrade.bin mtd1

Wait for "Transfer complete" together with the transfer details.
Wait two minutes to make sure flash is complete (just to be safe).

Then restart the device (power off and on) to boot into OpenWrt.
Revert your NIC settings to reach OpenWrt at 192.168.1.1

Signed-off-by: Natalie Kagelmacher <nataliek@pm.me>
[fixed sorting - removed change to other board -
prettified commit message]
Signed-off-by: David Bauer <mail@david-bauer.net>
  • Loading branch information
sindastra authored and blocktrron committed Jun 25, 2020
1 parent 751e6ab commit 8ff631f
Show file tree
Hide file tree
Showing 7 changed files with 138 additions and 4 deletions.
111 changes: 111 additions & 0 deletions target/linux/ath79/dts/qca9556_avm_fritzdvbc.dts
@@ -0,0 +1,111 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

#include "qca9556_avm_fritz-repeater.dtsi"

/ {
compatible = "avm,fritzdvbc", "qca,qca9556";
model = "AVM FRITZ!WLAN Repeater DVB-C";

aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};

led_spi {
compatible = "spi-gpio";
#address-cells = <1>;
#size-cells = <0>;

sck-gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
mosi-gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
num-chipselects = <0>;

spi_gpio: led_gpio@0 {
compatible = "fairchild,74hc595";
reg = <0>;
gpio-controller;
#gpio-cells = <2>;
registers-number = <2>;
spi-max-frequency = <10000000>;

gpio_latch_bit {
gpio-hog;
gpios = <16 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "gpio-latch-bit";
};
};
};

/*
* GPIO pins 100 or greater in the vendor GPL dump are redirected
* to the shift register.
* So OEM source pin 100 becomes 0 on the SR and so forth.
*/
leds {
compatible = "gpio-leds";

led_power: power {
label = "fritzdvbc:green:power";
gpios = <&spi_gpio 6 GPIO_ACTIVE_LOW>;
};

wlan {
label = "fritzdvbc:green:wlan";
gpios = <&spi_gpio 7 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};

tv {
label = "fritzdvbc:green:tv";
gpios = <&spi_gpio 5 GPIO_ACTIVE_LOW>;
};

rssihigh {
label = "fritzdvbc:green:rssihigh";
gpios = <&spi_gpio 1 GPIO_ACTIVE_LOW>;
};

rssimediumhigh {
label = "fritzdvbc:green:rssimediumhigh";
gpios = <&spi_gpio 2 GPIO_ACTIVE_LOW>;
};

rssimedium {
label = "fritzdvbc:green:rssimedium";
gpios = <&spi_gpio 3 GPIO_ACTIVE_LOW>;
};

rssimediumlow {
label = "fritzdvbc:green:rssimediumlow";
gpios = <&spi_gpio 4 GPIO_ACTIVE_LOW>;
};

rssilow {
label = "fritzdvbc:green:rssilow";
gpios = <&spi_gpio 0 GPIO_ACTIVE_LOW>;
};
};
};

&pcie0 {
status = "okay";
};

&gpio {
reset-pcie-ep {
gpio-hog;
gpios = <109 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PCIE EP reset";
};

reset-pcie-bus {
gpio-hog;
gpios = <110 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "PCIE Bus reset";
};
};
8 changes: 8 additions & 0 deletions target/linux/ath79/generic/base-files/etc/board.d/01_leds
Expand Up @@ -38,6 +38,14 @@ avm,fritz4020)
ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x1E"
;;
avm,fritzdvbc)
ucidef_set_rssimon "wlan1" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:green:rssilow" "wlan1" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:green:rssimediumlow" "wlan1" "20" "100"
ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$boardname:green:rssimedium" "wlan1" "40" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssimediumhigh" "wlan1" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssihigh" "wlan1" "80" "100"
;;
comfast,cf-e110n-v2)
ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1"
ucidef_set_led_switch "wan" "WAN" "$boardname:green:wan" "switch0" "0x02"
Expand Down
4 changes: 3 additions & 1 deletion target/linux/ath79/generic/base-files/etc/board.d/02_network
Expand Up @@ -15,6 +15,7 @@ ath79_setup_interfaces()
aruba,ap-105|\
avm,fritz1750e|\
avm,fritz300e|\
avm,fritzdvbc|\
comfast,cf-wr752ac-v1|\
comfast,cf-e130n-v2|\
devolo,dvl1200i|\
Expand Down Expand Up @@ -352,7 +353,8 @@ ath79_setup_macs()
label_mac=$(mtd_get_mac_binary art 0x1002)
;;
avm,fritz1750e|\
avm,fritz450e)
avm,fritz450e|\
avm,fritzdvbc)
label_mac=$(fritz_tffs -n macwlan -i $(find_mtd_part "tffs (1)"))
;;
avm,fritz300e)
Expand Down
Expand Up @@ -11,7 +11,8 @@ case "$FIRMWARE" in
case $board in
avm,fritz1750e|\
avm,fritz4020|\
avm,fritz450e)
avm,fritz450e|\
avm,fritzdvbc)
caldata_extract_reverse "urlader" 0x1541 0x440
;;
dlink,dap-2695-a1)
Expand Down
Expand Up @@ -10,7 +10,8 @@ board=$(board_name)
case "$FIRMWARE" in
"ath10k/cal-pci-0000:00:00.0.bin")
case $board in
avm,fritz1750e)
avm,fritz1750e|\
avm,fritzdvbc)
caldata_extract "urlader" 0x198a 0x844
;;
comfast,cf-wr650ac-v1|\
Expand Down
Expand Up @@ -3,7 +3,8 @@
preinit_set_mac_address() {
case $(board_name) in
avm,fritz1750e|\
avm,fritz450e)
avm,fritz450e|\
avm,fritzdvbc)
ip link set dev eth0 address $(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
;;
dlink,dap-2695-a1)
Expand Down
10 changes: 10 additions & 0 deletions target/linux/ath79/image/generic.mk
Expand Up @@ -223,6 +223,16 @@ define Device/avm_fritz450e
endef
TARGET_DEVICES += avm_fritz450e

define Device/avm_fritzdvbc
$(Device/avm)
SOC := qca9556
IMAGE_SIZE := 15232k
DEVICE_MODEL := FRITZ!WLAN Repeater DVB-C
DEVICE_PACKAGES += rssileds kmod-ath10k-ct-smallbuffers \
ath10k-firmware-qca988x-ct -swconfig
endef
TARGET_DEVICES += avm_fritzdvbc

define Device/buffalo_bhr-4grv
SOC := ar7242
DEVICE_VENDOR := Buffalo
Expand Down

0 comments on commit 8ff631f

Please sign in to comment.