gpio-button-hotplug: convert to gpio descriptor (gpiod_) API
authorChristian Lamparter <chunkeey@gmail.com>
Thu, 5 Aug 2021 13:29:25 +0000 (15:29 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 5 Nov 2021 20:24:04 +0000 (21:24 +0100)
commit6fe4b7aa2b00b4e93871454e6a6fc41eb192c784
tree5893205c17c8c9f97a8428532730a277f7cb36ed
parent4607f55439c2a03154f71ba9d366cff8f52443d2
gpio-button-hotplug: convert to gpio descriptor (gpiod_) API

OpenWrt's special gpio-button-hotplug driver is still using
exclusively the legacy GPIO Subsystem gpio_ API.

While it still does work fine for most devices, upstream
linux is starting to convert platform support like that of
the APU2/3/4 to the new GPIOD LOOKUP tables that are not
supported by it.

Hence, this patch replaces the gpio_ calls present in
gpio-button-hotplug with gpiod_ equivalent wherever
it's possible. This allows the driver to use the
gpiod lookup tables and still have a fallback for
legacy platform data code that just sets button->gpio
set to the real button/switch GPIO.

As a bonus: the active_low logic is now being handled
by the linux's gpio subsystem too. Another issue that
was address is the of_handle leak in the dt parser
error path.

Tested with legacy platform data: x86_64: APU2, MX-100
Tested on OF: ATH79; MR18, APM821xx: Netgear WNDR4700,
      RAMIPS: WL-330N3G
      LANTIQ: AVM FritzBox 7360v1

Reported-by: Chris Blake <chrisrblake93@gmail.com>
Tested-by: Chris Blake <chrisrblake93@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit 2b0378cf9f3163bac29fa9946b3aa1607fc03802)
package/kernel/gpio-button-hotplug/src/gpio-button-hotplug.c