[PATCH 0/3] Migrate PCIe-IDIO-24 GPIO driver to the regmap API

From: William Breathitt Gray
Date: Tue Feb 28 2023 - 13:59:37 EST


The regmap API supports IO port accessors so we can take advantage of
regmap abstractions rather than handling access to the device registers
directly in the driver.

A patch to pass the device regmap and irq_drv_data as a parameters for
the struct regmap_irq_chip set_type_config() is included. This is needed
by idio_24_set_type_config() in order to update the type configuration
on the device as well as irq_drv_data for idio_24_handle_mask_sync().

A patch moving the struct gpio_regmap declaration to linux/gpio/regmap.h
is also included. This is needed by idio_24_reg_mask_xlate() in order to
determine the current offset's direction by using gpio->regmap in
regmap_read(). One point to consider is whether an alternative solution
is better of passing regmap in the reg_mask_xlate() parameter list; this
would avoid the need to include <linux/gpio/driver.h> in order to
resolve an incomplete type warning for struct gpio_chip due to the move.

William Breathitt Gray (3):
regmap: Pass regmap and irq_drv_data as parameters for
set_type_config()
gpio: gpio-regmap: Expose struct gpio_regmap in linux/gpio/regmap.h
gpio: pcie-idio-24: Migrate to the regmap API

drivers/base/regmap/regmap-irq.c | 13 +-
drivers/gpio/Kconfig | 3 +
drivers/gpio/gpio-pcie-idio-24.c | 697 ++++++++++++-------------------
drivers/gpio/gpio-regmap.c | 20 -
include/linux/gpio/regmap.h | 23 +-
include/linux/regmap.h | 12 +-
6 files changed, 303 insertions(+), 465 deletions(-)


base-commit: 4827aae061337251bb91801b316157a78b845ec7
--
2.39.2