From a736d912e2bad6c470c73fbf47c45ec3017371af Mon Sep 17 00:00:00 2001 From: Steven Lin Date: Mon, 2 Sep 2019 10:39:45 +0800 Subject: [PATCH] ipq40xx: add support for EnGenius EAP2200 SOC: IPQ4019 / QCA Dakota CPU: Quad-Core ARMv7 Processor rev 5 (v7l) Cortex-A7 DRAM: 256 MiB FLASH: NOR 4 MiB + NAND 128 MiB ETH: Qualcomm Atheros QCA8072 WLAN1: Qualcomm Atheros QCA4019 2.4GHz 802.11bgn 2:2x2 WLAN2: Qualcomm Atheros QCA4019 5GHz 802.11a/n/ac 2:2x2 WLAN2: Qualcomm Atheros QCA9888 5GHz 802.11a/n/ac 2:2x2 INPUT: WPS Button LEDS: Power, LAN1, LAN2, WLAN 2.4GHz, WLAN 5GHz-1, WLAN 5GHz-2, OPMODE 1. Load Ramdisk via U-Boot To set up the flash memory environment, do the following: a. As a preliminary step, ensure that the board console port is connected to the PC using these RS232 parameters: * 115200bps * 8N1 b. Confirm that the PC is connected to the board using one of the Ethernet ports. c. Set a static ip 192.168.99.8 for Ethernet that connects to board. d. The PC must have a TFTP server launched and listening on the interface to which the board is connected. e. At this stage power up the board and, after a few seconds, press 4 and then any key during the countdown. U-BOOT> set serverip 192.168.99.9 && tftpboot 0x84000000 192.168.99.8:openwrt.itb && bootm Signed-off-by: Steven Lin [copied 4.19 dts to 5.4] Signed-off-by: Christian Lamparter --- package/firmware/ipq-wifi/Makefile | 2 + .../ipq-wifi/board-engenius_eap2200.qca4019 | Bin 0 -> 24324 bytes .../ipq-wifi/board-engenius_eap2200.qca9888 | Bin 0 -> 12172 bytes .../ipq40xx/base-files/etc/board.d/01_leds | 4 + .../ipq40xx/base-files/etc/board.d/02_network | 4 +- .../etc/hotplug.d/firmware/11-ath10k-caldata | 9 +- .../lib/preinit/05_set_iface_mac_ipq40xx.sh | 4 + .../base-files/lib/upgrade/platform.sh | 1 + .../arm/boot/dts/qcom-ipq4019-eap2200.dts | 282 ++++++++++++++++++ .../arm/boot/dts/qcom-ipq4019-eap2200.dts | 282 ++++++++++++++++++ target/linux/ipq40xx/image/Makefile | 12 + .../901-arm-boot-add-dts-files.patch | 3 +- .../901-arm-boot-add-dts-files.patch | 5 +- 13 files changed, 601 insertions(+), 7 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-engenius_eap2200.qca4019 create mode 100644 package/firmware/ipq-wifi/board-engenius_eap2200.qca9888 create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-eap2200.dts create mode 100644 target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4019-eap2200.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 610dee18e0d..fc1b10343e2 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -28,6 +28,7 @@ ALLWIFIBOARDS:= \ aruba_ap-303 \ avm_fritzrepeater-1200 \ dlink_dap2610 \ + engenius_eap2200 \ engenius_emd1 \ ezviz_cs-w3-wd1200g-eup \ linksys_ea8300 \ @@ -95,6 +96,7 @@ endef $(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303)) $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200)) $(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) +$(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) diff --git a/package/firmware/ipq-wifi/board-engenius_eap2200.qca4019 b/package/firmware/ipq-wifi/board-engenius_eap2200.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..337d896d1edd06375a76b19da6f0b3e0bf452fc1 GIT binary patch literal 24324 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

