aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ath79/dts/qca9556_avm_fritzdvbc.dts111
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/01_leds8
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/02_network4
-rw-r--r--target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom3
-rw-r--r--target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata3
-rw-r--r--target/linux/ath79/generic/base-files/lib/preinit/10_fix_eth_mac.sh3
-rw-r--r--target/linux/ath79/image/generic.mk10
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@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