SOC:    Qualcomm QCA9556 (Scorpion) 560MHz MIPS74Kc
RAM:    64MB Zentel A3R12E40CBF DDR2
FLASH:  16MiB Winbond W25Q128 SPI NOR
WLAN1:  QCA9556 2.4 GHz 802.11b/g/n 3x3
INPUT:  WPS button
LED:    Power, WiFi, LAN, RSSI indicator
Serial: Header Next to Black metal shield
        Pinout is 3.3V - RX - TX - GND (Square Pad is 3.3V)
        The Serial setting is 115200-8-N-1.

Installation via EVA:
In the first seconds after Power is connected, the bootloader will
listen for FTP connections on 192.168.178.1. Firmware can be uploaded
like following:

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

Note that this procedure might take up to two minutes.
You need to powercycle the device afterwards to boot OpenWRT.

Tested-by: Andreas Ziegler <d...@andreas-ziegler.de>
Signed-off-by: David Bauer <m...@david-bauer.net>
---
 .../ath79/dts/qca9556_avm_fritz-repeater.dtsi | 93 +++++++++++++++++++
 .../ath79/dts/qca9556_avm_fritz1750e.dts      | 89 +-----------------
 .../linux/ath79/dts/qca9556_avm_fritz450e.dts | 76 +++++++++++++++
 .../generic/base-files/etc/board.d/01_leds    |  3 +-
 .../generic/base-files/etc/board.d/02_network |  3 +-
 .../etc/hotplug.d/firmware/10-ath9k-eeprom    |  3 +-
 .../base-files/lib/preinit/10_fix_eth_mac.sh  |  3 +-
 target/linux/ath79/image/generic.mk           |  9 ++
 8 files changed, 189 insertions(+), 90 deletions(-)
 create mode 100644 target/linux/ath79/dts/qca9556_avm_fritz-repeater.dtsi
 create mode 100644 target/linux/ath79/dts/qca9556_avm_fritz450e.dts

diff --git a/target/linux/ath79/dts/qca9556_avm_fritz-repeater.dtsi 
b/target/linux/ath79/dts/qca9556_avm_fritz-repeater.dtsi
new file mode 100644
index 0000000000..b1f5f1bdb3
--- /dev/null
+++ b/target/linux/ath79/dts/qca9556_avm_fritz-repeater.dtsi
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca9557.dtsi"
+
+/ {
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               wps {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&uart {
+       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 = "urlader";
+                               reg = <0x0 0x20000>;
+                               read-only;
+                       };
+
+                       partition@20000 {
+                               compatible = "avm,eva-firmware";
+                               label = "firmware";
+                               reg = <0x20000 0xee0000>;
+                       };
+
+                       partition@f00000 {
+                               label = "tffs (1)";
+                               reg = <0xf00000 0x80000>;
+                               read-only;
+                       };
+
+                       partition@f80000 {
+                               label = "tffs (2)";
+                               reg = <0xf80000 0x80000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&wmac {
+       status = "okay";
+       qca,no-eeprom;
+};
+
+&eth1 {
+       status = "okay";
+
+       phy-handle = <&phy0>;
+       pll-data = <0x3000000 0x101 0x1313>;
+
+       gmac-config {
+               device = <&gmac>;
+               ge0-sgmii = <0>;
+       };
+};
+
+&mdio1 {
+       status = "okay";
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
diff --git a/target/linux/ath79/dts/qca9556_avm_fritz1750e.dts 
b/target/linux/ath79/dts/qca9556_avm_fritz1750e.dts
index f50af5b228..25d3ae8da4 100644
--- a/target/linux/ath79/dts/qca9556_avm_fritz1750e.dts
+++ b/target/linux/ath79/dts/qca9556_avm_fritz1750e.dts
@@ -1,19 +1,13 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-/dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
 
-#include "qca9557.dtsi"
+#include "qca9556_avm_fritz-repeater.dtsi"
 
 / {
        compatible = "avm,fritz1750e", "qca,qca9557";
        model = "AVM FRITZ!WLAN Repeater 1750E";
 
-       chosen {
-               bootargs = "console=ttyS0,115200n8";
-       };
-
        aliases {
                led-boot = &led_power;
                led-failsafe = &led_power;
@@ -91,65 +85,14 @@
                        gpios = <&spi_gpio 4 GPIO_ACTIVE_HIGH>;
                };
        };
-
-       keys {
-               compatible = "gpio-keys";
-
-               wps {
-                       label = "wps";
-                       linux,code = <KEY_WPS_BUTTON>;
-                       gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
-               };
-       };
 };
 
 &pcie0 {
        status = "okay";
 };
 
-&uart {
-       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 = "urlader";
-                               reg = <0x0 0x20000>;
-                               read-only;
-                       };
-
-                       partition@20000 {
-                               compatible = "avm,eva-firmware";
-                               label = "firmware";
-                               reg = <0x20000 0xee0000>;
-                       };
-
-                       partition@f00000 {
-                               label = "tffs (1)";
-                               reg = <0xf00000 0x80000>;
-                               read-only;
-                       };
-
-                       partition@f80000 {
-                               label = "tffs (2)";
-                               reg = <0xf80000 0x80000>;
-                               read-only;
-                       };
-               };
-       };
+&phy0 {
+       reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
 };
 
 &gpio {
@@ -167,29 +110,3 @@
                line-name = "PCIE Bus reset";
        };
 };
