ath79: rename patches directory and kernel config from 6.1 to 6.6
[openwrt/openwrt.git] / target / linux / ath79 / patches-6.6 / 910-mikrotik-rb4xx.patch
diff --git a/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch b/target/linux/ath79/patches-6.6/910-mikrotik-rb4xx.patch
new file mode 100644 (file)
index 0000000..536d7ab
--- /dev/null
@@ -0,0 +1,121 @@
+From: Christopher Hill <ch6574@gmail.com>
+Subject: [PATCH] ath79: add Mikrotik rb4xx series drivers
+
+This adds 3 Mikrotik rb4xx series drivers as follows:
+
+rb4xx-cpld: This is in the mfd subsystem, and is the parent CPLD device
+that interfaces between the SoC SPI bus and its two children below.
+rb4xx-gpio: This is the GPIO expander.
+rb4xx-nand: This is the NAND driver.
+
+The history of this code comes in three phases.
+
+1. The first is a May 2015 attempt to push the equivalient ar71xx rb4xx
+drivers upstream. See https://lore.kernel.org/patchwork/patch/940880/.
+
+Module-author: Gabor Juhos <juhosg@openwrt.org>
+Module-author: Imre Kaloz <kaloz@openwrt.org>
+Module-author: Bert Vermeulen <bert@biot.com>
+
+2. Next several ar71xx patches were applied bringing the code current.
+
+commit 7bbf4117c6fe4b764d9d7c62fb2bcf6dd93bff2c
+Submitted-by: Hauke Mehrtens <hauke@hauke-m.de>
+
+commit af79fdbe4af32a287798b579141204bda056b8aa
+commit 889272d92db689fd9c910243635e44c9d8323095
+commit e21cb649a235180563363b8af5ba8296b9ac0baa
+commit 7c09fa4a7492ca436f2c94bd9a465b7c5bbeed6f
+Submitted-by: Felix Fietkau <nbd@nbd.name>
+
+3. Finally a heavy refactor to split the driver into the three new
+subsystems, and updated to work with the device tree configuration, plus
+updates and review feedback incorporated
+
+Reviewed-by: Thibaut VARĂˆNE <hacks@slashdirt.org>
+Submitted-by: Christopher Hill <ch6574@gmail.com>
+---
+ drivers/mfd/Kconfig                           | 8 ++++++++
+ drivers/mfd/Makefile                          | 1 +
+ drivers/gpio/Kconfig                          | 6 ++++++
+ drivers/gpio/Makefile                         | 1 +
+ drivers/mtd/nand/raw/Kconfig                  | 7 +++++++
+ drivers/mtd/nand/raw/Makefile                 | 1 +
+ 6 files changed, 24 insertions(+)
+
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -2209,6 +2209,14 @@ 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.
++
+ config SGI_MFD_IOC3
+       bool "SGI IOC3 core driver"
+       depends on PCI && MIPS && 64BIT
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -269,6 +269,7 @@ obj-$(CONFIG_MFD_KHADAS_MCU)       += khadas-
+ obj-$(CONFIG_MFD_ACER_A500_EC)        += acer-ec-a500.o
+ obj-$(CONFIG_MFD_QCOM_PM8008) += qcom-pm8008.o
++obj-$(CONFIG_MFD_RB4XX_CPLD)  += rb4xx-cpld.o
+ obj-$(CONFIG_SGI_MFD_IOC3)    += ioc3.o
+ obj-$(CONFIG_MFD_SIMPLE_MFD_I2C)      += simple-mfd-i2c.o
+ obj-$(CONFIG_MFD_INTEL_M10_BMC)   += intel-m10-bmc.o
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -1594,6 +1594,12 @@ config GPIO_SODAVILLE
+       help
+         Say Y here to support Intel Sodaville GPIO.
++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 "SPI GPIO expanders"
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -123,6 +123,7 @@ obj-$(CONFIG_GPIO_PL061)           += gpio-pl061.
+ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD)      += gpio-pmic-eic-sprd.o
+ obj-$(CONFIG_GPIO_PXA)                        += gpio-pxa.o
+ obj-$(CONFIG_GPIO_RASPBERRYPI_EXP)    += gpio-raspberrypi-exp.o
++obj-$(CONFIG_GPIO_RB4XX)              += gpio-rb4xx.o
+ obj-$(CONFIG_GPIO_RC5T583)            += gpio-rc5t583.o
+ obj-$(CONFIG_GPIO_RCAR)                       += gpio-rcar.o
+ obj-$(CONFIG_GPIO_RDA)                        += gpio-rda.o
+--- a/drivers/mtd/nand/raw/Kconfig
++++ b/drivers/mtd/nand/raw/Kconfig
+@@ -565,4 +565,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_RAW_NAND
+--- a/drivers/mtd/nand/raw/Makefile
++++ b/drivers/mtd/nand/raw/Makefile
+@@ -60,6 +60,7 @@ obj-$(CONFIG_MTD_NAND_ROCKCHIP)              += rock
+ obj-$(CONFIG_MTD_NAND_PL35X)          += pl35x-nand-controller.o
+ obj-$(CONFIG_MTD_NAND_RENESAS)                += renesas-nand-controller.o
+ obj-$(CONFIG_MTD_NAND_AR934X)         += ar934x_nand.o
++obj-$(CONFIG_MTD_NAND_RB4XX)          += nand_rb4xx.o
+ nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o
+ nand-objs += nand_onfi.o