new file mode 100644
@@ -0,0 +1,159 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "mt7620a.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ compatible = "lcx,lcx-zj1200-03", "ralink,mt7620a-soc";
+ model = "LCX LCX-ZJ1200-03";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ wps {
+ label = "wps";
+ gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: led_internet {
+ function = LED_FUNCTION_POWER;
+ label = "green:internet";
+ gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
+ };
+
+ led_wlan1 {
+ function = LED_FUNCTION_WLAN_5GHZ;
+ label = "green:wlan1";
+ gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ led_wlan2 {
+ function = LED_FUNCTION_WLAN_2GHZ;
+ label = "green:wlan2";
+ gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1tpt";
+ };
+
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ mx25l6406e@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "u-boot-env";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_factory_4: macaddr@4 {
+ reg = <0x4 0x6>;
+ };
+
+ macaddr_factory_2e: macaddr@2e {
+ reg = <0x2e 0x6>;
+ };
+
+ eeprom_radio_0: eeprom@0 {
+ reg = <0x0 0x200>;
+ };
+
+ eeprom_radio_8000: eeprom@8000 {
+ reg = <0x8000 0x200>;
+ };
+ };
+ };
+
+ partition@50000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x50000 0x7a0000>;
+ };
+
+ partition@7f0000 {
+ label = "backup_config";
+ reg = <0x7f0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+ðernet {
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii2_pins>, <&ephy_pins>, <&mdio_pins>;
+
+ nvmem-cells = <&macaddr_factory_4>;
+ nvmem-cell-names = "mac-address";
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie0 {
+ mt76@0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0000 0 0 0 0>;
+ nvmem-cells = <&eeprom_radio_8000>;
+ nvmem-cell-names = "eeprom";
+ ieee80211-freq-limit = <5000000 6000000>;
+ };
+};
+
+&gsw {
+ mediatek,port4-gmac;
+};
+
+&wmac {
+ nvmem-cells = <&eeprom_radio_0>;
+ nvmem-cell-names = "eeprom";
+};
+
+&state_default {
+ gpio {
+ groups = "i2c", "uartf";
+ function = "gpio";
+ };
+};
Original date: Tue, 15 Apr 2025 11:32:36 -0400 This is a cheap (25$) WiFi repeater made by a company called Shenzen-LinChuangXun (LCX) Mine's from Edtiske, but it's likely not a real company and simply a trademark for their amazon (an identical device is listed as "NeaLia"). Therefore, it's branded after the actual OEM (which specializes in networking equipment). ** SPECS: ** - MT7620a SoC w/2.4Ghz 802.11b/g/n - MT7612e WLAN for 5Ghz 802.11ac (WiFi5) - 128MB RAM - 8MB MX25L6406E SPI NOR - UART TXD/RXD, 57600 - 4 antennas (2 FAKE) ** Installation: ** This device ships with CleanWRT (u-boot_mt7620), a fork of pepe2k's ath79 u-boot_mod. Very bizarre. However, this means that it's compatible with OpenWRT sysupgrade. - Hold WPS/Reset button right after connecting to power - Set static IP to 192.168.1.2, netmask 255.255.255.0, gateway 192.168.1.1 - Access CleanWRT page at 192.168.1.1 - Upload sysupgrade.bin file and flash ** TFTP recovery: ** You shouldn't ever need this since CleanWRT's httpd is built into u-boot. However, if for whatever reason (eg. different bootloader) this doesn't work, you'll need the serial console. (57600 baudrate) - Rename the initramfs-kernel.bin to test.bin and serve it via tftp (eg. using tftpd-hpa, serving at /srv/tftp, file in /srv/tftp/test.bin) - Repeat static IP steps from regular CleanWRT method. - Then hold "4" while booting until you dropdown to a console. - Run the command "tftpboot" and then you'll boot into OpenWRT. Now you can run sysupgrade from OpenWRT. ** Extra: ** Stock firmware is unknown and seems to redirect to some suspicious chinese websites. No interaction with it is required to flash OpenWRT, though it may be a future venue for firmware flashing on certain firmwares. Signed-off-by: Rayan Farzaneh <snappedall@hotmail.com> --- .../ramips/dts/mt7620a_lcx_lcx-zj1200-03.dts | 159 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 9 + .../mt7620/base-files/etc/board.d/02_network | 1 + 3 files changed, 169 insertions(+) create mode 100644 target/linux/ramips/dts/mt7620a_lcx_lcx-zj1200-03.dts +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network @@ -171,6 +171,7 @@ ramips_setup_interfaces() "5:lan" "6@eth0" ucidef_add_switch_attr "switch1" "enable" "false" ;; + lcx,lcx-zj1200-03|\ fon,fon2601|\ vonets,var11n-300) ucidef_add_switch "switch0" \ -- 2.43.0