This is the ordering fix for GPIO <-> pin mapping registration to allow delegation of IRQ chip to the GPIO library. Two drivers are actually converted to use the new callback followed by switching to use of irqchip structure inside gpiochip. The series has been tested on Merrifield device (though no AEI) and on Thinkpad 10 where 4 events are registered, one of which has reasonable amount of interrupts coming from battery. First two patches are definitely good for v5.4 cycle (and have Fixes tag) while the rest can be applied for v5.5 if I didn't miss anything. So, they can go like patches 1-3 -> v5.4 (gpio/fixes) and to gpio/for-next and to pinctrl/for-next patches 4-5 -> v5.5 (gpio/for-next) patches 6-7 -> v5.5 (pinctrl/for-next) Perhaps it would require to wait next v5.4 rc in order to avoid dependency issues. Changelog v2 (resent): - fixed cover letter - resent with ML included Changelog v2: - added fixes tag to the first patch - reworked commit message for the second patch - added baytrail conversion - tested on ThinkPad 10 Andy Shevchenko (6): gpiolib: No need to call gpiochip_remove_pin_ranges() twice gpiolib: Introduce ->add_pin_ranges() callback gpio: merrifield: Add GPIO <-> pin mapping ranges via callback gpio: merrifield: Pass irqchip when adding gpiochip pinctrl: baytrail: Add GPIO <-> pin mapping ranges via callback pinctrl: baytrail: Pass irqchip when adding gpiochip Linus Walleij (1): gpiolib: Switch order of valid mask and hw init drivers/gpio/gpio-merrifield.c | 76 ++++++++++++++---------- drivers/gpio/gpiolib-of.c | 5 +- drivers/gpio/gpiolib.c | 19 +++++- drivers/pinctrl/intel/pinctrl-baytrail.c | 64 ++++++++++++-------- include/linux/gpio/driver.h | 5 ++ 5 files changed, 107 insertions(+), 62 deletions(-) -- 2.24.0.rc1