forked from Openwrt/openwrt
872fe7e9f9
Some APIs have been changed. Porting them to the new kernel 6.6 version to fix the compile error. Removed upstreamed: 010-v6.4-gpio-ath79-Convert-to-immutable-irq_chip.patch[1] Manually rebased: 700-phy-add-ath79-usb-phys.patch 721-phy-mdio-bitbang-prevent-rescheduling-during-command.patch. ref:[2] [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=b11ce7e48121a02ceedec9f4dfcab4f2bee8f35f [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=002dd3de097c778a74ae9e47e598bea6ad055af0 Signed-off-by: Shiji Yang <yangshiji66@qq.com>
97 lines
3.6 KiB
Diff
97 lines
3.6 KiB
Diff
From: Denis Kalashnikov <denis281089@gmail.com>
|
|
Subject: [PATCH] ath79: add support for reset key on MikroTik RB912UAG-2HPnD
|
|
|
|
On MikroTik RB91x board series a reset key shares SoC gpio
|
|
line #15 with NAND ALE and NAND IO7. So we need a custom
|
|
gpio driver to manage this non-trivial connection schema.
|
|
Also rb91x-nand needs to have an ability to disable a polling
|
|
of the key while it works with NAND.
|
|
|
|
While we've been integrating rb91x-key into a firmware, we've
|
|
figured out that:
|
|
* In the gpio-latch driver we need to add a "cansleep" suffix to
|
|
several gpiolib calls,
|
|
* When gpio-latch and rb91x-nand fail to get a gpio and an error
|
|
is -EPROBE_DEFER, they shouldn't report about this, since this
|
|
actually is not an error and occurs when the gpio-latch probe
|
|
function is called before the rb91x-key probe.
|
|
We fix these related things here too.
|
|
|
|
Submitted-by: Denis Kalashnikov <denis281089@gmail.com>
|
|
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
|
|
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
|
|
---
|
|
drivers/gpio/Kconfig | 11 +++++++++++
|
|
drivers/gpio/Makefile | 2 ++
|
|
drivers/mtd/nand/raw/Kconfig | 6 ++++++
|
|
drivers/mtd/nand/raw/Makefile | 1 +
|
|
7 files changed, 20 insertions(+)
|
|
|
|
--- a/drivers/gpio/Kconfig
|
|
+++ b/drivers/gpio/Kconfig
|
|
@@ -371,6 +371,12 @@ config GPIO_IXP4XX
|
|
|
|
If unsure, say N.
|
|
|
|
+config GPIO_LATCH_MIKROTIK
|
|
+ tristate "MikroTik RouterBOARD GPIO latch support"
|
|
+ depends on ATH79
|
|
+ help
|
|
+ GPIO driver for latch on some MikroTik RouterBOARDs.
|
|
+
|
|
config GPIO_LOGICVC
|
|
tristate "Xylon LogiCVC GPIO support"
|
|
depends on MFD_SYSCON && OF
|
|
@@ -553,6 +559,10 @@ config GPIO_ROCKCHIP
|
|
help
|
|
Say yes here to support GPIO on Rockchip SoCs.
|
|
|
|
+config GPIO_RB91X_KEY
|
|
+ tristate "MikroTik RB91x board series reset key support"
|
|
+ depends on ATH79
|
|
+
|
|
config GPIO_SAMA5D2_PIOBU
|
|
tristate "SAMA5D2 PIOBU GPIO support"
|
|
depends on MFD_SYSCON
|
|
--- a/drivers/gpio/Makefile
|
|
+++ b/drivers/gpio/Makefile
|
|
@@ -81,6 +81,7 @@ obj-$(CONFIG_GPIO_IXP4XX) += gpio-ixp4x
|
|
obj-$(CONFIG_GPIO_JANZ_TTL) += gpio-janz-ttl.o
|
|
obj-$(CONFIG_GPIO_KEMPLD) += gpio-kempld.o
|
|
obj-$(CONFIG_GPIO_LATCH) += gpio-latch.o
|
|
+obj-$(CONFIG_GPIO_LATCH_MIKROTIK) += gpio-latch-mikrotik.o
|
|
obj-$(CONFIG_GPIO_LJCA) += gpio-ljca.o
|
|
obj-$(CONFIG_GPIO_LOGICVC) += gpio-logicvc.o
|
|
obj-$(CONFIG_GPIO_LOONGSON1) += gpio-loongson1.o
|
|
@@ -132,6 +133,7 @@ obj-$(CONFIG_GPIO_PMIC_EIC_SPRD) += gpio
|
|
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_RB91X_KEY) += gpio-rb91x-key.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
|
|
@@ -558,4 +558,10 @@ config MTD_NAND_RB4XX
|
|
Enables support for the NAND flash chip on Mikrotik Routerboard
|
|
RB4xx series.
|
|
|
|
+config MTD_NAND_RB91X
|
|
+ tristate "MikroTik RB91x NAND driver support"
|
|
+ depends on ATH79 && MTD_RAW_NAND
|
|
+ help
|
|
+ Enables support for the NAND flash chip on MikroTik RB91x series.
|
|
+
|
|
endif # MTD_RAW_NAND
|
|
--- a/drivers/mtd/nand/raw/Makefile
|
|
+++ b/drivers/mtd/nand/raw/Makefile
|
|
@@ -59,6 +59,7 @@ obj-$(CONFIG_MTD_NAND_PL35X) += pl35x-n
|
|
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
|
|
+obj-$(CONFIG_MTD_NAND_RB91X) += rb91x_nand.o
|
|
|
|
nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o
|
|
nand-objs += nand_onfi.o
|