diff --git a/patches/openwrt/0004-ath79-add-support-for-TPlink-EAP-225ODv3.patch b/patches/openwrt/0004-ath79-add-support-for-TPlink-EAP-225ODv3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4cb47e2afb708de61a2967727e1ddd953a8233da
--- /dev/null
+++ b/patches/openwrt/0004-ath79-add-support-for-TPlink-EAP-225ODv3.patch
@@ -0,0 +1,189 @@
+From ee5008bb84549f63123e7a7d8f917e50806b8f10 Mon Sep 17 00:00:00 2001
+From: Paul Maruhn <paulmaruhn@posteo.de>
+Date: Tue, 22 Mar 2022 21:06:42 +0100
+Subject: [PATCH] ath79: support for TP-Link EAP225-Outdoor v3
+
+This model is almost identical to the EAP225-Outdoor v1.
+Major difference is the RTL8211fs PHY Chipset.
+
+Signed-off-by: Philipp Rothmann <philipprothmann@posteo.de>
+---
+ target/linux/ath79/config-5.10                |  1 +
+ .../dts/qca9563_tplink_eap225-outdoor-v3.dts  | 92 +++++++++++++++++++
+ .../dts/qca9563_tplink_eap2x5-1port.dtsi      |  5 +
+ .../generic/base-files/etc/board.d/02_network |  1 +
+ .../etc/hotplug.d/firmware/11-ath10k-caldata  |  1 +
+ target/linux/ath79/image/generic-tp-link.mk   | 11 +++
+ 6 files changed, 111 insertions(+)
+ create mode 100644 target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
+
+diff --git a/target/linux/ath79/config-5.10 b/target/linux/ath79/config-5.10
+index 53f444c68b2b0..0533f6c40c8a5 100644
+--- a/target/linux/ath79/config-5.10
++++ b/target/linux/ath79/config-5.10
+@@ -200,3 +200,4 @@ CONFIG_TICK_CPU_ACCOUNTING=y
+ CONFIG_TINY_SRCU=y
+ CONFIG_USB_SUPPORT=y
+ CONFIG_USE_OF=y
++CONFIG_REALTEK_PHY=y
+diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
+new file mode 100644
+index 0000000000000..94ea216922b38
+--- /dev/null
++++ b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
+@@ -0,0 +1,92 @@
++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
++
++#include "qca9563_tplink_eap2x5-1port.dtsi"
++
++/ {
++	compatible = "tplink,eap225-outdoor-v3", "qca,qca9563";
++	model = "TP-Link EAP225-Outdoor v3";
++
++	aliases {
++		led-boot = &led_status_green;
++		led-failsafe = &led_status_amber;
++		led-running = &led_status_green;
++		led-upgrade = &led_status_amber;
++	};
++
++	leds {
++		compatible = "gpio-leds";
++
++		led_status_green: status_green {
++			label = "green:status";
++			gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
++			default-state = "on";
++		};
++
++		led_status_amber: status_amber {
++			label = "amber:status";
++			gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
++		};
++	};
++};
++
++&eth0 {
++	phy-handle = <&phy6>;
++};
++
++&spi {
++	status = "okay";
++
++	flash@0 {
++		compatible = "jedec,spi-nor";
++		reg = <0>;
++		spi-max-frequency = <25000000>;
++
++		partitions {
++			compatible = "fixed-partitions";
++			#address-cells = <1>;
++			#size-cells = <1>;
++
++			partition@0 {
++				label = "u-boot";
++				reg = <0x000000 0x020000>;
++				read-only;
++			};
++
++			partition@20000 {
++				label = "partition-table";
++				reg = <0x020000 0x010000>;
++				read-only;
++			};
++
++			info: partition@30000 {
++				label = "info";
++				reg = <0x030000 0x010000>;
++				read-only;
++			};
++
++			partition@40000 {
++				compatible = "openwrt,elf";
++				label = "firmware";
++				reg = <0x040000 0xec0000>;
++			};
++
++			partition@f00000 {
++				label = "config";
++				reg = <0xf00000 0x030000>;
++				read-only;
++			};
++
++			partition@f30000 {
++				label = "log";
++				reg = <0xf30000 0x0c0000>;
++				read-only;
++			};
++
++			art: partition@ff0000 {
++				label = "art";
++				reg = <0xff0000 0x010000>;
++				read-only;
++			};
++		};
++	};
++};
+diff --git a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
+index e10c5dbb73937..127741f64430c 100644
+--- a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
++++ b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
+@@ -105,6 +105,11 @@
+ 		reg = <4>;
+ 		reset-gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ 	};
++
++	phy6: ethernet-phy@6 {
++		reg = <6>;
++		
++	};
+ };
+ 
+ &eth0 {
+diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
+index 03e6434422b09..1b8e94efea315 100644
+--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
++++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
+@@ -71,6 +71,7 @@ ath79_setup_interfaces()
+ 	tplink,cpe610-v2|\
+ 	tplink,cpe710-v1|\
+ 	tplink,eap225-outdoor-v1|\
++	tplink,eap225-outdoor-v3|\
+ 	tplink,eap225-v1|\
+ 	tplink,eap225-v3|\
+ 	tplink,eap245-v1|\
+diff --git a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+index 17121d961868f..687239741eba0 100644
+--- a/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
++++ b/target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+@@ -249,6 +249,7 @@ case "$FIRMWARE" in
+ 			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
+ 		;;
+ 	tplink,eap225-outdoor-v1|\
++	tplink,eap225-outdoor-v3|\
+ 	tplink,eap225-v3|\
+ 	tplink,eap225-wall-v2)
+ 		caldata_extract "art" 0x5000 0x2f20
+diff --git a/target/linux/ath79/image/generic-tp-link.mk b/target/linux/ath79/image/generic-tp-link.mk
+index 6479f6e26a852..27af64510b790 100644
+--- a/target/linux/ath79/image/generic-tp-link.mk
++++ b/target/linux/ath79/image/generic-tp-link.mk
+@@ -401,6 +401,17 @@ define Device/tplink_eap225-outdoor-v1
+ endef
+ TARGET_DEVICES += tplink_eap225-outdoor-v1
+ 
++define Device/tplink_eap225-outdoor-v3
++  $(Device/tplink-eap2x5)
++  SOC := qca9563
++  IMAGE_SIZE := 13824k
++  DEVICE_MODEL := EAP225-Outdoor
++  DEVICE_VARIANT := v3
++  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
++  TPLINK_BOARD_ID := EAP225-V3
++endef
++TARGET_DEVICES += tplink_eap225-outdoor-v3
++
+ define Device/tplink_eap225-v1
+   $(Device/tplink-eap2x5)
+   SOC := qca9563
+
diff --git a/targets/ath79-generic b/targets/ath79-generic
index ac11f7d41ee3111e49e2eb2494249cecd0d604e2..ca7da1774e4ee7c6751be89fa6a87c7752e9229f 100644
--- a/targets/ath79-generic
+++ b/targets/ath79-generic
@@ -392,6 +392,10 @@ device('tp-link-eap225-outdoor-v1', 'tplink_eap225-outdoor-v1', {
 	packages = ATH10K_PACKAGES_QCA9888,
 })
 
+device('tp-link-eap225-outdoor-v3', 'tplink_eap225-outdoor-v3', {
+	packages = ATH10K_PACKAGES_QCA9888,
+})
+
 device('tp-link-tl-wdr3500-v1', 'tplink_tl-wdr3500-v1')
 device('tp-link-tl-wdr3600-v1', 'tplink_tl-wdr3600-v1')
 device('tp-link-tl-wdr4300-v1', 'tplink_tl-wdr4300-v1')