--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1899,5 +1899,13 @@ config RAVE_SP_CORE
 	  Select this to get support for the Supervisory Processor
 	  device found on several devices in RAVE line of hardware.
 
+config MFD_RB4XX_CPLD
+	tristate "CPLD driver for Mikrotik RB4xx series boards
+	select MFD_CORE
+	depends on ATH79 || COMPILE_TEST
+	help
+	  Enables support for the CPLD chip (NAND & GPIO) on Mikrotik
+	  Routerboard RB4xx series.
+
 endmenu
 endif
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -241,3 +241,4 @@ obj-$(CONFIG_MFD_SC27XX_PMIC)	+= sprd-sc
 obj-$(CONFIG_RAVE_SP_CORE)	+= rave-sp.o
 obj-$(CONFIG_MFD_ROHM_BD718XX)	+= rohm-bd718x7.o
 
+obj-$(CONFIG_MFD_RB4XX_CPLD)	+= rb4xx-cpld.o
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -1371,6 +1371,12 @@ config GPIO_XRA1403
 	help
 	  GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
 
+config GPIO_RB4XX
+	tristate "GPIO expander for Mikrotik RB4xx series boards"
+	depends on MFD_RB4XX_CPLD
+	help
+	  GPIO driver for Mikrotik Routerboard RB4xx series.
+
 endmenu
 
 menu "USB GPIO expanders"
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -159,3 +159,4 @@ obj-$(CONFIG_GPIO_ZEVIO)	+= gpio-zevio.o
 obj-$(CONFIG_GPIO_ZYNQ)		+= gpio-zynq.o
 obj-$(CONFIG_GPIO_ZX)		+= gpio-zx.o
 obj-$(CONFIG_GPIO_LOONGSON1)	+= gpio-loongson1.o
+obj-$(CONFIG_GPIO_RB4XX)	+= gpio-rb4xx.o
--- a/drivers/mtd/nand/raw/Kconfig
+++ b/drivers/mtd/nand/raw/Kconfig
@@ -569,4 +569,11 @@ config MTD_NAND_AR934X
 	  Enables support for NAND controller on Qualcomm Atheros SoCs.
 	  This controller is found on AR934x and QCA955x SoCs.
 
+config MTD_NAND_RB4XX
+	tristate "Support for NAND driver for Mikrotik RB4xx series boards"
+	depends on MFD_RB4XX_CPLD
+	help
+	  Enables support for the NAND flash chip on Mikrotik Routerboard
+	  RB4xx series.
+
 endif # MTD_NAND
--- a/drivers/mtd/nand/raw/Makefile
+++ b/drivers/mtd/nand/raw/Makefile
@@ -58,6 +58,7 @@ obj-$(CONFIG_MTD_NAND_QCOM)		+= qcom_nan
 obj-$(CONFIG_MTD_NAND_MTK)		+= mtk_ecc.o mtk_nand.o
 obj-$(CONFIG_MTD_NAND_TEGRA)		+= tegra_nand.o
 obj-$(CONFIG_MTD_NAND_AR934X)		+= ar934x_nand.o
+obj-$(CONFIG_MTD_NAND_RB4XX)		+= nand_rb4xx.o
 
 nand-objs := nand_base.o nand_bbt.o nand_timings.o nand_ids.o
 nand-objs += nand_amd.o
