Files
wlan-ap/patches/0014-ipq40xx-add-Edgecore-ECW5211-support.patch
John Crispin 7ae17f821b ipq807x: update kernel patches and add new boards
Signed-off-by: John Crispin <john@phrozen.org>
2021-01-18 08:03:29 +01:00

564 lines
16 KiB
Diff

From f072c795bc3f5eae1a249b89874d35eb9b8b2e46 Mon Sep 17 00:00:00 2001
From: Robert Marko <robert.marko@sartura.hr>
Date: Fri, 19 Jun 2020 14:01:58 +0200
Subject: [PATCH 14/40] ipq40xx: add Edgecore ECW5211 support
This patch adds support for the Edgecore ECW5211 indoor AP.
Specification:
- SoC: Qualcomm Atheros IPQ4018 ARMv7-A 4x Cortex A-7
- RAM: 256MB DDR3
- NOR Flash: 16MB SPI NOR
- NAND Flash: 128MB MX35LFxGE4AB SPI-NAND
- Ethernet: 2 x 1G via Q8075 PHY connected to ethernet adapter via PSGMII (802.3af POE IN on eth0)
- USB: 1 x USB 3.0 SuperSpeed
- WLAN: Built-in IPQ4018 (2x2 802.11bng, 2x2 802.11 acn)
- CC2540 BLE connected to USB 2.0 port
- Atmel AT97SC3205T I2C TPM
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
---
package/boot/uboot-envtools/files/ipq40xx | 1 +
package/firmware/ipq-wifi/Makefile | 2 +
.../ipq-wifi/board-edgecore_ecw5211.qca4019 | Bin 0 -> 24324 bytes
.../ipq40xx/base-files/etc/board.d/01_leds | 1 +
.../ipq40xx/base-files/etc/board.d/02_network | 1 +
.../etc/hotplug.d/firmware/11-ath10k-caldata | 2 +
.../base-files/lib/upgrade/platform.sh | 1 +
.../arm/boot/dts/qcom-ipq4018-ecw5211.dts | 325 ++++++++++++++++++
target/linux/ipq40xx/image/Makefile | 12 +
.../901-arm-boot-add-dts-files.patch | 3 +-
10 files changed, 347 insertions(+), 1 deletion(-)
create mode 100644 package/firmware/ipq-wifi/board-edgecore_ecw5211.qca4019
create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ecw5211.dts
diff --git a/package/boot/uboot-envtools/files/ipq40xx b/package/boot/uboot-envtools/files/ipq40xx
index 7bcad00b01..ad0fd62e66 100644
--- a/package/boot/uboot-envtools/files/ipq40xx
+++ b/package/boot/uboot-envtools/files/ipq40xx
@@ -32,6 +32,7 @@ ubootenv_mtdinfo () {
case "$board" in
alfa-network,ap120c-ac |\
+edgecore,ecw5211 |\
glinet,gl-b1300 |\
openmesh,a42 |\
openmesh,a62)
diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
index 25731ddc56..1609d7a42d 100644
--- a/package/firmware/ipq-wifi/Makefile
+++ b/package/firmware/ipq-wifi/Makefile
@@ -29,6 +29,7 @@ ALLWIFIBOARDS:= \
avm_fritzbox-7530 \
avm_fritzrepeater-1200 \
avm_fritzrepeater-3000 \
+ edgecore_ecw5211 \
edgecore_ecw5410 \
engenius_eap1300 \
engenius_ens620ext \
@@ -102,6 +103,7 @@ $(eval $(call generate-ipq-wifi-package,asus_map-ac2200,ASUS MAP-AC2200))
$(eval $(call generate-ipq-wifi-package,avm_fritzbox-7530,AVM FRITZ!Box 7530))
$(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200))
$(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-3000,AVM FRITZ!Repeater 3000))
+$(eval $(call generate-ipq-wifi-package,edgecore_ecw5211,Edgecore ECW5211))
$(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410))
$(eval $(call generate-ipq-wifi-package,engenius_eap1300,EnGenius EAP1300))
$(eval $(call generate-ipq-wifi-package,engenius_ens620ext,EnGenius ENS620EXT))
diff --git a/package/firmware/ipq-wifi/board-edgecore_ecw5211.qca4019 b/package/firmware/ipq-wifi/board-edgecore_ecw5211.qca4019
new file mode 100644
index 0000000000000000000000000000000000000000..340cfcc7a20cb88ed6fca7369b380a3d341f76ee
GIT binary patch
literal 24324
zcmeHPdr%We8gCH92Np~SuMj37JmW%y@Gv3@0mJ}vpom~V5fG7#vLf%7<zw9gG_V}F
zD37dYu_^*N9~8d9J5SfGQp&r!KklD%udeRus&4DF%G<TJ?&{3-%w&=PVM##B0P}^O
z{`#B#y1)L-keTWJWwysjgQV%Qkl^H?*i>m+JSZ+M22e`Y5nBK@!<1i9wkfYDKQO;o
z5wx#JQ4*vm*c42b@(<^g77)b{NnmAOsUq*w@=aR`4(#7|xO9KemblDtaY#sUu@!8C
z58LCf`}&-f6<BtR6_!D?y|$Ow0<g-?k<3{DtPX{m4OyDH5el`tLPJA;c>C5WioG0Y
zG@58SEn`phF~!0M;OXRgtwhjJVA~o>GiB?btK<l%4{ab~q;-96#H8P8hPFyqmk+3q
z&Y)G?A-H;p2FpmXf`<bDTU%Qj8wmOxGe(L)Kf~k#%Z5qcmucE+D5ll4{8}X~gT!g0
zm5K3=4-PeTSJ&)J{A8%NyQM~vl`07sz1H1ux>T_}F=BK8YGsPF#PFY>fB>OC81EbH
z=&q>Qo)s}Vq;*(3+D}x=N=%eMhcl<EvarOBl!O0T!lAvpvL+)@2pxV^Q<Akq5<Ggj
z`*clFRx<2ssJji?(j>v8gV5i9Vtg}{YM{(eW#VqeVIm&JON#*|<0D&G*2{wjdt#b|
z)oz7PZq)W-ErB&$#lveyIujZKO5Jih2eLaiH1Nxu^1kXT?1(-YP~n>YY-ndoNG)H%
z&VJfob1t<(ROY$w-au97FU|y2aSL1ecDF}<=3nVnaBrx-C;X^)iA&y<%Zl@|)1Op%
z6x|)Fys+*Vuf!>LVWGrCOCw-ww{rCw2gJ$Q)!oCBM}On%bK*Pp=LEJxUV*KwtgWr#
z#n{?<*)n)FUal3p-s8D3{AWkEiBTUPZ}{gc@bdB&cnJg<HY<Sk4uy_oG3Q@@VFiJ*
zvbI?P|EQam8HZakqOY<IMCl6#n%F=$RL3=KM(>5vS}QBl)3F2z_|NL)%P9|u(AQfa
z;K2gh?%hxC-#bH%vJpm4dpm0zoBu(Z13X}Q{~vY!R4enhEg6LOBe40BV=aS3B6{-E
ziw_|J0W=T_%H?Xcx!F)%dmLSRv#=RM1wj!+ib|0XGz2NBs6BS7sipn=R0Tw7<$+lW
z3uTE|&shiu<%l?#BkG8_p|NPJDE4_Ql7uFSlCT&w29cp+R4fud7bB5qq$m;#MuQOv
zstZDO$+)VEDJn`A6{Ai$KBhq8ggU);LOf6pkp~us#=VY1lF?*QG8T%4z79n;q8mjU
zG3p=~Zpp4F=;wV)oVz7WszJl#J4ex9S&VDO{$FNmTMYN4%ot2L`V2}8O4A^~oEp;r
zGr_zhQJR1NQ(zEa5MU5s5MU5s5Lm(pxQbm79&4+3E0W4uFJ6yCvsTao((>Cb-F$4g
zr62vx%cu6Sl9mtF#}Yn-%+Sq5;NMfk%m(JGx~VG!rq-LUIOnNdY<H1z_yqtkuU7UB
zznGlEnQ1ubEfDaDnQ1~pxo#F_Bj@J%+Btav%5fnBC1SP!8?j(O;D>Uw8p>g7HH)y#
z(`og=nmucWfS51<lq>{rp|ooAv)UYh5a0)?Q39BJv^k+iL3^yN@DDJ(gz5Km`e1=E
z4J~*CG}rCf*471Z1p+QH!$s3`P%c8D2X+U_Tx{4b_~qI={OxqPzn`zq$4u199ko_R
zt<GWF(s%97Ehtj9o;}~w+jn*F`tY5Hzj^ZQ3-fmvtmBz?=el5O19BY{V>Qw%q2wAU
z7TZX#f|Bc>n7EN%0W}}QX+0J{x(ntsSX_acvSyr;kyF^x@zrJZ$k;d2>5B^${b<<l
z*$5ZqintgX#J`V6FccGESUd=OABIGsQKBd;?1MdD>w7gva}m2BC@VpnfTXY@#1Y75
zR#q4Bnc4<@oul)G@`z(5?_L~k67T-tJu53ny02~}S>VpS6e`YJ39b?V?f|SLc=v#0
zffLF^@!m0+cW*zLcRwq5`2akkd!ied%)2M<i|IPk=QH!}9SE|zPND(i*xA_HLb@Hv
zxg*H%0E}qN{Q<$uy!(kQM(ZM&wc_C51RR{4fRi@4xVQkrWM;#}#F?2cQ>qK5SZG5G
zyO;fPA_Vj<lk$Oq0h8)cl_qjx%y67kbxAJgGJ~FU78osBAWBB#WQ+^~3<3-Sb3}mP
z-9x@T#k+^f9Gjc9dsb^@mX>$#xZ*9<jGlM@-+%t?FW-IlCur95?lu4V$6vqy{_oIc
z2YL6<KbP|VagDXsKdLY*gR%h*yqEgmVvKk1uM?7O59iMP{Yj1I>8aIbWusOF;9NXU
ztMNQN=3+Aj2E)6jo-!ZkA2yeuYRVjnA>*FXNysR)=6!4I+?}fp+eJ)vKYTIq2}56+
zsr^^CRZVrcJWd|>W<Xu9l;e?j<k*O+qwa`2LE<}hQ{AV8yCq!Ww_?A&?;il5LqlDW
zTq>8o=~q`N)A3L|R6VTf#c_FxByjAus;#bA9xLG!4v!zeAMw7rr8-fUjbk|W=8C#p
zwWlru_fy|fcHpJ5c!?M~wAUS?9e(%FUkF|etB%%X;0bsF?CWHG7M_l$tH+exc)4s#
zfE(GvK|GrZ>B%S&(sfmBT^cUMrDG$?X8eFWNuH#>uk6GtWwHQ|u{)|S$&h$NNKZxs
zU=P<-^-2XEi^q=Lgbqcd!wuC1yjUictQ)_tzND<dGbJ3t;pv#r54`D87pRhy5y}Ws
zOH_s{!(kwubrtetiEw;G-K8wWQ)NDc!#88X0Pv<qU8qVX9Xix|Rq;xZQZ#;7eGy_A
zBSBx?8tYM2;c+r|(%}&tgE?Y>xB5&-rW`;9B?hHw5LgVS#xz4?%u5yl^`)Ink+ps}
zXHWmdw1$oKJ_=WPc}K!2;So;0eZr%@{mq-|ybrj_`!1$7tgjXnxn@7^$J^sS3#sB3
ze9@ahyuSc<NO{_Ss4eEWZ?SvMl?!$4vJ*jvIoY?b<g`Ye5SF{_xpVbMN6blKDQoBB
zYl`;h<KBnda;{%UI4V5on&FVpb19=atd_eENmq8Kd>&HnoVjMp-TwTx$YcD2&e`{R
zw$=)ZT+$q*4XVs$_+EqqYm!cPrv5Ul(oJqJyEU-)OUX%Iv2)Jj9;{xZaNpq&+t|IU
zIk*}vT9Y(<p|mBgKCsv&?b)xB&IH!D7dmG4b$!|#Ug}-IN~-NjQ%0Q(D045k(y3_N
zT(S0mQ}X4jhr2eO@-AiP+~}!p*-+_Q=#*UCA!{VwzTmpIxh3;x7%s?W#oWAB)|1j4
zQ02CN$(}gOz!?M<0Rl6;ghNBz{{NiV8Hy1+&X#Wr1ms&de0_c3AAAD`-`mSe;FSTE
z)LS@=K*N|A1U?!9@7}%pffOD8ettr+2d^|~AX$@Z^+(M<@Mn$v{B*NuTAhh^4`;fy
zynC(2<GNXrO~<kK)M`8rS4*<d9D7d>t;X|kwj`V7pU4!i-kadmLtYTUspn1P)zh4M
zf?xkK2EOTX)hXfec*wh7yFnnOk`K&%ju6T6$IC=WBS7%tZ6Ggx*ZHeY=7Sec_cLGl
zbbNc-{xLcCMBfbWo?Ppi?S|pq&lWkx&tefUWzBdxuDzk%Vh1?Kz$~A4Kl`iMN23gx
H5%T{5!-kmb
literal 0
HcmV?d00001
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/target/linux/ipq40xx/base-files/etc/board.d/01_leds
index 9cd51e5de0..6bc21a67e9 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds
@@ -55,6 +55,7 @@ zyxel,nbg6617)
ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:green:wlan2G" "phy0tpt"
ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:green:wlan5G" "phy1tpt"
;;
+edgecore,ecw5211 |\
zyxel,wre6606)
ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:green:wlan2g" "phy0tpt"
ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:green:wlan5g" "phy1tpt"
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network
index 01825b8bac..6e0fb52ab4 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -18,6 +18,7 @@ ipq40xx_setup_interfaces()
ucidef_set_interfaces_lan_wan "eth0" "eth1"
;;
asus,map-ac2200|\
+ edgecore,ecw5211|\
openmesh,a42|\
openmesh,a62)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index b0035ce8a3..7d2e173e1a 100644
--- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -158,6 +158,7 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
compex,wpj428 |\
+ edgecore,ecw5211 |\
engenius,eap1300 |\
openmesh,a42 |\
openmesh,a62 |\
@@ -220,6 +221,7 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
compex,wpj428 |\
+ edgecore,ecw5211 |\
engenius,eap1300 |\
openmesh,a42 |\
openmesh,a62 |\
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
index a7b7da1bf3..e0a9301fe0 100644
--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
@@ -51,6 +51,7 @@ platform_do_upgrade() {
avm,fritzbox-7530 |\
avm,fritzrepeater-1200 |\
avm,fritzrepeater-3000 |\
+ edgecore,ecw5211 |\
qxwlan,e2600ac-c2)
nand_do_upgrade "$1"
;;
diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ecw5211.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ecw5211.dts
new file mode 100644
index 0000000000..6c9b31b99d
--- /dev/null
+++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4018-ecw5211.dts
@@ -0,0 +1,325 @@
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "Edgecore ECW5211";
+ compatible = "edgecore,ecw5211";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ };
+
+ chosen {
+ bootargs-append = " root=/dev/ubiblock0_1";
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&tlmm 63 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ label = "ecw5211:yellow:power";
+ gpios = <&tlmm 5 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan2g {
+ label = "ecw5211:green:wlan2g";
+ gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
+ };
+
+ wlan5g {
+ label = "ecw5211:green:wlan5g";
+ gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ soc {
+ rng@22000 {
+ status = "okay";
+ };
+
+ mdio@90000 {
+ status = "okay";
+
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ };
+
+ ess-psgmii@98000 {
+ status = "okay";
+ };
+
+ counter@4a1000 {
+ compatible = "qcom,qca-gcnt";
+ reg = <0x4a1000 0x4>;
+ };
+
+ tcsr@1949000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1949000 0x100>;
+ qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+ };
+
+ tcsr@194b000 {
+ status = "okay";
+
+ compatible = "qcom,tcsr";
+ reg = <0x194b000 0x100>;
+ qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+ };
+
+ ess_tcsr@1953000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1953000 0x1000>;
+ qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+ };
+
+ tcsr@1957000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1957000 0x100>;
+ qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
+ };
+
+ usb2: usb2@60f8800 {
+ status = "okay";
+ };
+
+ usb3: usb3@8af8800 {
+ status = "okay";
+ };
+
+ crypto@8e3a000 {
+ status = "okay";
+ };
+
+ watchdog@b017000 {
+ status = "okay";
+ };
+
+ ess-switch@c000000 {
+ status = "okay";
+ };
+
+ edma@c080000 {
+ status = "okay";
+ };
+ };
+};
+
+&tlmm {
+ mdio_pins: mdio_pinmux {
+ mux_mdio {
+ pins = "gpio53";
+ function = "mdio";
+ bias-pull-up;
+ };
+
+ mux_mdc {
+ pins = "gpio52";
+ function = "mdc";
+ bias-pull-up;
+ };
+ };
+
+ serial_pins: serial_pinmux {
+ mux {
+ pins = "gpio60", "gpio61";
+ function = "blsp_uart0";
+ bias-disable;
+ };
+ };
+
+ spi0_pins: spi0_pinmux {
+ pin {
+ function = "blsp_spi0";
+ pins = "gpio55", "gpio56", "gpio57";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ pin_cs {
+ function = "gpio";
+ pins = "gpio54", "gpio4";
+ drive-strength = <2>;
+ bias-disable;
+ output-high;
+ };
+ };
+
+ i2c0_pins: i2c0_pinmux {
+ mux_i2c {
+ function = "blsp_i2c0";
+ pins = "gpio58", "gpio59";
+ drive-strength = <16>;
+ bias-disable;
+ };
+ };
+};
+
+&blsp_dma {
+ status = "okay";
+};
+
+&blsp1_spi1 {
+ status = "okay";
+
+ pinctrl-0 = <&spi0_pins>;
+ pinctrl-names = "default";
+ cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>, <&tlmm 4 GPIO_ACTIVE_HIGH>;
+
+ flash@0 {
+ status = "okay";
+
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <24000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "0:SBL1";
+ reg = <0x00000000 0x00040000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "0:MIBIB";
+ reg = <0x00040000 0x00020000>;
+ read-only;
+ };
+
+ partition@60000 {
+ label = "0:QSEE";
+ reg = <0x00060000 0x00060000>;
+ read-only;
+ };
+
+ partition@c0000 {
+ label = "0:CDT";
+ reg = <0x000c0000 0x00010000>;
+ read-only;
+ };
+
+ partition@d0000 {
+ label = "0:DDRPARAMS";
+ reg = <0x000d0000 0x00010000>;
+ read-only;
+ };
+
+ partition@e0000 {
+ label = "0:APPSBLENV"; /* uboot env*/
+ reg = <0x000e0000 0x00010000>;
+ read-only;
+ };
+
+ partition@f0000 {
+ label = "0:APPSBL"; /* uboot */
+ reg = <0x000f0000 0x00080000>;
+ read-only;
+ };
+
+ partition@170000 {
+ label = "0:ART";
+ reg = <0x00170000 0x00010000>;
+ read-only;
+ };
+ };
+ };
+
+ spi-nand@1 {
+ status = "okay";
+
+ compatible = "spinand,mt29f";
+ reg = <1>;
+ spi-max-frequency = <24000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "rootfs";
+ reg = <0x00000000 0x08000000>;
+ };
+ };
+ };
+};
+
+&blsp1_i2c3 {
+ status = "okay";
+
+ pinctrl-0 = <&i2c0_pins>;
+ pinctrl-names = "default";
+
+ tpm@29 {
+ compatible = "atmel,at97sc3204t";
+ reg = <0x29>;
+ };
+};
+
+&blsp1_uart1 {
+ status = "okay";
+
+ pinctrl-0 = <&serial_pins>;
+ pinctrl-names = "default";
+};
+
+&cryptobam {
+ status = "okay";
+};
+
+&gmac0 {
+ qcom,poll_required = <1>;
+ qcom,poll_required_dynamic = <1>;
+ qcom,phy_mdio_addr = <4>;
+ vlan_tag = <2 0x20>;
+};
+
+&gmac1 {
+ qcom,poll_required = <1>;
+ qcom,poll_required_dynamic = <1>;
+ qcom,phy_mdio_addr = <3>;
+ vlan_tag = <1 0x10>;
+};
+
+&wifi0 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Edgecore-ECW5211";
+};
+
+&wifi1 {
+ status = "okay";
+
+ qcom,ath10k-calibration-variant = "Edgecore-ECW5211";
+};
+
+&usb3_ss_phy {
+ status = "okay";
+};
+
+&usb3_hs_phy {
+ status = "okay";
+};
+
+&usb2_hs_phy {
+ status = "okay";
+};
diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile
index 98c81726d9..553ac66fa3 100644
--- a/target/linux/ipq40xx/image/Makefile
+++ b/target/linux/ipq40xx/image/Makefile
@@ -171,6 +171,18 @@ define Device/compex_wpj428
endef
TARGET_DEVICES += compex_wpj428
+define Device/edgecore_ecw5211
+ $(call Device/FitImage)
+ $(call Device/UbiFit)
+ DEVICE_TITLE := Edgecore ECW5211
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ DEVICE_DTS_CONFIG := config@ap.dk01.1-c2
+ DEVICE_DTS := qcom-ipq4018-ecw5211
+ DEVICE_PACKAGES := ipq-wifi-edgecore_ecw5211 kmod-tpm-i2c-atmel kmod-usb-acm uboot-envtools
+endef
+TARGET_DEVICES += edgecore_ecw5211
+
define Device/engenius_eap1300
$(call Device/FitImage)
DEVICE_TITLE := EnGenius EAP1300
diff --git a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch
index f7efd415f1..9b1d825be1 100644
--- a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch
+++ b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch
@@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -697,7 +697,31 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -697,7 +697,32 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8074-dragonboard.dtb \
qcom-apq8084-ifc6540.dtb \
qcom-apq8084-mtp.dtb \
@@ -18,6 +18,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
+ qcom-ipq4018-ap120c-ac.dtb \
+ qcom-ipq4018-ea6350v3.dtb \
+ qcom-ipq4018-eap1300.dtb \
++ qcom-ipq4018-ecw5211.dtb \
+ qcom-ipq4018-ens620ext.dtb \
+ qcom-ipq4018-ex6100v2.dtb \
+ qcom-ipq4018-ex6150v2.dtb \
--
2.25.1