Changes in v2: - Utilize memset32() to set status_buf for no_status case - Utilize GENMASK() to generate status_buf mask - Move no_status kernel doc line under runtime_pm line - Add comma to end of idio_16_names initialization list - Set io_port to true in idio_16_regmap_config 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. The 104-idio-16 and pci-idio-16 modules depend on the IDIO-16 library and are thus updated accordingly. The 104-IDIO-16 lacks a status register (as does the 104-DIO-48E), so a no_status flag is introduced to the regmap-irq API to properly handle such cases and avoid hacks. The 104-dio-48e module is updated in a subsequent patch to take advantage of this new no_status flag. By leveraging the regmap API, the idio-16 library is reduced to simply a devm_idio_16_regmap_register() function and a configuration structure struct idio_16_regmap_config. William Breathitt Gray (6): regmap-irq: Add no_status support gpio: 104-dio-48e: Utilize no_status regmap-irq flag gpio: idio-16: Migrate to the regmap API gpio: 104-idio-16: Migrate to the regmap API gpio: pci-idio-16: Migrate to the regmap API gpio: idio-16: Remove unused legacy interface drivers/base/regmap/regmap-irq.c | 22 ++- drivers/gpio/Kconfig | 7 +- drivers/gpio/gpio-104-dio-48e.c | 6 +- drivers/gpio/gpio-104-idio-16.c | 294 ++++++++---------------------- drivers/gpio/gpio-idio-16.c | 255 ++++++++++++++------------ drivers/gpio/gpio-idio-16.h | 80 +++------ drivers/gpio/gpio-pci-idio-16.c | 296 +++++++------------------------ include/linux/regmap.h | 2 + 8 files changed, 326 insertions(+), 636 deletions(-) base-commit: 4827aae061337251bb91801b316157a78b845ec7 -- 2.39.2