--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -157,6 +157,7 @@ enum ath79_mach_type {
 	ATH79_MACH_TL_WA901ND,		/* TP-LINK TL-WA901ND */
 	ATH79_MACH_TL_WA901ND_V2,	/* TP-LINK TL-WA901ND v2 */
 	ATH79_MACH_TL_WA901ND_V3,	/* TP-LINK TL-WA901ND v3 */
+	ATH79_MACH_TL_WA901ND_V4,	/* TP-LINK TL-WA901ND v4 */
 	ATH79_MACH_TL_WDR3500,		/* TP-LINK TL-WDR3500 */
 	ATH79_MACH_TL_WDR4300,		/* TP-LINK TL-WDR4300 */
 	ATH79_MACH_TL_WDR4900_V2,	/* TP-LINK TL-WDR4900 v2 */
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -1063,6 +1063,15 @@ config ATH79_MACH_TL_WA901ND_V2
 	select ATH79_DEV_M25P80
 	select ATH79_DEV_WMAC
 
+config ATH79_MACH_TL_WA901ND_V4
+	bool "TP-LINK TL-WA901ND v4 support"
+	select SOC_QCA956X
+	select ATH79_DEV_ETH
+	select ATH79_DEV_GPIO_BUTTONS
+	select ATH79_DEV_LEDS_GPIO
+	select ATH79_DEV_M25P80
+	select ATH79_DEV_WMAC
+
 config ATH79_MACH_TL_WDR3500
 	bool "TP-LINK TL-WDR3500 board support"
 	select SOC_AR934X
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -131,6 +131,7 @@ obj-$(CONFIG_ATH79_MACH_TL_WA7210N_V2)	+
 obj-$(CONFIG_ATH79_MACH_TL_WA830RE_V2)	+= mach-tl-wa830re-v2.o
 obj-$(CONFIG_ATH79_MACH_TL_WA901ND)	+= mach-tl-wa901nd.o
 obj-$(CONFIG_ATH79_MACH_TL_WA901ND_V2)	+= mach-tl-wa901nd-v2.o
+obj-$(CONFIG_ATH79_MACH_TL_WA901ND_V4)	+= mach-tl-wa901nd-v4.o
 obj-$(CONFIG_ATH79_MACH_TL_WDR3500)     += mach-tl-wdr3500.o
 obj-$(CONFIG_ATH79_MACH_TL_WDR4300)     += mach-tl-wdr4300.o
 obj-$(CONFIG_ATH79_MACH_TL_WR741ND)	+= mach-tl-wr741nd.o
