[OpenWrt-Devel] [PATCH v3] ramips: add support for TRENDnet TEW-810DR

Heppler, J. Scott shep971 at centurylink.net
Sun Mar 29 19:20:05 EDT 2020


ramips: add support for TRENDnet TEW-810DR
       new file:   target/linux/ramips/dts/mt7620a_cameo_810.dtsi
       modified:   target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
       new file:   target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
       modified:   target/linux/ramips/image/mt7620.mk
       modified:   target/linux/ramips/mt7620/base-files/etc/board.d/02_network

Trendnet TEW-810DR builds and tests on my device.  TEW-810DR leds
functional with LAN4 caveat.  D-Link DIR-810L builds
but unable to test.

Specification:

* MediaTek MT7620A (580 Mhz)
* 8 MB of FLASH
* 64 MB of RAM
* 2.4Ghz and 5.0Ghz radios functional
* 5x 10/100 Mbps Ethernet (1 WAN and 4 LAN)
* UART header on PCB (57600 8n1)
* BiColor Green/Orange Power LED GPIO contolled,
  BiColor Green/Orange Internet LED has a none-GPIO based driver
  active with NIC into LAN4
* 3x button - wps, power and reset
* U-boot bootloader

Installation:

The sysupgrade.bin image needs to have a cameo hardware ID appended
with ncc_att_hwid.  ncc_att_hwid is available in the GPL Source
download for either the TEW-810DR or DIR-810L and is located at
source/user/wolf/cameo/ncc/hostTools.  Debian 10 amd64, 32bit libs are needed.
The invocation is:
ncc_att_hwid -f tew-810-squashfs-factory.bin -a -m “TEW-810DR”
-H “1.0R” -r “WW” -c “1.0”
More information is available in the device page for TEW-810DR.
The appended image can then be flash via the Web rescue interface
192.168.10.1 or TFTP's to the same IP address.  Subsequent upgrades
can be done using the Luci web interface or the ssh command line per the
OpenWRT documentation
---
 .../linux/ramips/dts/mt7620a_cameo_810.dtsi   | 143 ++++++++++++++++++
 .../ramips/dts/mt7620a_dlink_dir-810l.dts     | 130 +---------------
 .../ramips/dts/mt7620a_trendnet_tew-810dr.dts |  31 ++++
 target/linux/ramips/image/mt7620.mk           |  10 ++
 .../mt7620/base-files/etc/board.d/02_network  |   3 +-
 5 files changed, 187 insertions(+), 130 deletions(-)
 create mode 100644 target/linux/ramips/dts/mt7620a_cameo_810.dtsi
 create mode 100644 target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts

diff --git a/target/linux/ramips/dts/mt7620a_cameo_810.dtsi b/target/linux/ramips/dts/mt7620a_cameo_810.dtsi
new file mode 100644
index 0000000000..a3039a2400
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620a_cameo_810.dtsi
@@ -0,0 +1,143 @@
+/dts-v1/;
+
+#include "mt7620a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "dlink,dir-810l", "ralink,mt7620a-soc";
+
+	aliases {
+		led-boot = &led_power_green;
+		led-failsafe = &led_power_green;
+		led-running = &led_power_green;
+		led-upgrade = &led_power_green;
+		label-mac-device = ðernet;
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "reset";
+			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		wps {
+			label = "wps";
+			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+	};
+};
+
+&spi0 {
+	status = "okay";
+
+	flash at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <50000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x0 0x30000>;
+				read-only;
+			};
+
+			partition at 30000 {
+				label = "u-boot-env";
+				reg = <0x30000 0x10000>;
+				read-only;
+			};
+
+			factory: partition at 40000 {
+				label = "factory";
+				reg = <0x40000 0x10000>;
+				read-only;
+			};
+
+			factory5g: partition at 50000 {
+				label = "factory5g";
+				reg = <0x50000 0x10000>;
+				read-only;
+			};
+
+			partition at 60000 {
+				label = "Wolf_Config";
+				reg = <0x60000 0x10000>;
+				read-only;
+			};
+
+			partition at 70000 {
+				label = "MyDlink";
+				reg = <0x70000 0x80000>;
+				read-only;
+			};
+
+			partition at f0000 {
+				label = "Jffs2";
+				reg = <0xf0000 0x80000>;
+				read-only;
+			};
+
+			partition at 170000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x170000 0x690000>;
+			};
+		};
+	};
+};
+
+&state_default {
+	gpio {
+		ralink,group = "i2c", "uartf";
+		ralink,function = "gpio";
+	};
+};
+
+&ethernet {
+	mtd-mac-address = <&factory 0x28>;
+	mediatek,portmap = "llllw";
+};
+
+&gsw {
+	pinctrl-names = "default";
+	pinctrl-0 = <&ephy_pins>;
+
+	mediatek,port4 = "ephy";
+};
+
+&pcie {
+	status = "okay";
+};
+
+&wmac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pa_pins>;
+
+	ralink,mtd-eeprom = <&factory 0x0>;
+	mtd-mac-address = <&factory 0x28>;
+};
+
+&pcie0 {
+	wifi at 0,0 {
+		reg = <0x0000 0 0 0 0>;
+		mediatek,mtd-eeprom = <&factory 0x8000>;
+		ieee80211-freq-limit = <5000000 6000000>;
+		mtd-mac-address = <&factory 0x28>;
+		mtd-mac-address-increment = <2>;
+	};
+};
diff --git a/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts b/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
index 0a22eee3b5..250ea9419c 100644
--- a/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
+++ b/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
@@ -1,6 +1,6 @@
 /dts-v1/;
 
