ucidef_add_switch "switch0" \
"0@eth0" "1:wan" "2:lan:3" "3:lan:2"
;;
+ engenius,ews511ap)
+ ucidef_set_interface_lan "eth0 eth1" "dhcp"
+ ;;
etactica,eg200)
ucidef_set_interface_lan "eth0" "dhcp"
;;
elecom,wrc-300ghbk2-i)
wan_mac=$(macaddr_add "$(mtd_get_mac_binary ART 4098)" -2)
;;
+ engenius,ews511ap)
+ lan_mac=$(mtd_get_mac_text "u-boot-env" 233)
+ eth1_mac=$(macaddr_add "$lan_mac" 1)
+ ucidef_set_interface "eth0" ifname "eth0" protocol "none" macaddr "$lan_mac"
+ ucidef_set_interface "eth1" ifname "eth1" protocol "none" macaddr "$eth1_mac"
+ ;;
iodata,etg3-r)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(macaddr_add "$lan_mac" -1)
--- /dev/null
+// 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 "qca953x.dtsi"
+
+/ {
+ compatible = "engenius,ews511ap", "qca,qca9531";
+ model = "EnGenius EWS511AP";
+
+ keys {
+ compatible = "gpio-keys-polled";
+
+ poll-interval = <20>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ aliases {
+ led-boot = &power_led;
+ led-failsafe = &power_led;
+ led-running = &power_led;
+ led-upgrade = &power_led;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ power_led: power {
+ label = "ews511ap:amber:power";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ lan1 {
+ label = "ews511ap:blue:lan1";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ };
+
+ lan2 {
+ label = "ews511ap:blue:lan2";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g {
+ label = "ews511ap:green:wlan2g";
+ gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ wlan5g {
+ label = "ews511ap:green:wlan5g";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1tpt";
+ };
+ };
+
+ watchdog {
+ compatible = "linux,wdt-gpio";
+
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ hw_algo = "toggle";
+ /* hw_margin_ms is actually 300s but driver limits it to 60s */
+ hw_margin_ms = <60000>;
+ always-running;
+ };
+};
+
+&wdt {
+ status = "okay";
+};
+
+&rst {
+ status = "okay";
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&uart {
+ status = "okay";
+};
+
+&spi {
+ status = "okay";
+ num-cs = <0>;
+
+ 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;
+ };
+
+ ubootenv: partition@40000 {
+ label = "u-boot-env";
+ reg = <0x040000 0x010000>;
+ };
+
+ art: partition@50000 {
+ label = "art";
+ reg = <0x050000 0x010000>;
+ };
+
+ partition@60000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x060000 0xfa0000>;
+ };
+ };
+ };
+};
+
+ð0 {
+ status = "okay";
+ phy-handle = <&swphy4>;
+};
+
+ð1 {
+ status = "okay";
+};
+
+&wmac {
+ status = "okay";
+ mtd-cal-data = <&art 0x1000>;
+};