[openwrt/openwrt] ath79: add support for AVM FRITZ!WLAN Repeater DVB-C
LEDE Commits
lede-commits at lists.infradead.org
Wed Jun 24 20:37:48 EDT 2020
blocktrron pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/8ff631feff50e901f75d9cdae4c475050d6fc4a7
commit 8ff631feff50e901f75d9cdae4c475050d6fc4a7
Author: Natalie Kagelmacher <nataliek at pm.me>
AuthorDate: Thu May 14 10:44:21 2020 +0200
ath79: add support for AVM FRITZ!WLAN Repeater DVB-C
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 at pm.me>
[fixed sorting - removed change to other board -
prettified commit message]
Signed-off-by: David Bauer <mail at david-bauer.net>
---
target/linux/ath79/dts/qca9556_avm_fritzdvbc.dts | 111 +++++++++++++++++++++
.../ath79/generic/base-files/etc/board.d/01_leds | 8 ++
.../generic/base-files/etc/board.d/02_network | 4 +-
.../etc/hotplug.d/firmware/10-ath9k-eeprom | 3 +-
.../etc/hotplug.d/firmware/11-ath10k-caldata | 3 +-
.../base-files/lib/preinit/10_fix_eth_mac.sh | 3 +-
target/linux/ath79/image/generic.mk | 10 ++
7 files changed, 138 insertions(+), 4 deletions(-)
diff --git a/target/linux/ath79/dts/qca9556_avm_fritzdvbc.dts b/target/linux/ath79/dts/qca9556_avm_fritzdvbc.dts
new file mode 100644
index 0000000000..28b19f92ef
--- /dev/null
+++ b/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 at 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";
+ };
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index be0c3b1217..398c9ed495 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -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"
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index 02245031fa..4b74565aa3 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -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|\
@@ -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)
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 56d083b4bf..3db4d2a994 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -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)
diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 603557d6c2..9d4306e66b 100644
--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -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|\
diff --git a/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh b/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh
index 61577a376b..c5d9cd536f 100644
--- a/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh
+++ b/target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh
@@ -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)
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index e92dbc99d6..9f296adaa7 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -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
More information about the lede-commits
mailing list