l{;sj zYTW%%u!@_7MvM)WcPF0`RJs(9R}cxw>&wfo!a=jV@?M~6U zTI=uoHUhv~55t?dK0gpR^$BZ<@a40V(9%0lXSDQy5(5z68^SB4Qv(65)`>GWP&wos zVda49;;GcVAftWY?yJznzw&!4sk?{Zt7MtyQSpVd1OmRLfcWhX0ltiuSS+#>;7e?o z7m>o3&w}?VQg^@T(Z!D|u@D&#Uti4X=-ROWKSjO-_`+pYCkj7B#DZuT{wKxiL@mF7 zWcBIp@uluCj3=0H{B zNm3E7L@_F36;sAxI@Y#h9jBwtsN+K)oasv+ee%IFj4vfUn;0f?slbG`+Wj`??4SQX z|9>u7mUHGWFDlF^)Ty)Nnhe$2!ga-=z6kO56$3y>HY(rLUwlc@XMD#$^QU&Jf3`ina2mS z<+t$)hqosl8{aeiFwx+k2#5-cL(yDf-mtLaWA8~=pf(?bg@w(ZKR+}yl*i-w1ORS% zW;*-@y!4O=aOO+|(DHoO_!e(2P5$gx%1>-;the}ykB|2jKar7<-ZD)hBEWlt=M82b zrxU?Ba1QT=0|y5O$6Rp5&I92*UPx#-`XFICK2%Ku<9Pb(Ggf})8AShwZ+rNtu$RBh zZjZ|I#8cy00ER#xy2kcXV9;|Cl}gmM-*bGdy~EL7rPEQLk{~7~{H0GvrY~J07B6P^ zSYactMn~hubgXhwWLQXO=$}XzhIW(4zsBbu6&3Q@f7`aIN}o<32-r^r4byZAckBt$BN|4nJK`Ct&k3Sl9Z1+y?y+nxhoS#8}ezi@g?0Ls_=I3odvxD0=U zV*)6U38)wtgC#;0RLNA2R9Fctk(E#dumDp-1yslsj}%xA%#r0#awx}0IM%n*HMux8 zrhpzfaaLk1jC~P{ErbhY3#lSl^r8sUK#fd8Wy9jmE}^tl@F`~!pwO+7wYDLzJ=5fa>ix0(}&bLQss3ZSO*t6XWuY-h0=MEE` z1LwdwaOZuF_lQ#$wja-IU$hk~@9kOLAvGjbL@K{L`MHH?N~->--#De|lx-JQM6JBsyQ53iBHSFKx$QFAKRYDa%GX_V(I+%VQ;Z4KJ$7|_ z=60bjDrfNQUM8nCr7lj}bH3_W{$61{zW!LR-j;u8v4OAe?`gHJFp4+FQ}4vu%1d0`PBMnz+>aS2J2p3YtcGKqg!Ad}epEGBKigMC^B zT)H#`eU^xmMN5*C#mSW*oXw1CYfJ|neS<$g{r&m#=d(B+27?4e0=5`mqgaEj#aAd+ zVEK5sAF!_Oxa;P3Y(+m{scK>szO$KJ@ zvG?A=^bI{8e;12IA_#>-fq;`Z>7SRlzfg{;xP>@{xQLjIZqDDW8_>(OZ|LDv_q5cd zDgS2iW$t{rI$w5<(&{#Bs%bDVjuWSQ`z~J{7#zCw)7@VlKAyP&h*DBgMTiO8##D(! znu?fU5I`srAe3_m3ZKX_!60JaIEV=bKA(@XOx*r@^Pm)N@n=H4IZ#Sv@n=E3`ARzf(FWg>&XvTkSXO+J|=`hnULax;?ZJ^ zf|QJ+iox>H<(LvGWlC!KBzT~LH)h{YIKH0hR9 +#include + +/ { + model = "EnGenius EAP2200"; + compatible = "engenius,eap2200"; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "eap2200:amber:power"; + gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; + }; + + lan1 { + label = "eap2200:blue:lan1"; + gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; + }; + + lan2 { + label = "eap2200:blue:lan2"; + gpios = <&tlmm 45 GPIO_ACTIVE_LOW>; + }; + + wlan2g { + label = "eap2200:blue:wlan2g"; + gpios = <&tlmm 46 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + wlan5g { + label = "eap2200:yellow:wlan5g"; + gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + wlan5g2 { + label = "eap2200:yellow:wlan5g2"; + gpios = <&tlmm 48 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy2tpt"; + }; + + mode { + label = "eap2200:blue:mode"; + gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; + }; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + switch_lan_bmp = <0x10>; + }; + + edma@c080000 { + status = "okay"; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <24000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition0@0 { + label = "0:SBL1"; + reg = <0x00000000 0x00040000>; + read-only; + }; + partition1@40000 { + label = "0:MIBIB"; + reg = <0x00040000 0x00020000>; + read-only; + }; + partition2@60000 { + label = "0:QSEE"; + reg = <0x00060000 0x00060000>; + read-only; + }; + partition3@c0000 { + label = "0:CDT"; + reg = <0x000c0000 0x00010000>; + read-only; + }; + partition4@d0000 { + label = "0:DDRPARAMS"; + reg = <0x000d0000 0x00010000>; + read-only; + }; + partition5@e0000 { + label = "0:APPSBLENV"; + reg = <0x000e0000 0x00010000>; + read-only; + }; + partition6@f0000 { + label = "0:APPSBL"; + reg = <0x000f0000 0x00080000>; + read-only; + }; + partition7@170000 { + label = "0:ART"; + reg = <0x00170000 0x00010000>; + read-only; + }; + }; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&gmac0 { + vlan_tag = <1 0x10>; +}; + +&nand { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "rootfs1"; + reg = <0x00000000 0x04000000>; + }; + partition@40000000 { + label = "ubi"; + reg = <0x04000000 0x04000000>; + }; + + }; + }; +}; + +&pcie0 { + status = "okay"; + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2: wifi@1,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "EnGenius-EAP2200"; + }; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&tlmm { + nand_pins: nand_pins { + pullups { + pins = "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; + + serial_0_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + drive-strength = <12>; + bias-disable; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "EnGenius-EAP2200"; +}; + +&wifi1 { + status = "okay"; + ieee80211-freq-limit = <5170000 5350000>; + qcom,ath10k-calibration-variant = "EnGenius-EAP2200"; +}; diff --git a/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4019-eap2200.dts b/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4019-eap2200.dts new file mode 100644 index 00000000000..6862ca87e36 --- /dev/null +++ b/target/linux/ipq40xx/files-5.4/arch/arm/boot/dts/qcom-ipq4019-eap2200.dts @@ -0,0 +1,282 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include + +/ { + model = "EnGenius EAP2200"; + compatible = "engenius,eap2200"; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + leds { + compatible = "gpio-leds"; + + led_power: power { + label = "eap2200:amber:power"; + gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; + }; + + lan1 { + label = "eap2200:blue:lan1"; + gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; + }; + + lan2 { + label = "eap2200:blue:lan2"; + gpios = <&tlmm 45 GPIO_ACTIVE_LOW>; + }; + + wlan2g { + label = "eap2200:blue:wlan2g"; + gpios = <&tlmm 46 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + wlan5g { + label = "eap2200:yellow:wlan5g"; + gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + wlan5g2 { + label = "eap2200:yellow:wlan5g2"; + gpios = <&tlmm 48 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy2tpt"; + }; + + mode { + label = "eap2200:blue:mode"; + gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; + }; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + switch_lan_bmp = <0x10>; + }; + + edma@c080000 { + status = "okay"; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <24000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition0@0 { + label = "0:SBL1"; + reg = <0x00000000 0x00040000>; + read-only; + }; + partition1@40000 { + label = "0:MIBIB"; + reg = <0x00040000 0x00020000>; + read-only; + }; + partition2@60000 { + label = "0:QSEE"; + reg = <0x00060000 0x00060000>; + read-only; + }; + partition3@c0000 { + label = "0:CDT"; + reg = <0x000c0000 0x00010000>; + read-only; + }; + partition4@d0000 { + label = "0:DDRPARAMS"; + reg = <0x000d0000 0x00010000>; + read-only; + }; + partition5@e0000 { + label = "0:APPSBLENV"; + reg = <0x000e0000 0x00010000>; + read-only; + }; + partition6@f0000 { + label = "0:APPSBL"; + reg = <0x000f0000 0x00080000>; + read-only; + }; + partition7@170000 { + label = "0:ART"; + reg = <0x00170000 0x00010000>; + read-only; + }; + }; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&gmac0 { + vlan_tag = <1 0x10>; +}; + +&nand { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "rootfs1"; + reg = <0x00000000 0x04000000>; + }; + partition@40000000 { + label = "ubi"; + reg = <0x04000000 0x04000000>; + }; + + }; + }; +}; + +&pcie0 { + status = "okay"; + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2: wifi@1,0 { + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + ieee80211-freq-limit = <5470000 5875000>; + qcom,ath10k-calibration-variant = "EnGenius-EAP2200"; + }; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&tlmm { + nand_pins: nand_pins { + pullups { + pins = "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; + + serial_0_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + drive-strength = <12>; + bias-disable; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "EnGenius-EAP2200"; +}; + +&wifi1 { + status = "okay"; + ieee80211-freq-limit = <5170000 5350000>; + qcom,ath10k-calibration-variant = "EnGenius-EAP2200"; +}; diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile index bbe4df9df40..9ddcd17f1d1 100644 --- a/target/linux/ipq40xx/image/Makefile +++ b/target/linux/ipq40xx/image/Makefile @@ -278,6 +278,18 @@ define Device/engenius_eap1300 endef TARGET_DEVICES += engenius_eap1300 +define Device/engenius_eap2200 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := EnGenius + DEVICE_MODEL := EAP2200 + SOC := qcom-ipq4019 + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-engenius_eap2200 -kmod-ath10k-ct kmod-ath10k-ct-smallbuffers +endef +TARGET_DEVICES += engenius_eap2200 + define Device/engenius_emd1 $(call Device/FitImage) DEVICE_VENDOR := EnGenius diff --git a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch index 11e775a5dcf..89e665db23b 100644 --- a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -785,11 +785,42 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -785,11 +785,43 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -36,6 +36,7 @@ Signed-off-by: John Crispin qcom-ipq4019-ap.dk07.1-c1.dtb \ qcom-ipq4019-ap.dk07.1-c2.dtb \ + qcom-ipq4019-a62.dtb \ ++ qcom-ipq4019-eap2200.dtb \ + qcom-ipq4019-fritzbox-7530.dtb \ + qcom-ipq4019-fritzrepeater-1200.dtb \ + qcom-ipq4019-fritzrepeater-3000.dtb \ diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch index 11e775a5dcf..da53220f092 100644 --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -785,11 +785,42 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -785,11 +785,43 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -36,10 +36,11 @@ Signed-off-by: John Crispin qcom-ipq4019-ap.dk07.1-c1.dtb \ qcom-ipq4019-ap.dk07.1-c2.dtb \ + qcom-ipq4019-a62.dtb \ ++ qcom-ipq4019-ea8300.dtb \ ++ qcom-ipq4019-eap2200.dtb \ + qcom-ipq4019-fritzbox-7530.dtb \ + qcom-ipq4019-fritzrepeater-1200.dtb \ + qcom-ipq4019-fritzrepeater-3000.dtb \ -+ qcom-ipq4019-ea8300.dtb \ + qcom-ipq4019-map-ac2200.dtb \ + qcom-ipq4019-e2600ac-c1.dtb \ + qcom-ipq4019-e2600ac-c2.dtb \ -- 2.47.2