This series is a split off of the sl28cpld series: https://lore.kernel.org/linux-gpio/20200423174543.17161-1-michael@xxxxxxxx/ I wasn't sure if I should also include the gpiochip_irqchip_add_domain() patch here. So feel free to skip it. OTOH if you use interrupts with gpio-regmap it is quite handy. For an actual user see the patch 11/16 ("gpio: add support for the sl28cpld GPIO controller") of the series above. Changes since v5: - add names property - addressed Alex' remarks: - moved header from i/l/gpio-regmap.h to i/l/gpio/regmap.h - fixed kernel doc - described rules how to use the register base offsets - missing forward declarations - style changes - return -EOPNOTSUPP, in code path we should never reach - added check to have input and output base regs if there is a direction register - added MAINTAINERS patch Changes since v4: - add comment about can_sleep - fix config->label typo - add config->names property Changes since v3: - set reg_dat_base, that was actually broken - fix typo - fix swapped reg_in_dir/reg_out_dir documentation - use "goto err" in error path in gpio_regmap_register() Michael Walle (3): gpiolib: Introduce gpiochip_irqchip_add_domain() gpio: add a reusable generic gpio_chip using regmap MAINTAINERS: Add gpio regmap section MAINTAINERS | 6 + drivers/gpio/Kconfig | 4 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-regmap.c | 349 ++++++++++++++++++++++++++++++++++++ drivers/gpio/gpiolib.c | 20 +++ include/linux/gpio/driver.h | 3 + include/linux/gpio/regmap.h | 86 +++++++++ 7 files changed, 469 insertions(+) create mode 100644 drivers/gpio/gpio-regmap.c create mode 100644 include/linux/gpio/regmap.h -- 2.20.1