aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Genheimer <mail@f0wl.cc>2019-02-12 17:19:51 +0100
committerChristian Lamparter <chunkeey@gmail.com>2019-02-14 16:56:15 +0100
commit9ad3967f140bd6d08796f1ec151b753186b3eb44 (patch)
treeb1931a6545b3f2f6d549066ab1d4dc145d44a56e
parent5ee9763aaab92757846a7b3d3f6e26812e3a42f3 (diff)
downloadupstream-9ad3967f140bd6d08796f1ec151b753186b3eb44.tar.gz
upstream-9ad3967f140bd6d08796f1ec151b753186b3eb44.tar.bz2
upstream-9ad3967f140bd6d08796f1ec151b753186b3eb44.zip
ipq40xx: add support for ASUS Lyra
SoC: Qualcomm IPQ4019 (Dakota) 717 MHz, 4 cores RAM: 256 MiB (Nanya NT5CC128M16IP-DI) FLASH: 128 MiB (Macronix NAND) WiFi0: Qualcomm IPQ4019 b/g/n 2x2 WiFi1: Qualcomm IPQ4019 a/n/ac 2x2 WiFi2: Qualcomm Atheros QCA9886 a/n/ac BT: Atheros AR3012 IN: WPS Button, Reset Button OUT: RGB-LED via TI LP5523 9-channel Controller UART: Front of Device - 115200 N-8 Pinout 3.3v - RX - TX - GND (Square is VCC) Installation: 1. Transfer OpenWRT-initramfs image to the device via SSH to /tmp. Login credentials are identical to the Web UI. 2. Login to the device via SSH. 3. Flash the initramfs image using > mtd-write -d linux -i openwrt-image-file 4. Power-cycle the device and wait for OpenWRT to boot. 5. From there flash the OpenWRT-sysupgrade image. Ethernet-Ports: Although labeled identically, the port next to the power socket is the LAN port and the other one is WAN. This is the same behavior as in the stock firmware. Signed-off-by: Marius Genheimer <mail@f0wl.cc> [Dropped setup_mac 02_network in favour of 05_set_iface_mac_ipq40xx.sh, reorderd 02_network entries, added board.bin WA for the QCA9886 from ath79, minor dts touchup, added rng to 4.19 dts] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-rw-r--r--package/firmware/ipq-wifi/Makefile3
-rw-r--r--package/firmware/ipq-wifi/board-map-ac2200.binbin0 -> 24324 bytes
-rwxr-xr-xtarget/linux/ipq40xx/base-files/etc/board.d/02_network9
-rw-r--r--target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata11
-rw-r--r--target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh5
-rw-r--r--target/linux/ipq40xx/base-files/lib/upgrade/platform.sh4
-rw-r--r--target/linux/ipq40xx/config-4.141
-rw-r--r--target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts304
-rw-r--r--target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts309
-rw-r--r--target/linux/ipq40xx/image/Makefile9
-rw-r--r--target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch3
-rw-r--r--target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch3
12 files changed, 654 insertions, 7 deletions
diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
index cf1ad042bf..7c9def8967 100644
--- a/package/firmware/ipq-wifi/Makefile
+++ b/package/firmware/ipq-wifi/Makefile
@@ -17,7 +17,7 @@ endef
# Please send a mail with your device-specific board files upstream.
# You can find instructions and examples on the linux-wireless wiki:
# <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
-ALLWIFIBOARDS:=engenius_eap1300 linksys_ea6350v3
+ALLWIFIBOARDS:=asus_map-ac2200 engenius_eap1300 linksys_ea6350v3
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
define Package/ipq-wifi-default
@@ -52,6 +52,7 @@ Don't install it for any other device!
endef
#$(eval $(call generate-ipq-wifi-package,<devicename>,<filename>,<displayname>))
+$(eval $(call generate-ipq-wifi-package,asus_map-ac2200,board-map-ac2200.bin,ASUS MAP-AC2200))
$(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300))
$(eval $(call generate-ipq-wifi-package,linksys_ea6350v3,board-linksys_ea6350v3.bin,Linksys EA6350v3))
diff --git a/package/firmware/ipq-wifi/board-map-ac2200.bin b/package/firmware/ipq-wifi/board-map-ac2200.bin
new file mode 100644
index 0000000000..372936010a
--- /dev/null
+++ b/package/firmware/ipq-wifi/board-map-ac2200.bin
Binary files differ
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 bcc5f4cec9..dffccd9fad 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -15,6 +15,11 @@ ipq40xx_setup_interfaces()
8dev,jalapeno)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
;;
+ asus,map-ac2200|\
+ openmesh,a42|\
+ openmesh,a62)
+ ucidef_set_interfaces_lan_wan "eth1" "eth0"
+ ;;
asus,rt-ac58u|\
zyxel,nbg6617)
ucidef_set_interfaces_lan_wan "eth0" "eth1"
@@ -42,10 +47,6 @@ ipq40xx_setup_interfaces()
ucidef_add_switch "switch0" \
"0u@eth0" "3:lan" "4:lan"
;;
- openmesh,a42|\
- openmesh,a62)
- ucidef_set_interfaces_lan_wan "eth1" "eth0"
- ;;
*)
echo "Unsupported hardware. Network interfaces not initialized"
;;
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 69b6c2591c..59a809e792 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
@@ -106,6 +106,11 @@ case "$FIRMWARE" in
;;
"ath10k/pre-cal-pci-0000:01:00.0.bin")
case "$board" in
+ asus,map-ac2200)
+ ath10kcal_ubi_extract "Factory" 36864 12064
+ ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
+ /lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+ ;;
openmesh,a62)
ath10kcal_extract "0:ART" 36864 12064
;;
@@ -119,6 +124,9 @@ case "$FIRMWARE" in
qcom,ap-dk01.1-c1)
ath10kcal_extract "ART" 4096 12064
;;
+ asus,map-ac2200)
+ ath10kcal_ubi_extract "Factory" 4096 12064
+ ;;
asus,rt-ac58u)
CI_UBIPART=UBI_DEV
ath10kcal_ubi_extract "Factory" 4096 12064
@@ -157,6 +165,9 @@ case "$FIRMWARE" in
qcom,ap-dk01.1-c1)
ath10kcal_extract "ART" 20480 12064
;;
+ asus,map-ac2200)
+ ath10kcal_ubi_extract "Factory" 20480 12064
+ ;;
asus,rt-ac58u)
CI_UBIPART=UBI_DEV
ath10kcal_ubi_extract "Factory" 20480 12064
diff --git a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
index 44e81ca366..ce5c1fc4bf 100644
--- a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
+++ b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh
@@ -4,6 +4,11 @@
preinit_set_mac_address() {
case $(board_name) in
+ asus,map-ac2200)
+ base_mac=$(mtd_get_mac_binary_ubi Factory 4102)
+ ip link set dev eth0 address $(macaddr_add "$base_mac" +1)
+ ip link set dev eth1 address $(macaddr_add "$base_mac" +3)
+ ;;
meraki,mr33)
mac_lan=$(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 102)
[ -n "$mac_lan" ] && ip link set dev eth0 address "$mac_lan"
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
index c5f06ffb3a..f6bc173a76 100644
--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
@@ -49,6 +49,10 @@ platform_do_upgrade() {
8dev,jalapeno)
nand_do_upgrade "$ARGV"
;;
+ asus,map-ac2200)
+ CI_KERNPART="linux"
+ nand_do_upgrade "$1"
+ ;;
asus,rt-ac58u)
CI_UBIPART="UBI_DEV"
CI_KERNPART="linux"
diff --git a/target/linux/ipq40xx/config-4.14 b/target/linux/ipq40xx/config-4.14
index 5ddbcf3df3..c72e693206 100644
--- a/target/linux/ipq40xx/config-4.14
+++ b/target/linux/ipq40xx/config-4.14
@@ -264,6 +264,7 @@ CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_IRQ_WORK=y
+CONFIG_LEDS_LP5523=y
CONFIG_LEDS_LP5562=y
CONFIG_LEDS_LP55XX_COMMON=y
CONFIG_LIBFDT=y
diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts
new file mode 100644
index 0000000000..ea39428b88
--- /dev/null
+++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts
@@ -0,0 +1,304 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/dts-v1/;
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "ASUS Lyra MAP-AC2200";
+ compatible = "asus,map-ac2200";
+
+ aliases {
+ led-boot = &led_blue0;
+ led-failsafe = &led_red0;
+ led-running = &led_blue0;
+ led-upgrade = &led_red0;
+ };
+
+ soc {
+ mdio@90000 {
+ status = "okay";
+ };
+
+ ess-psgmii@98000 {
+ status = "okay";
+ };
+
+ tcsr@1949000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1949000 0x100>;
+ qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+ };
+
+ 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@60f8800 {
+ status = "okay";
+ };
+
+ crypto@8e3a000 {
+ status = "okay";
+ };
+
+ watchdog@b017000 {
+ status = "okay";
+ };
+
+ ess-switch@c000000 {
+ status = "okay";
+ };
+
+ edma@c080000 {
+ status = "okay";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ reset {
+ label = "reset";
+ gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
+
+&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 = "SBL1";
+ reg = <0x0 0x80000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "MIBIB";
+ reg = <0x80000 0x80000>;
+ read-only;
+ };
+
+ partition@100000 {
+ label = "QSEE";
+ reg = <0x100000 0x100000>;
+ read-only;
+ };
+
+ partition@200000 {
+ label = "CDT";
+ reg = <0x200000 0x80000>;
+ read-only;
+ };
+
+ partition@280000 {
+ label = "APPSBL";
+ reg = <0x280000 0x140000>;
+ read-only;
+ };
+
+ partition@3c0000 {
+ label = "APPSBLENV";
+ reg = <0x3c0000 0x40000>;
+ read-only;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x400000 0x7c00000>;
+ };
+ };
+ };
+};
+
+&tlmm {
+ i2c_0_pins: i2c_0_pinmux {
+ pinmux {
+ function = "blsp_i2c0";
+ pins = "gpio20", "gpio21";
+ drive-strength = <16>;
+ bias-disable;
+ };
+ };
+
+ serial_pins: serial_pinmux {
+ mux {
+ pins = "gpio16", "gpio17";
+ function = "blsp_uart0";
+ bias-disable;
+ };
+ };
+
+ nand_pins: nand_pins {
+ pullups {
+ pins = "gpio52", "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;
+ };
+ };
+};
+
+&cryptobam {
+ status = "okay";
+};
+
+&blsp_dma {
+ status = "okay";
+};
+
+&qpic_bam {
+ status = "okay";
+};
+
+&wifi0 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+};
+
+&wifi1 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+};
+
+&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";
+ status = "okay";
+ reg = <0x00010000 0 0 0 0>;
+ qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+ };
+ };
+};
+
+&usb2_hs_phy {
+ /* Bluetooth module attached via USB */
+ status = "okay";
+};
+
+&blsp1_i2c3 {
+ pinctrl-0 = <&i2c_0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ led-controller@32 {
+ /* 9-channel RGB LED controller */
+ compatible = "national,lp5523";
+ reg = <0x32>;
+ clock-mode = [01];
+
+ led_blue0: blue0 {
+ chan-name = "blue0";
+ label = "map-ac2200:blue:chan0";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ blue1 {
+ chan-name = "blue1";
+ label = "map-ac2200:blue:chan1";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ blue2 {
+ chan-name = "blue2";
+ label = "map-ac2200:blue:chan2";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ led_green0: green0 {
+ chan-name = "green0";
+ label = "map-ac2200:green:chan0";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ green1 {
+ chan-name = "green1";
+ label = "map-ac2200:green:chan1";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ green2 {
+ chan-name = "green2";
+ label = "map-ac2200:green:chan2";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ led_red0: red0 {
+ chan-name = "red0";
+ label = "map-ac2200:red:chan0";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ red1 {
+ chan-name = "red1";
+ label = "map-ac2200:red:chan1";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ red2 {
+ chan-name = "red2";
+ label = "map-ac2200:red:chan2";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+ };
+};
+
+&blsp1_uart1 {
+ pinctrl-0 = <&serial_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+};
diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts
new file mode 100644
index 0000000000..7f6aa51bfa
--- /dev/null
+++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts
@@ -0,0 +1,309 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/dts-v1/;
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "ASUS Lyra MAP-AC2200";
+ compatible = "asus,map-ac2200";
+
+ aliases {
+ led-boot = &led_blue0;
+ led-failsafe = &led_red0;
+ led-running = &led_blue0;
+ led-upgrade = &led_red0;
+ };
+
+ soc {
+ rng@22000 {
+ status = "okay";
+ };
+
+ mdio@90000 {
+ status = "okay";
+ };
+
+ ess-psgmii@98000 {
+ status = "okay";
+ };
+
+ tcsr@1949000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1949000 0x100>;
+ qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+ };
+
+ 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@60f8800 {
+ status = "okay";
+ };
+
+ crypto@8e3a000 {
+ status = "okay";
+ };
+
+ watchdog@b017000 {
+ status = "okay";
+ };
+
+ ess-switch@c000000 {
+ status = "okay";
+ };
+
+ edma@c080000 {
+ status = "okay";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
+
+&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 = "SBL1";
+ reg = <0x0 0x80000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "MIBIB";
+ reg = <0x80000 0x80000>;
+ read-only;
+ };
+
+ partition@100000 {
+ label = "QSEE";
+ reg = <0x100000 0x100000>;
+ read-only;
+ };
+
+ partition@200000 {
+ label = "CDT";
+ reg = <0x200000 0x80000>;
+ read-only;
+ };
+
+ partition@280000 {
+ label = "APPSBL";
+ reg = <0x280000 0x140000>;
+ read-only;
+ };
+
+ partition@3c0000 {
+ label = "APPSBLENV";
+ reg = <0x3c0000 0x40000>;
+ read-only;
+ };
+
+ partition@400000 {
+ label = "ubi";
+ reg = <0x400000 0x7c00000>;
+ };
+ };
+ };
+};
+
+&tlmm {
+ i2c_0_pins: i2c_0_pinmux {
+ pinmux {
+ function = "blsp_i2c0";
+ pins = "gpio20", "gpio21";
+ drive-strength = <16>;
+ bias-disable;
+ };
+ };
+
+ serial_pins: serial_pinmux {
+ mux {
+ pins = "gpio16", "gpio17";
+ function = "blsp_uart0";
+ bias-disable;
+ };
+ };
+
+ nand_pins: nand_pins {
+ pullups {
+ pins = "gpio52", "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;
+ };
+ };
+};
+
+&cryptobam {
+ status = "okay";
+};
+
+&blsp_dma {
+ status = "okay";
+};
+
+&qpic_bam {
+ status = "okay";
+};
+
+&wifi0 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+};
+
+&wifi1 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+};
+
+&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";
+ status = "okay";
+ reg = <0x00010000 0 0 0 0>;
+ qcom,ath10k-calibration-variant = "ASUS-MAP-AC2200";
+ };
+ };
+};
+
+&usb2_hs_phy {
+ /* Bluetooth module attached via USB */
+ status = "okay";
+};
+
+&blsp1_i2c3 {
+ pinctrl-0 = <&i2c_0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ led-controller@32 {
+ /* 9-channel RGB LED controller */
+ compatible = "national,lp5523";
+ reg = <0x32>;
+ clock-mode = [01];
+
+ led_blue0: blue0 {
+ chan-name = "blue0";
+ label = "map-ac2200:blue:chan0";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ blue1 {
+ chan-name = "blue1";
+ label = "map-ac2200:blue:chan1";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ blue2 {
+ chan-name = "blue2";
+ label = "map-ac2200:blue:chan2";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ led_green0: green0 {
+ chan-name = "green0";
+ label = "map-ac2200:green:chan0";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ green1 {
+ chan-name = "green1";
+ label = "map-ac2200:green:chan1";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ green2 {
+ chan-name = "green2";
+ label = "map-ac2200:green:chan2";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ led_red0: red0 {
+ chan-name = "red0";
+ label = "map-ac2200:red:chan0";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ red1 {
+ chan-name = "red1";
+ label = "map-ac2200:red:chan1";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+
+ red2 {
+ chan-name = "red2";
+ label = "map-ac2200:red:chan2";
+ led-cur = [fa];
+ max-cur = [ff];
+ };
+ };
+};
+
+&blsp1_uart1 {
+ pinctrl-0 = <&serial_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+};
diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile
index a670380ab3..31468fd758 100644
--- a/target/linux/ipq40xx/image/Makefile
+++ b/target/linux/ipq40xx/image/Makefile
@@ -62,6 +62,15 @@ define Device/8dev_jalapeno
endef
TARGET_DEVICES += 8dev_jalapeno
+define Device/asus_map-ac2200
+ $(call Device/FitImageLzma)
+ DEVICE_DTS := qcom-ipq4019-map-ac2200
+ DEVICE_TITLE := ASUS Lyra MAP-AC2200
+ IMAGES := sysupgrade.bin
+ DEVICE_PACKAGES := ipq-wifi-asus_map-ac2200 ath10k-firmware-qca9888-ct kmod-ath3k
+endef
+TARGET_DEVICES += asus_map-ac2200
+
define Device/asus_rt-ac58u
$(call Device/FitImageLzma)
DEVICE_DTS := qcom-ipq4018-rt-ac58u
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 e0619a64dd..20ea3a8449 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,22 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -697,7 +697,23 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8074-dragonboard.dtb \
qcom-apq8084-ifc6540.dtb \
qcom-apq8084-mtp.dtb \
@@ -27,6 +27,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
qcom-ipq4019-ap.dk01.1-c1.dtb \
+ qcom-ipq4019-a62.dtb \
+ qcom-ipq4019-ap.dk04.1-c1.dtb \
++ qcom-ipq4019-map-ac2200.dtb \
+ qcom-ipq4028-wpj428.dtb \
+ qcom-ipq4029-gl-b1300.dtb \
+ qcom-ipq4029-mr33.dtb \
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 d0f892bc48..f3472b32c0 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 <john@phrozen.org>
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -785,11 +785,25 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -785,11 +785,26 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8074-dragonboard.dtb \
qcom-apq8084-ifc6540.dtb \
qcom-apq8084-mtp.dtb \
@@ -30,6 +30,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
+ qcom-ipq4019-a62.dtb \
++ qcom-ipq4019-map-ac2200.dtb \
+ qcom-ipq4028-wpj428.dtb \
+ qcom-ipq4029-gl-b1300.dtb \
+ qcom-ipq4029-mr33.dtb \