ath79: add support for reset key on MikroTik RB912UAG-2HPnD
authorDenis Kalashnikov <denis281089@gmail.com>
Wed, 19 Jan 2022 10:25:05 +0000 (13:25 +0300)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Wed, 19 Jan 2022 15:40:12 +0000 (16:40 +0100)
commitec85e48a113514502563a06c5d0278a57a8b6b86
treec25f6fa403e8fa36adb342fa74aca77fe09e7ab7
parent522e414dcbe478fa150a49b743e15999026bf774
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.

Signed-off-by: Denis Kalashnikov <denis281089@gmail.com>
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
target/linux/ath79/config-5.10
target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts
target/linux/ath79/files/drivers/gpio/gpio-latch.c
target/linux/ath79/files/drivers/gpio/gpio-rb91x-key.c [new file with mode: 0644]
target/linux/ath79/files/drivers/mtd/nand/raw/rb91x_nand.c
target/linux/ath79/mikrotik/config-default
target/linux/ath79/patches-5.10/939-mikrotik-rb91x.patch