ath79: add support to TrendNet TEW-673GRU
authorKorey Caro <korey.caro@gmail.com>
Sun, 13 Mar 2022 04:36:30 +0000 (23:36 -0500)
committerHauke Mehrtens <hauke@hauke-m.de>
Fri, 11 Nov 2022 19:56:38 +0000 (20:56 +0100)
Add support for the TrendNet TEW-673GRU to ath79.
This device was supported in 19.07.9 but was deprecated with ar71xx.
This is mostly a copy of D-Link DIR-825 B1.
Updates have been completed to enable factory.bin and sysupgrade.bin both.
Code improvements to DTS file and makefile.

Architecture   |  MIPS
Vendor         |  Qualcomm Atheros
bootloader     |  U-Boot
System-On-Chip |  AR7161 rev 2 (MIPS 24Kc V7.4)
CPU/Speed      |  24Kc V7.4 680 MHz
Flash-Chip     |  Macronix MX25L6405D
Flash size     |  8192 KiB
RAM Chip:      |  ProMOS V58C2256164SCI5 × 2
RAM size       |  64 MiB
Wireless       |  2 x Atheros AR922X 2.4GHz/5.0GHz 802.11abgn
Ethernet       |  RealTek RTL8366S Gigabit w/ port based vlan support
USB            |  Yes 2 x 2.0

Initial Flashing Process:
1) Download 22.03 tew-673gru factory bin
2) Flash 22.03 using TrendNet GUI

OpenWRT Upgrade Process
3) Download 22.03 tew-673gru sysupgrade.bin
4) Flash 22.03 using OpenWRT GUI

Signed-off-by: Korey Caro <korey.caro@gmail.com>
(cherry picked from commit 12cee869890853716ff1ee2dbd0a89c87a0ee544)

target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/image/generic.mk

diff --git a/target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts b/target/linux/ath79/dts/ar7161_trendnet_tew-673gru.dts
new file mode 100644 (file)
index 0000000..8657e29
--- /dev/null
@@ -0,0 +1,180 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar7100.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       compatible = "trendnet,tew-673gru", "qca,ar7161";
+       model = "TRENDNET TEW-673GRU";
+
+       aliases {
+               led-boot = &led_wps;
+               led-failsafe = &led_wps;
+               led-running = &led_wps;
+               led-upgrade = &led_wps;
+       };
+
+       extosc: ref {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-output-names = "ref";
+               clock-frequency = <40000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_wps: wps {
+                       label = "blue:wps";
+                       gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       rtl8366s {
+               compatible = "realtek,rtl8366s";
+               gpio-sda = <&gpio 5 GPIO_ACTIVE_HIGH>;
+               gpio-sck = <&gpio 7 GPIO_ACTIVE_HIGH>;
+               realtek,initvals = <0x06 0x0108>;
+
+               mdio-bus {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       phy4: ethernet-phy@4 {
+                               reg = <4>;
+                               phy-mode = "rgmii";
+                       };
+               };
+       };
+       
+       virtual_flash {
+               compatible = "mtd-concat";
+               devices = <&fwconcat0 &fwconcat1>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x0 0x0>;
+                       };
+               };
+       };
+};
+
+&usb1 {
+       status = "okay";
+};
+
+&usb2 {
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+
+       wifi@0,11 {
+               compatible = "pci168c,0029";
+               reg = <0x8800 0 0 0 0>;
+               qca,no-eeprom;
+       };
+
+       wifi@0,12 {
+               compatible = "pci168c,0029";
+               reg = <0x9000 0 0 0 0>;
+               qca,no-eeprom;
+       };
+};
+
+&pll {
+       clocks = <&extosc>;
+};
+
+&spi {
+       status = "okay";
+
+       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 = "config";
+                               reg = <0x040000 0x010000>;
+                               read-only;
+                       };
+
+                       fwconcat0: partition@50000 {
+                               label = "fwconcat0";
+                               reg = <0x050000 0x610000>;
+                       };
+
+                       partition@660000 {
+                               label = "caldata";
+                               reg = <0x660000 0x010000>;
+                               read-only;
+                       };
+
+                       fwconcat1: partition@670000 {
+                               label = "fwconcat1";
+                               reg = <0x670000 0x190000>;
+                       };
+               };
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       pll-data = <0x11110000 0x00001099 0x00991099>;
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       pll-data = <0x11110000 0x00001099 0x00991099>;
+
+       phy-handle = <&phy4>;
+};
index e5a490d51a5213bcf394b5b30c283c27230e8da3..8f9516b8c681fd09c37fb183a63c17cf84f94bfc 100644 (file)
@@ -179,7 +179,8 @@ ath79_setup_interfaces()
                ;;
        buffalo,wzr-hp-g300nh-rb|\
        buffalo,wzr-hp-g300nh-s|\