-#include "mt7620a.dtsi"
+#include "mt7620a_cameo_810.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
@@ -9,29 +9,6 @@
 	compatible = "dlink,dir-810l", "ralink,mt7620a-soc";
 	model = "D-Link DIR-810L";
 
-	aliases {
-		led-boot = &led_power_green;
-		led-failsafe = &led_power_green;
-		led-running = &led_power_green;
-		led-upgrade = &led_power_green;
-		label-mac-device = ðernet;
-	};
-
-	keys {
-		compatible = "gpio-keys";
-
-		reset {
-			label = "reset";
-			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RESTART>;
-		};
-
-		wps {
-			label = "wps";
-			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_WPS_BUTTON>;
-		};
-	};
 
 	leds {
 		compatible = "gpio-leds";
@@ -52,108 +29,3 @@
 		};
 	};
 };
-
-&spi0 {
-	status = "okay";
-
-	flash at 0 {
-		compatible = "jedec,spi-nor";
-		reg = <0>;
-		spi-max-frequency = <50000000>;
-
-		partitions {
-			compatible = "fixed-partitions";
-			#address-cells = <1>;
-			#size-cells = <1>;
-
-			partition at 0 {
-				label = "u-boot";
-				reg = <0x0 0x30000>;
-				read-only;
-			};
-
-			partition at 30000 {
-				label = "u-boot-env";
-				reg = <0x30000 0x10000>;
-				read-only;
-			};
-
-			factory: partition at 40000 {
-				label = "factory";
-				reg = <0x40000 0x10000>;
-				read-only;
-			};
-
-			factory5g: partition at 50000 {
-				label = "factory5g";
-				reg = <0x50000 0x10000>;
-				read-only;
-			};
-
-			partition at 60000 {
-				label = "Wolf_Config";
-				reg = <0x60000 0x10000>;
-				read-only;
-			};
-
-			partition at 70000 {
-				label = "MyDlink";
-				reg = <0x70000 0x80000>;
-				read-only;
-			};
-
-			partition at f0000 {
-				label = "Jffs2";
-				reg = <0xf0000 0x80000>;
-				read-only;
-			};
-
-			partition at 170000 {
-				compatible = "denx,uimage";
-				label = "firmware";
-				reg = <0x170000 0x690000>;
-			};
-		};
-	};
-};
-
-&state_default {
-	gpio {
-		ralink,group = "i2c", "uartf";
-		ralink,function = "gpio";
-	};
-};
-
-&ethernet {
-	mtd-mac-address = <&factory 0x28>;
-	mediatek,portmap = "llllw";
-};
-
-&gsw {
-	pinctrl-names = "default";
-	pinctrl-0 = <&ephy_pins>;
-
-	mediatek,port4 = "ephy";
-};
-
-&pcie {
-	status = "okay";
-};
-
-&wmac {
-	pinctrl-names = "default";
-	pinctrl-0 = <&pa_pins>;
-
-	ralink,mtd-eeprom = <&factory 0x0>;
-	mtd-mac-address = <&factory 0x28>;
-};
-
-&pcie0 {
-	wifi at 0,0 {
-		reg = <0x0000 0 0 0 0>;
-		mediatek,mtd-eeprom = <&factory 0x8000>;
-		ieee80211-freq-limit = <5000000 6000000>;
-		mtd-mac-address = <&factory 0x28>;
-		mtd-mac-address-increment = <2>;
-	};
-};
diff --git a/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts b/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
new file mode 100644
index 0000000000..31b5189157
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
@@ -0,0 +1,31 @@
+/dts-v1/;
+
+#include "mt7620a_cameo_810.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+	compatible = "trendnet,dir-810dr", "ralink,mt7620a-soc";
+	model = "TRENDnet TEW-810DR";
+
+
+	leds {
+		compatible = "gpio-leds";
+
+		led_power_green: power_green {
+			label = "tew-810dr:green:power";
+			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+		};
+
+		wan {
+			label = "tew-810dr:orange:wan";
+			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+		};
+
+		power_orange {
+			label = "tew-810dr:orange:power";
+			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+		};
+	};
+};
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index 552879e02f..c5cb7f28f9 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -955,6 +955,16 @@ define Device/tplink_re210-v1
 endef
 TARGET_DEVICES += tplink_re210-v1
 
+define Device/trendnet_tew-810dr
+  SOC := mt7620a
+  DEVICE_PACKAGES := kmod-mt76x0e
+  DEVICE_VENDOR := TRENDnet
+  DEVICE_MODEL := TEW-810DR
+  IMAGE_SIZE := 6720k
+  SUPPORTED_DEVICES += tew-810dr
+endef
+TARGET_DEVICES += trendnet_tew-810dr
+
 define Device/vonets_var11n-300
   SOC := mt7620n
   IMAGE_SIZE := 3776k
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
index 76e1d56bd3..60afc48693 100755
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
@@ -256,7 +256,8 @@ ramips_setup_macs()
 	alfa-network,ac1200rm|\
 	dlink,dir-810l|\
 	phicomm,psg1218a|\
-	phicomm,psg1218b)
+	phicomm,psg1218b|\
+	trendnet,tew-810dr)
 		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
 		;;
 	alfa-network,r36m-e4g|\
-- 
2.20.1



-- 
J. Scott Heppler

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


More information about the openwrt-devel mailing list