+define Device/tl-wr843nd-v1
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR843N/ND v1
+ BOARDNAME := TL-WR841N-v8
+ DEVICE_PROFILE := TLWR843
+ TPLINK_HWID := 0x08430001
+endef
+
+define Device/tl-wr847n-v8
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR847N/ND v8
+ BOARDNAME := TL-WR841N-v8
+ DEVICE_PROFILE := TLWR841
+ TPLINK_HWID := 0x08470008
+endef
+TARGET_DEVICES += tl-wr842n-v1 tl-wr842n-v2 tl-wr842n-v3 tl-wr843nd-v1 tl-wr847n-v8
+
+define Device/tl-wr902ac-v1
+ DEVICE_TITLE := TP-LINK TL-WR902AC v1
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport \
+ kmod-ath10k ath10k-firmware-qca9887 -swconfig -uboot-envtools
+ BOARDNAME := TL-WR902AC-V1
+ DEVICE_PROFILE := TLWR902
+ TPLINK_BOARD_ID := TL-WR902AC-V1
+ TPLINK_HWID := 0x0
+ TPLINK_HWREV := 0
+ TPLINK_HEADER_VERSION := 1
+ SUPPORTED_DEVICES := tl-wr902ac-v1
+ IMAGE_SIZE := 7360k
+ KERNEL := kernel-bin | patch-cmdline | lzma | tplink-v1-header
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
+ append-metadata | check-size $$$$(IMAGE_SIZE)
+ MTDPARTS := spi0.0:128k(u-boot)ro,7360k(firmware),640k(tplink)ro,64k(art)ro
+endef
+TARGET_DEVICES += tl-wr902ac-v1
+
+define Device/tl-wr940n-v4
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR940N v4
+ BOARDNAME := TL-WR940N-v4
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09400004
+ IMAGES += factory-us.bin factory-eu.bin
+ IMAGE/factory-us.bin := append-rootfs | mktplinkfw factory -C US
+ IMAGE/factory-eu.bin := append-rootfs | mktplinkfw factory -C EU
+endef
+
+define Device/tl-wr941nd-v2
+ $(Device/tplink-4m)
+ DEVICE_TITLE := TP-LINK TL-WR941N/ND v2
+ BOARDNAME := TL-WR941ND
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09410002
+ TPLINK_HWREV := 2
+endef
+
+define Device/tl-wr941nd-v3
+ $(Device/tl-wr941nd-v2)
+ DEVICE_TITLE := TP-LINK TL-WR941N/ND v3
+endef
+
+define Device/tl-wr941nd-v4
+ $(Device/tplink-4m)
+ DEVICE_TITLE := TP-LINK TL-WR941N/ND v4
+ BOARDNAME := TL-WR741ND
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09410004
+endef
+
+define Device/tl-wr941nd-v5
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR941N/ND v5
+ BOARDNAME := TL-WR941ND-v5
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09410005
+endef
+
+define Device/tl-wr941nd-v6
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR941N/ND v6
+ BOARDNAME := TL-WR941ND-v6
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09410006
+endef
+
+# Chinese version (unlike European) is similar to the TL-WDR3500
+define Device/tl-wr941nd-v6-cn
+ $(Device/tplink-4mlzma)
+ DEVICE_TITLE := TP-LINK TL-WR941N/ND v6 (CN)
+ BOARDNAME := TL-WDR3500
+ DEVICE_PROFILE := TLWR941
+ TPLINK_HWID := 0x09410006
+endef
+
+define Device/tl-wr942n-v1
+ DEVICE_TITLE := TP-LINK TL-WR942N v1
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+ BOARDNAME := TL-WR942N-V1
+ TPLINK_BOARD_ID := TLWR942NV1
+ DEVICE_PROFILE := TLWR942
+ IMAGE_SIZE := 14464k
+ KERNEL := kernel-bin | patch-cmdline | lzma | uImageArcher lzma
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin := append-rootfs | tplink-safeloader sysupgrade | \
+ append-metadata | check-size $$$$(IMAGE_SIZE)
+ IMAGE/factory.bin := append-rootfs | tplink-safeloader factory
+ MTDPARTS := spi0.0:128k(u-boot)ro,1344k(kernel),13120k(rootfs),64k(product-info)ro,64k(partition-table)ro,256k(oem-config)ro,1344k(oem-vars)ro,64k(ART)ro,14464k@0x20000(firmware)
+ SUPPORTED_DEVICES := tl-wr942n-v1
+endef
+TARGET_DEVICES += tl-wr940n-v4 tl-wr941nd-v2 tl-wr941nd-v3 tl-wr941nd-v4 tl-wr941nd-v5 tl-wr941nd-v6 tl-wr941nd-v6-cn tl-wr942n-v1