-       dlink,dir-825-b1)
+       dlink,dir-825-b1|\
+       trendnet,tew-673gru)
                ucidef_set_interface_wan "eth1"
                ucidef_add_switch "switch0" \
                        "0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
@@ -587,7 +588,8 @@ ath79_setup_macs()
        dlink,dap-3662-a1)
                label_mac=$(mtd_get_mac_ascii bdcfg "wlanmac")
                ;;
-       dlink,dir-825-b1)
+       dlink,dir-825-b1|\
+       trendnet,tew-673gru)
                lan_mac=$(mtd_get_mac_text "caldata" 0xffa0)
                wan_mac=$(mtd_get_mac_text "caldata" 0xffb4)
                label_mac=$wan_mac
index f3b435eeddf395842bdda39f5d61508055a5902d..9c4ff9f9da42414602a92e3a3056f7314a711a17 100644 (file)
@@ -151,7 +151,8 @@ case "$FIRMWARE" in
        netgear,wndap360)
                caldata_extract "art" 0x1000 0xeb8
                ;;
-       dlink,dir-825-b1)
+       dlink,dir-825-b1|\
+       trendnet,tew-673gru)
                caldata_extract "caldata" 0x1000 0xeb8
                ath9k_patch_mac_crc $(mtd_get_mac_text "caldata" 0xffa0) 0x20c
                ;;
@@ -170,7 +171,8 @@ case "$FIRMWARE" in
        netgear,wndap360)
                caldata_extract "art" 0x5000 0xeb8
                ;;
-       dlink,dir-825-b1)
+       dlink,dir-825-b1|\
+       trendnet,tew-673gru)
                caldata_extract "caldata" 0x5000 0xeb8
                ath9k_patch_mac_crc $(macaddr_add $(mtd_get_mac_text "caldata" 0xffb4) 1) 0x20c
                ;;
index 900c9dbf3c207bcf180d2e559368c98bc86a2591..d088f91019f1f62eb579a50297ba070d4a75759b 100644 (file)
@@ -2509,6 +2509,22 @@ define Device/teltonika_rut955-h7v3c0
 endef
 TARGET_DEVICES += teltonika_rut955-h7v3c0
 
+define Device/trendnet_tew-673gru
+  SOC := ar7161
+  DEVICE_VENDOR := Trendnet
+  DEVICE_MODEL := TEW-673GRU
+  DEVICE_VARIANT := v1.0R
+  DEVICE_PACKAGES := -uboot-envtools kmod-usb-ohci kmod-usb2 \
+       kmod-owl-loader kmod-switch-rtl8366s
+  IMAGE_SIZE := 7808k
+  FACTORY_SIZE := 6144k
+  IMAGES += factory.bin
+  IMAGE/factory.bin = append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | \
+       pad-rootfs | check-size $$$$(FACTORY_SIZE) | pad-to $$$$(FACTORY_SIZE) | \
+       append-string AP94-AR7161-RT-080619-01
+endef
+TARGET_DEVICES += trendnet_tew-673gru
+
 define Device/trendnet_tew-823dru
   SOC := qca9558
   DEVICE_VENDOR := Trendnet