aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ipq806x/base-files/etc/board.d/01_leds4
-rw-r--r--target/linux/ipq806x/base-files/etc/board.d/02_network6
-rw-r--r--target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata29
-rw-r--r--target/linux/ipq806x/base-files/lib/upgrade/platform.sh5
-rw-r--r--target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-cryptid-common.dtsi239
-rw-r--r--target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr42.dts204
-rw-r--r--target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr52.dts230
-rw-r--r--target/linux/ipq806x/image/Makefile35
-rw-r--r--target/linux/ipq806x/patches-5.10/0069-arm-boot-add-dts-files.patch4
9 files changed, 755 insertions, 1 deletions
diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds
index 097ba0afe1..2b259b9036 100644
--- a/target/linux/ipq806x/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds
@@ -21,6 +21,10 @@ edgecore,ecw5410)
ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy1tpt"
ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy0tpt"
;;
+meraki,mr52)
+ ucidef_set_led_netdev "eth0" "eth0" "green:lan1" "eth0"
+ ucidef_set_led_netdev "eth1" "eth1" "green:lan2" "eth1"
+ ;;
nec,wg2600hp)
ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy1tpt"
ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy0tpt"
diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network
index 65a0e98b3b..4cb691f32e 100644
--- a/target/linux/ipq806x/base-files/etc/board.d/02_network
+++ b/target/linux/ipq806x/base-files/etc/board.d/02_network
@@ -44,6 +44,12 @@ linksys,ea8500)
ucidef_set_interface_macaddr "lan" "$hw_mac_addr"
ucidef_set_interface_macaddr "wan" "$hw_mac_addr"
;;
+meraki,mr42)
+ ucidef_set_interface_lan "eth0"
+ ;;
+meraki,mr52)
+ ucidef_set_interfaces_lan_wan "eth0" "eth1"
+ ;;
nec,wg2600hp3)
ucidef_add_switch "switch0" \
"2:lan" "3:lan" "4:lan" "5:lan" "0@eth1" "1:wan" "6@eth0"
diff --git a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 8de4e052cc..78315d4516 100644
--- a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -7,6 +7,14 @@
board=$(board_name)
case "$FIRMWARE" in
+"ath10k/cal-pci-0000:01:00.0.bin")
+ case "$board" in
+ meraki,mr52)
+ CI_UBIPART=art
+ caldata_extract_ubi "ART" 0x1000 0x844
+ ;;
+ esac
+ ;;
"ath10k/pre-cal-pci-0000:01:00.0.bin")
case $board in
askey,rt4230w-rev6)
@@ -26,6 +34,10 @@ case "$FIRMWARE" in
caldata_extract "art" 0x1000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) 1)
;;
+ meraki,mr42)
+ CI_UBIPART=art
+ caldata_extract_ubi "ART" 0x1000 0x2f20
+ ;;
netgear,d7800 |\
netgear,r7500v2 |\
netgear,r7800 |\
@@ -64,6 +76,11 @@ case "$FIRMWARE" in
caldata_extract "art" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(mtd_get_mac_ascii devinfo hw_mac_addr) 2)
;;
+ meraki,mr42 |\
+ meraki,mr52)
+ CI_UBIPART=art
+ caldata_extract_ubi "ART" 0x5000 0x2f20
+ ;;
netgear,d7800 |\
netgear,r7500v2 |\
netgear,r7800 |\
@@ -80,11 +97,23 @@ case "$FIRMWARE" in
;;
esac
;;
+"ath10k/cal-pci-0002:01:00.0.bin")
+ case "$board" in
+ meraki,mr42)
+ CI_UBIPART=art
+ caldata_extract_ubi "ART" 0x9000 0x844
+ ;;
+ esac
+ ;;
"ath10k/pre-cal-pci-0002:01:00.0.bin")
case $board in
edgecore,ecw5410)
caldata_extract "0:art" 0x5000 0x2f20
;;
+ meraki,mr52)
+ CI_UBIPART=art
+ caldata_extract_ubi "ART" 0x9000 0x2f20
+ ;;
esac
;;
*)
diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
index 308d7017b3..3d96457dbd 100644
--- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh
@@ -45,6 +45,11 @@ platform_do_upgrade() {
linksys,ea8500)
platform_do_upgrade_linksys "$1"
;;
+ meraki,mr42 |\
+ meraki,mr52)
+ CI_KERNPART="bootkernel2"
+ nand_do_upgrade "$1"
+ ;;
tplink,ad7200 |\
tplink,c2600)
PART_NAME="os-image:rootfs"
diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-cryptid-common.dtsi b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-cryptid-common.dtsi
new file mode 100644
index 0000000000..10ab4821e8
--- /dev/null
+++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-cryptid-common.dtsi
@@ -0,0 +1,239 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+
+#include "qcom-ipq8064-v2.0.dtsi"
+
+/ {
+ memory {
+ device_type = "memory";
+ linux,usable-memory = <0x41500000 0x1ea00000>;
+ reg = <0x40000000 0x20000000>;
+ };
+
+ cpus {
+ idle-states {
+ CPU_SPC: spc {
+ status = "disabled";
+ };
+ };
+ };
+
+ chosen {
+ bootargs-append = " console=ttyMSM0,115200n8 ubi.mtd=ubi ubi.mtd=art";
+ };
+};
+
+&qcom_pinmux {
+ mdio0_pins_active: mdio0_pins_active {
+ mux {
+ pins = "gpio0", "gpio1";
+ function = "mdio";
+ drive-strength = <2>;
+ bias-pull-down;
+ output-low;
+ };
+
+ clk {
+ pins = "gpio1";
+ input-disable;
+ };
+ };
+
+ phy_active: phy_active {
+ phy {
+ pins = "gpio6", "gpio7";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ output-high;
+ };
+ };
+
+ uart1_pins: uart1_pins {
+ mux {
+ pins = "gpio51", "gpio52";
+ function = "gsbi1";
+ drive-strength = <4>;
+ bias-disable;
+ };
+ };
+};
+
+&gsbi1 {
+ status = "okay";
+ qcom,mode = <GSBI_PROT_UART_W_FC>;
+
+ serial@12450000 {
+ status = "okay";
+
+ pinctrl-0 = <&uart1_pins>;
+ pinctrl-names = "default";
+ };
+};
+
+&pcie0 {
+ status = "okay";
+
+ /delete-property/ pinctrl-0;
+ /delete-property/ pinctrl-names;
+ /delete-property/ perst-gpios;
+
+ bridge@0,0 {
+ reg = <0x0 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi0: wifi@1,0 {
+ compatible = "qcom,ath10k";
+ status = "okay";
+ reg = <0x10000 0 0 0 0>;
+ };
+ };
+};
+
+&pcie1 {
+ status = "okay";
+
+ /delete-property/ pinctrl-0;
+ /delete-property/ pinctrl-names;
+ /delete-property/ perst-gpios;
+
+ bridge@0,0 {
+ reg = <0x0 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi1: wifi@1,0 {
+ compatible = "qcom,ath10k";
+ status = "okay";
+ reg = <0x10000 0 0 0 0>;
+ };
+ };
+};
+
+&pcie2 {
+ status = "okay";
+
+ /delete-property/ pinctrl-0;
+ /delete-property/ pinctrl-names;
+ /delete-property/ perst-gpios;
+
+ bridge@0,0 {
+ reg = <0x0 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi2: wifi@1,0 {
+ compatible = "qcom,ath10k";
+ status = "okay";
+ reg = <0x10000 0 0 0 0>;
+ };
+ };
+};
+
+&adm_dma {
+ status = "okay";
+};
+
+&nand_controller {
+ status = "okay";
+
+ pinctrl-0 = <&nand_pins>;
+ pinctrl-names = "default";
+
+ nand@0 {
+ compatible = "qcom,nandcs";
+
+ reg = <0>;
+
+ nand-ecc-strength = <4>;
+ nand-bus-width = <8>;
+ nand-ecc-step-size = <512>;
+
+ nand-is-boot-medium;
+ qcom,boot_pages_size = <0x2140000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "sbl1";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "mibib";
+ reg = <0x40000 0x140000>;
+ read-only;
+ };
+
+ partition@180000 {
+ label = "sbl2";
+ reg = <0x180000 0x140000>;
+ read-only;
+ };
+
+ partition@2c0000 {
+ label = "sbl3";
+ reg = <0x2c0000 0x280000>;
+ read-only;
+ };
+
+ partition@540000 {
+ label = "ddrconfig";
+ reg = <0x540000 0x120000>;
+ read-only;
+ };
+
+ partition@660000 {
+ label = "ssd";
+ reg = <0x660000 0x120000>;
+ read-only;
+ };
+
+ partition@780000 {
+ label = "tz";
+ reg = <0x780000 0x280000>;
+ read-only;
+ };
+
+ partition@a00000 {
+ label = "rpm";
+ reg = <0xa00000 0x280000>;
+ read-only;
+ };
+
+ partition@1fc0000 {
+ label = "u-boot";
+ reg = <0x1fc0000 0x180000>;
+ read-only;
+ };
+
+ partition@21c0000 {
+ label = "bootkernel1";
+ reg = <0x21c0000 0xa80000>;
+ };
+
+ partition@2c40000 {
+ label = "bootkernel2";
+ reg = <0x2c40000 0xa80000>;
+ };
+
+ partition@36c0000 {
+ label = "ubi";
+ reg = <0x36c0000 0x46c0000>;
+ };
+
+ partition@7d80000 {
+ label = "art";
+ reg = <0x7d80000 0x200000>;
+ read-only;
+ };
+ };
+ };
+};
diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr42.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr42.dts
new file mode 100644
index 0000000000..ccf2554ca3
--- /dev/null
+++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr42.dts
@@ -0,0 +1,204 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+
+#include "qcom-ipq8068-cryptid-common.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Meraki MR42";
+ compatible = "meraki,mr42", "qcom,ipq8064";
+
+ aliases {
+ serial1 = &gsbi1_serial;
+ ethernet0 = &gmac3;
+
+ led-boot = &led_active;
+ led-failsafe = &led_power;
+ led-running = &led_active;
+ led-upgrade = &led_active;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&button_pins>;
+ pinctrl-names = "default";
+
+ reset {
+ label = "reset";
+ gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ debounce-interval = <60>;
+ wakeup-source;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&led_pins>;
+ pinctrl-names = "default";
+
+ led_power: power {
+ label = "orange:power";
+ gpios = <&qcom_pinmux 31 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_active: active {
+ label = "white:active";
+ gpios = <&qcom_pinmux 32 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gmac3 {
+ status = "okay";
+
+ qcom,id = <3>;
+ mdiobus = <&mdio0>;
+
+ phy-mode = "sgmii";
+ phy-handle = <&phy2>;
+
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+};
+
+&gsbi2 {
+ status = "okay";
+ qcom,mode = <GSBI_PROT_I2C>;
+};
+
+&gsbi2_i2c {
+ status = "okay";
+
+ pinctrl-0 = <&i2c0_pins>;
+ pinctrl-names = "default";
+
+ ina2xx@40 {
+ compatible = "ina219";
+ shunt-resistor = <40000>;
+ reg = <0x40>;
+ };
+
+ eeprom@56 {
+ compatible = "atmel,24c64";
+ pagesize = <32>;
+ reg = <0x56>;
+ read-only;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ mac_address: mac-address@66 {
+ reg = <0x66 0x6>;
+ };
+ };
+};
+
+&gsbi6 {
+ qcom,mode = <GSBI_PROT_I2C>;
+ status = "okay";
+};
+
+&gsbi6_i2c {
+ status = "okay";
+
+ pinctrl-0 = <&i2c1_pins>;
+ pinctrl-names = "default";
+
+ tlc591xx@40 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "ti,tlc59108";
+ reg = <0x40>;
+
+ red@0 {
+ label = "red:user";
+ reg = <0x0>;
+ };
+
+ green@1 {
+ label = "green:user";
+ reg = <0x1>;
+ };
+
+ blue@2 {
+ label = "blue:user";
+ reg = <0x2>;
+ };
+ };
+};
+
+&mdio0 {
+ status = "okay";
+
+ pinctrl-0 = <&mdio0_pins_active>, <&phy_active>;
+ pinctrl-names = "default";
+
+ phy2: ethernet-phy2 {
+ reg = <2>;
+
+ reset-gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <24000>;
+
+ eee-broken-100tx;
+ eee-broken-1000t;
+ };
+};
+
+&qcom_pinmux {
+ i2c0_pins: i2c0_pins {
+ mux {
+ pins = "gpio24", "gpio25";
+ function = "gsbi2";
+ drive-strength = <2>;
+ bias-pull-up;
+ input;
+ };
+ };
+
+ button_pins: button_pins {
+ mux {
+ pins = "gpio26";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ i2c1_pins: i2c1_pins {
+ mux {
+ pins = "gpio29", "gpio30";
+ function = "gsbi6";
+ drive-strength = <2>;
+ bias-pull-up;
+ input;
+ };
+ };
+
+ led_pins: led_pins {
+ mux {
+ pins = "gpio31", "gpio32";
+ function = "gpio";
+ drive-strength = <12>;
+ bias-pull-down;
+ output-low;
+ };
+ };
+};
+
+&wifi0 {
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <1>;
+};
+
+&wifi1 {
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <2>;
+};
+
+&wifi2 {
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <3>;
+};
diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr52.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr52.dts
new file mode 100644
index 0000000000..e1c233254d
--- /dev/null
+++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-mr52.dts
@@ -0,0 +1,230 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+
+#include "qcom-ipq8068-cryptid-common.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "Meraki MR52";
+ compatible = "meraki,mr52", "qcom,ipq8064";
+
+ aliases {
+ serial1 = &gsbi1_serial;
+ mdio-gpio0 = &mdio_gpio0;
+ ethernet0 = &gmac2;
+ ethernet1 = &gmac3;
+
+ led-boot = &led_active;
+ led-failsafe = &led_power;
+ led-running = &led_active;
+ led-upgrade = &led_active;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&button_pins>;
+ pinctrl-names = "default";
+
+ reset {
+ label = "reset";
+ gpios = <&qcom_pinmux 25 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ debounce-interval = <60>;
+ wakeup-source;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&led_pins>;
+ pinctrl-names = "default";
+
+ led_power: power {
+ label = "orange:power";
+ gpios = <&qcom_pinmux 19 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan2_green {
+ label = "green:lan2";
+ gpios = <&qcom_pinmux 23 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan1_green {
+ label = "green:lan1";
+ gpios = <&qcom_pinmux 24 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_active: active {
+ label = "white:active";
+ gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>;
+ };
+
+ lan2_orange {
+ label = "orange:lan2";
+ gpios = <&qcom_pinmux 60 GPIO_ACTIVE_HIGH>;
+ };
+
+ lan1_orange {
+ label = "orange:lan1";
+ gpios = <&qcom_pinmux 62 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&gmac2 {
+ status = "okay";
+
+ qcom,id = <2>;
+ mdiobus = <&mdio0>;
+
+ phy-mode = "sgmii";
+ phy-handle = <&phy0>;
+
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+};
+
+&gmac3 {
+ status = "okay";
+
+ qcom,id = <3>;
+ mdiobus = <&mdio_gpio0>;
+
+ phy-mode = "sgmii";
+ phy-handle = <&phy4>;
+
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <1>;
+};
+
+&gsbi7 {
+ status = "okay";
+ qcom,mode = <GSBI_PROT_I2C>;
+};
+
+&gsbi7_i2c {
+ status = "okay";
+
+ pinctrl-0 = <&i2c_pins>;
+ pinctrl-names = "default";
+
+ ina2xx@45 {
+ compatible = "ina219";
+ shunt-resistor = <80000>;
+ reg = <0x45>;
+ };
+
+ tlc591xx@49 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "ti,tlc59108";
+ reg = <0x49>;
+
+ red@0 {
+ label = "red:user";
+ reg = <0x0>;
+ };
+
+ green@1 {
+ label = "green:user";
+ reg = <0x1>;
+ };
+
+ blue@2 {
+ label = "blue:user";
+ reg = <0x2>;
+ };
+ };
+
+ eeprom@52 {
+ compatible = "atmel,24c64";
+ pagesize = <32>;
+ reg = <0x52>;
+ read-only;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ mac_address: mac-address@66 {
+ reg = <0x66 0x6>;
+ };
+ };
+};
+
+&qcom_pinmux {
+ i2c_pins: i2c_pins {
+ mux {
+ pins = "gpio8", "gpio9";
+ function = "gsbi7";
+ drive-strength = <2>;
+ bias-pull-up;
+ input;
+ };
+ };
+
+ led_pins: led_pins {
+ mux {
+ pins = "gpio19", "gpio26";
+ function = "gpio";
+ drive-strength = <12>;
+ bias-pull-down;
+ output-low;
+ };
+ };
+
+ button_pins: button_pins {
+ mux {
+ pins = "gpio25";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ input;
+ };
+ };
+};
+
+&soc {
+ mdio_gpio0: mdio {
+ compatible = "virtual,mdio-gpio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "okay";
+
+ pinctrl-0 = <&mdio0_pins_active>, <&phy_active>;
+ pinctrl-names = "default";
+
+ gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH
+ &qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
+
+ phy0: ethernet-phy0 {
+ reg = <0>;
+ reset-gpios = <&qcom_pinmux 7 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <24000>;
+ };
+
+ phy4: ethernet-phy4 {
+ reg = <4>;
+ reset-gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <24000>;
+ };
+ };
+};
+
+&wifi0 {
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <4>;
+};
+
+&wifi1 {
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <3>;
+};
+
+&wifi2 {
+ nvmem-cells = <&mac_address>;
+ nvmem-cell-names = "mac-address";
+ mac-address-increment = <2>;
+};
diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile
index acb95347bf..fc0080cf84 100644
--- a/target/linux/ipq806x/image/Makefile
+++ b/target/linux/ipq806x/image/Makefile
@@ -192,6 +192,41 @@ define Device/linksys_ea8500
endef
TARGET_DEVICES += linksys_ea8500
+define Device/meraki_mr42
+ $(call Device/FitImage)
+ DEVICE_VENDOR := Cisco Meraki
+ DEVICE_MODEL := MR42
+ SOC := qcom-ipq8068
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ KERNEL_LOADADDR = 0x44208000
+ DEVICE_PACKAGES := -swconfig -kmod-ata-ahci -kmod-ata-ahci-platform \
+ -kmod-usb-ohci -kmod-usb2 -kmod-usb-ledtrig-usbport \
+ -kmod-phy-qcom-ipq806x-usb -kmod-usb3 -kmod-usb-dwc3-qcom \
+ -uboot-envtools ath10k-firmware-qca9887-ct \
+ ath10k-firmware-qca99x0-ct kmod-eeprom-at24 kmod-hwmon-ina2xx \
+ kmod-leds-tlc591xx
+endef
+TARGET_DEVICES += meraki_mr42
+
+define Device/meraki_mr52
+ $(call Device/FitImage)
+ DEVICE_VENDOR := Cisco Meraki
+ DEVICE_MODEL := MR52
+ SOC := qcom-ipq8068
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ KERNEL_LOADADDR = 0x44208000
+ DEVICE_DTS_CONFIG := config@2
+ DEVICE_PACKAGES := -swconfig -kmod-ata-ahci -kmod-ata-ahci-platform \
+ -kmod-usb-ohci -kmod-usb2 -kmod-usb-ledtrig-usbport \
+ -kmod-phy-qcom-ipq806x-usb -kmod-usb3 -kmod-usb-dwc3-qcom \
+ -uboot-envtools ath10k-firmware-qca9887-ct \
+ ath10k-firmware-qca9984-ct kmod-eeprom-at24 kmod-hwmon-ina2xx \
+ kmod-leds-tlc591xx
+endef
+TARGET_DEVICES += meraki_mr52
+
define Device/nec_wg2600hp
$(call Device/LegacyImage)
DEVICE_VENDOR := NEC
diff --git a/target/linux/ipq806x/patches-5.10/0069-arm-boot-add-dts-files.patch b/target/linux/ipq806x/patches-5.10/0069-arm-boot-add-dts-files.patch
index ca43a759ef..49ff218040 100644
--- a/target/linux/ipq806x/patches-5.10/0069-arm-boot-add-dts-files.patch
+++ b/target/linux/ipq806x/patches-5.10/0069-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
-@@ -907,8 +907,27 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -907,8 +907,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq4019-ap.dk04.1-c3.dtb \
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
@@ -35,6 +35,8 @@ Signed-off-by: John Crispin <john@phrozen.org>
+ qcom-ipq8065-rt4230w-rev6.dtb \
+ qcom-ipq8065-xr500.dtb \
+ qcom-ipq8068-ecw5410.dtb \
++ qcom-ipq8068-mr42.dtb \
++ qcom-ipq8068-mr52.dtb \
qcom-msm8660-surf.dtb \
qcom-msm8960-cdp.dtb \
qcom-msm8974-fairphone-fp2.dtb \