-
-&wmac {
-       status = "okay";
-       qca,no-eeprom;
-};
-
-&eth1 {
-       status = "okay";
-
-       phy-handle = <&phy0>;
-       pll-data = <0x3000000 0x101 0x1313>;
-
-       gmac-config {
-               device = <&gmac>;
-               ge0-sgmii = <0>;
-       };
-};
-
-&mdio1 {
-       status = "okay";
-
-       phy0: ethernet-phy@0 {
-               reg = <0>;
-               reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
-       };
-};
diff --git a/target/linux/ath79/dts/qca9556_avm_fritz450e.dts 
b/target/linux/ath79/dts/qca9556_avm_fritz450e.dts
new file mode 100644
index 0000000000..60685bd3f1
--- /dev/null
+++ b/target/linux/ath79/dts/qca9556_avm_fritz450e.dts
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/gpio/gpio.h>
+
+#include "qca9556_avm_fritz-repeater.dtsi"
+
+/ {
+       compatible = "avm,fritz450e", "qca,qca9557";
+       model = "AVM FRITZ!WLAN Repeater 450E";
+
+       aliases {
+               led-boot = &led_power;
+               led-failsafe = &led_power;
+               led-running = &led_power;
+               led-upgrade = &led_power;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_power: power {
+                       label = "fritz450e:green:power";
+                       gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+               };
+
+               wlan {
+                       label = "fritz450e:green:wlan";
+                       gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               lan {
+                       label = "fritz450e:green:lan";
+                       gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi2 {
+                       label = "fritz450e:green:rssi2";
+                       gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi3 {
+                       label = "fritz450e:green:rssi3";
+                       gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+               };
+
+               rssi4 {
+                       label = "fritz450e:green:rssi4";
+                       gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gpio {
+       /*
+        * Wondered why rssi0 and rssi1 are missing?
+        *
+        * AVM seems to have run low on usable GPIO pins, so
+        * instead of adding a shift register like they did for
+        * the 1750E they figured out "Why not use the LEDs on
+        * the AR8033?".
+        *
+        * EVA configures the PHY in a way it does not display
+        * the link-state using it's LEDs. When we reset the PHY
+        * using the reset-mechanism of the PHY subsystem, this
+        * setting is cleared.
+        *
+        * We avoid this by keeping the reset line high.
+        */
+       phy-reset {
+               gpio-hog;
+               gpios = <11 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "phy-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 b57f4cdd8e..ca4bb3dd33 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
@@ -12,7 +12,8 @@ case "$board" in
        ucidef_set_led_netdev "lan" "LAN" "$boardname:orange:eth0" "eth0"
        ucidef_set_led_switch "wan" "WAN" "$boardname:orange:eth1" "switch0" 
"0x04"
        ;;
-alfa-network,ap121f)
+alfa-network,ap121f|\
+avm,fritz450e)
        ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
        ;;
 avm,fritz1750e)
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 96800d771f..543543ad54 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
@@ -338,7 +338,8 @@ ath79_setup_macs()
        alfa-network,ap121f)
                label_mac=$(mtd_get_mac_binary art 0x1002)
                ;;
-       avm,fritz1750e)
+       avm,fritz1750e|\
+       avm,fritz450e)
                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 782e003911..428b502d81 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
@@ -10,7 +10,8 @@ case "$FIRMWARE" in
 "ath9k-eeprom-ahb-18100000.wmac.bin")
        case $board in
        avm,fritz1750e|\
-       avm,fritz4020)
+       avm,fritz4020|\
+       avm,fritz450e)
                caldata_extract_reverse "urlader" 0x1541 0x440
                ;;
        dlink,dir-505|\
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 371efd6a83..b3c3de298e 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
@@ -4,7 +4,8 @@
 
 preinit_set_mac_address() {
        case $(board_name) in
-       avm,fritz1750e)
+       avm,fritz1750e|\
+       avm,fritz450e)
                ip link set dev eth0 address $(fritz_tffs -n maca -i 
$(find_mtd_part "tffs (1)"))
                ;;
        siemens,ws-ap3610)
diff --git a/target/linux/ath79/image/generic.mk 
b/target/linux/ath79/image/generic.mk
index 3acbeb2859..b449832ad2 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -201,6 +201,15 @@ define Device/avm_fritz4020
 endef
 TARGET_DEVICES += avm_fritz4020
 
+define Device/avm_fritz450e
+  $(Device/avm)
+  SOC := qca9556
+  IMAGE_SIZE := 15232k
+  DEVICE_MODEL := FRITZ!WLAN Repeater 450E
+  SUPPORTED_DEVICES += fritz450e
+endef
+TARGET_DEVICES += avm_fritz450e
+
 define Device/buffalo_bhr-4grv
   SOC := ar7242
   DEVICE_VENDOR := Buffalo
-- 
2.26.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to