--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7620a.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "tplink,re200-v1", "ralink,mt7620a-soc";
+ model = "TP-Link RE200 v1";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ label-mac-device = ðernet;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,57600n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ label = "re200-v1:green:power";
+ gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+ };
+
+ lan {
+ label = "re200-v1:green:lan";
+ gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "re200-v1:green:wlan";
+ gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+ };
+
+ qss {
+ label = "re200-v1:green:qss";
+ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g_red {
+ label = "re200-v1:red:wlan2g";
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g_green {
+ label = "re200-v1:green:wlan2g";
+ gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1radio";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
+
+
+&state_default {
+ gpio {
+ ralink,group = "i2c", "uartf", "ephy", "wled", "rgmii1", "spi refclk";
+ ralink,function = "gpio";
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ compatible = "tplink,firmware";
+ label = "firmware";
+ reg = <0x20000 0x7c0000>;
+ };
+
+ partition@7e0000 {
+ label = "userconfig";
+ reg = <0x7e0000 0x10000>;
+ read-only;
+ };
+
+ radio: partition@7f0000 {
+ label = "radio";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&gpio1 {
+ status = "okay";
+};
+
+&gpio2 {
+ status = "okay";
+};
+
+&gpio3 {
+ status = "okay";
+};
+
+ðernet {
+ mtd-mac-address = <&uboot 0x1fc00>;
+};
+
+&wmac {
+ ralink,mtd-eeprom = <&radio 0x0>;
+ mtd-mac-address = <&uboot 0x1fc00>;
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie0 {
+ mt76@0,0 {
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&radio 0x8000>;
+ mtd-mac-address = <&uboot 0x1fc00>;
+ mtd-mac-address-increment = <2>;
+ ieee80211-freq-limit = <5000000 6000000>;
+ };
+};
--owner=0 --group=0 -f $@ -C $(KDIR) v_0.0.0.bin v_0.0.0.md5
endef
+# combine kernel and rootfs into one image
+# mktplinkfw <type> <optional extra arguments to mktplinkfw binary>
+# <type> is "sysupgrade" or "factory"
+#
+# -a align the rootfs start on an <align> bytes boundary
+# -j add jffs2 end-of-filesystem markers
+# -s strip padding from end of the image
+# -X reserve <size> bytes in the firmware image (hexval prefixed with 0x)
+define Build/mktplinkfw
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(TPLINK_HWID) -W $(TPLINK_HWREV) -F $(TPLINK_FLASHLAYOUT) \
+ -N OpenWrt -V $(REVISION) -m $(TPLINK_HEADER_VERSION) \
+ -k $(IMAGE_KERNEL) -r $(IMAGE_ROOTFS) -o $@.new -j -X 0x40000 -a 0x4 \
+ $(wordlist 2,$(words $(1)),$(1)) \
+ $(if $(findstring sysupgrade,$(word 1,$(1))),-s) && mv $@.new $@ || rm -f $@
+endef
+
define Device/aigale_ai-br100
SOC := mt7620a
IMAGE_SIZE := 7936k
endef
TARGET_DEVICES += tplink_archer-mr200
+define Device/tplink_re200-v1
+ SOC := mt7620a
+ DEVICE_VENDOR := TP-Link
+ DEVICE_MODEL := RE200
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := kmod-mt76x0e
+ IMAGES += factory.bin
+ IMAGE/sysupgrade.bin := mktplinkfw sysupgrade -e -O
+ IMAGE/factory.bin := mktplinkfw factory -e -O
+ IMAGE_SIZE := 7936k
+ KERNEL := $(KERNEL_DTB)
+ KERNEL_INITRAMFS := $(KERNEL_DTB) | tplink-v1-header -e -O
+ TPLINK_HWID := 0x02000001
+ TPLINK_HWREV := 0x1
+ TPLINK_HEADER_VERSION := 1
+ TPLINK_FLASHLAYOUT := 8Mmtk
+endef
+TARGET_DEVICES += tplink_re200-v1
+
define Device/vonets_var11n-300
SOC := mt7620n
IMAGE_SIZE := 3776k