diff --git a/package/boot/uboot-envtools/files/ath79 b/package/boot/uboot-envtools/files/ath79 index 567bf9824dd..5104c5fe9b4 100644 --- a/package/boot/uboot-envtools/files/ath79 +++ b/package/boot/uboot-envtools/files/ath79 @@ -41,6 +41,7 @@ engenius,ecb1750|\ engenius,ecb350-v1|\ engenius,ecb600|\ engenius,enh202-v1|\ +engenius,ens1750|\ engenius,ens202ext-v1|\ engenius,enstationac-v1|\ engenius,ews660ap|\ diff --git a/target/linux/ath79/dts/qca9558_engenius_dual_ap.dtsi b/target/linux/ath79/dts/qca9558_engenius_dual_ap.dtsi new file mode 100644 index 00000000000..1f8a4a23647 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_engenius_dual_ap.dtsi @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca955x_senao_loader.dtsi" + +&partitions { + partition@ff0000 { + label = "art"; + reg = <0xff0000 0x010000>; + read-only; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_art_0: macaddr@0 { + compatible = "mac-base"; + reg = <0x0 0x6>; + #nvmem-cell-cells = <1>; + }; + + calibration_art_1000: calibration@1000 { + reg = <0x1000 0x440>; + }; + + calibration_art_5000: calibration@5000 { + reg = <0x5000 0x844>; + }; + }; + }; +}; + +&mdio0 { + status = "okay"; + + phy1: ethernet-phy@1 { + reg = <1>; + eee-broken-100tx; + eee-broken-1000t; + }; + + phy2: ethernet-phy@2 { + reg = <2>; + eee-broken-100tx; + eee-broken-1000t; + at803x-override-sgmii-link-check; + }; +}; + +ð0 { + status = "okay"; + + nvmem-cells = <&macaddr_art_0 0>; + nvmem-cell-names = "mac-address"; + + phy-handle = <&phy1>; + phy-mode = "rgmii-id"; + + pll-data = <0x82000000 0x80000101 0x80001313>; +}; + +ð1 { + status = "okay"; + + nvmem-cells = <&macaddr_art_0 1>; + nvmem-cell-names = "mac-address"; + + phy-handle = <&phy2>; + + pll-data = <0x03000000 0x00000101 0x00001313>; + + qca955x-sgmii-fixup; +}; + +&wmac { + status = "okay"; + + nvmem-cells = <&macaddr_art_0 2>, <&calibration_art_1000>; + nvmem-cell-names = "mac-address", "calibration"; +}; + +&ath10k_1 { + nvmem-cells = <&macaddr_art_0 3>, <&calibration_art_5000>; + nvmem-cell-names = "mac-address", "calibration"; +}; + +&pcie1 { + status = "okay"; +}; diff --git a/target/linux/ath79/dts/qca9558_engenius_ens1750.dts b/target/linux/ath79/dts/qca9558_engenius_ens1750.dts new file mode 100644 index 00000000000..45215d31b57 --- /dev/null +++ b/target/linux/ath79/dts/qca9558_engenius_ens1750.dts @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qca9558_engenius_dual_ap.dtsi" + +#include +#include +#include + +/ { + compatible = "engenius,ens1750", "qca,qca9558"; + model = "EnGenius ENS1750"; + + aliases { + label-mac-device = ð0; + led-boot = &led_wifi5g; + led-failsafe = &led_wifi5g; + led-upgrade = &led_wifi5g; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio 21 GPIO_ACTIVE_LOW>; + debounce-interval = <60>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + wifi2g { + color = ; + function = LED_FUNCTION_WLAN_2GHZ; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + led_wifi5g: wifi5g { + color = ; + function = LED_FUNCTION_WLAN_5GHZ; + gpios = <&gpio 15 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + }; +}; diff --git a/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts b/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts index 9fa1927c1db..01a3804fcb2 100644 --- a/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts +++ b/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts @@ -1,9 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "qca955x_senao_loader.dtsi" +#include "qca9558_engenius_dual_ap.dtsi" #include #include +#include / { compatible = "engenius,ews660ap", "qca,qca9558"; @@ -31,103 +32,17 @@ compatible = "gpio-leds"; wifi2g { - label = "green:wifi2g"; + color = ; + function = LED_FUNCTION_WLAN_2GHZ; gpios = <&gpio 14 GPIO_ACTIVE_LOW>; linux,default-trigger = "phy1tpt"; }; led_wifi5g: wifi5g { - label = "green:wifi5g"; + color = ; + function = LED_FUNCTION_WLAN_5GHZ; gpios = <&gpio 15 GPIO_ACTIVE_LOW>; linux,default-trigger = "phy0tpt"; }; }; }; - -&partitions { - partition@ff0000 { - label = "art"; - reg = <0xff0000 0x010000>; - read-only; - - nvmem-layout { - compatible = "fixed-layout"; - #address-cells = <1>; - #size-cells = <1>; - - macaddr_art_0: macaddr@0 { - compatible = "mac-base"; - reg = <0x0 0x6>; - #nvmem-cell-cells = <1>; - }; - - calibration_art_1000: calibration@1000 { - reg = <0x1000 0x440>; - }; - - calibration_art_5000: calibration@5000 { - reg = <0x5000 0x844>; - }; - }; - }; -}; - -&mdio0 { - status = "okay"; - - phy1: ethernet-phy@1 { - reg = <1>; - eee-broken-100tx; - eee-broken-1000t; - }; - - phy2: ethernet-phy@2 { - reg = <2>; - eee-broken-100tx; - eee-broken-1000t; - at803x-override-sgmii-link-check; - }; -}; - -ð0 { - status = "okay"; - - nvmem-cells = <&macaddr_art_0 0>; - nvmem-cell-names = "mac-address"; - - phy-handle = <&phy1>; - phy-mode = "rgmii-id"; - - pll-data = <0x82000000 0x80000101 0x80001313>; -}; - -ð1 { - status = "okay"; - - nvmem-cells = <&macaddr_art_0 1>; - nvmem-cell-names = "mac-address"; - - phy-handle = <&phy2>; - - pll-data = <0x03000000 0x00000101 0x00001313>; - - qca955x-sgmii-fixup; -}; - -&wmac { - status = "okay"; - - nvmem-cells = <&macaddr_art_0 2>, <&calibration_art_1000>; - nvmem-cell-names = "mac-address", "calibration"; -}; - -&ath10k_1 { - status = "okay"; - - nvmem-cells = <&macaddr_art_0 3>, <&calibration_art_5000>; - nvmem-cell-names = "mac-address", "calibration"; -}; - -&pcie1 { - status = "okay"; -}; diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network index 6823c333b6e..bf93dc8ba88 100644 --- a/target/linux/ath79/generic/base-files/etc/board.d/02_network +++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network @@ -146,6 +146,7 @@ ath79_setup_interfaces() elecom,wab-i1750-ps|\ elecom,wab-s1167-ps|\ elecom,wab-s600-ps|\ + engenius,ens1750|\ engenius,enstationac-v1|\ engenius,ews511ap|\ engenius,ews660ap|\ diff --git a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh index cb93c1b5abc..076a785cbf3 100644 --- a/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh +++ b/target/linux/ath79/generic/base-files/lib/upgrade/platform.sh @@ -40,6 +40,7 @@ platform_do_upgrade() { engenius,eap300-v2|\ engenius,eap600|\ engenius,ecb600|\ + engenius,ens1750|\ engenius,ens202ext-v1|\ engenius,enstationac-v1|\ engenius,ews660ap|\ diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index bf300dd18d7..90270a7a4e4 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -1528,18 +1528,29 @@ define Device/engenius_ews511ap endef TARGET_DEVICES += engenius_ews511ap -define Device/engenius_ews660ap +define Device/engenius_ews_dual_ap $(Device/senao_loader_okli) SOC := qca9558 DEVICE_VENDOR := EnGenius - DEVICE_MODEL := EWS660AP DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct IMAGE_SIZE := 11584k LOADER_FLASH_OFFS := 0x220000 +endef + +define Device/engenius_ews660ap + $(Device/engenius_ews_dual_ap) + DEVICE_MODEL := EWS660AP SENAO_IMGNAME := ar71xx-generic-ews660ap endef TARGET_DEVICES += engenius_ews660ap +define Device/engenius_ens1750 + $(Device/engenius_ews_dual_ap) + DEVICE_MODEL := ENS1750 + SENAO_IMGNAME := ar71xx-generic-ens1750 +endef +TARGET_DEVICES += engenius_ens1750 + define Device/enterasys_ws-ap3705i SOC := ar9344 DEVICE_VENDOR := Enterasys