[PATCH v3 0/3] Migrate the PCIe-IDIO-24 and WS16C48 GPIO drivers to the regmap API

From: William Breathitt Gray
Date: Sun Mar 05 2023 - 12:01:54 EST


Changes in v3:
- Drop map from set_type_config() parameter list; regmap can be passed
by irq_drv_data instead
- Adjust ws16c48_set_type_config() for parameter list
- Add mutex to prevent clobbering the COS_ENABLE register when masking
IRQ and setting their type configuration
Changes in v2:
- Simplify PCIe-IDIO-24 register offset defines to remove superfluous
arithmetic
- Check for NULL pointer after chip->irq_drv_data allocation
- Set gpio_regmap drvdata and use gpio_regmap_get_drvdata() to get the
regmap in idio_24_reg_map_xlate()

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 irq_drv_data as a parameter for struct regmap_irq_chip
set_type_config() is included. This is needed by the
idio_24_set_type_config() and ws16c48_set_type_config() callbacks in
order to update the type configuration on their respective devices.

A patch to migrate the WS16C48 GPIO driver to the regmap API is included
in this patchset due to its dependence on the struct regmap_irq_chip
set_type_config() change.

William Breathitt Gray (3):
regmap: Pass irq_drv_data as a parameter for set_type_config()
gpio: pcie-idio-24: Migrate to the regmap API
gpio: ws16c48: Migrate to the regmap API

drivers/base/regmap/regmap-irq.c | 8 +-
drivers/gpio/Kconfig | 6 +
drivers/gpio/gpio-pcie-idio-24.c | 709 ++++++++++++-------------------
drivers/gpio/gpio-ws16c48.c | 566 +++++++++---------------
include/linux/regmap.h | 6 +-
5 files changed, 496 insertions(+), 799 deletions(-)


base-commit: 4827aae061337251bb91801b316157a78b845ec7
--
2.39.2