BTW do you have some experience where pca9538 or compatible cause errors when used for interrupts? Because I am thinking about trying to update the pca953x driver to support IRQs via the gpio_chip it registers, instead of a separate irq_chip.
I had a board which just died at boot with an interrupt storm. It was probably a PCA9554, at least, i have that datasheet in my collection.
First off, the hardware needs to designed correctly. All unused pins need a pull up/down since they default to inputs, and hence will trigger interrupts. Or you need to make unused pins outputs before you enable interrupts. And that probably goes against the design of the GPIO subsystem. I don't think you actually know when a pin is unused.
I'm not sure i would want to touch this driver. Given how badly this device implements interrupts, any board which does successfully use it for interrupts might regress if you make code changes. And then you are going to have to try to figure out what you actually changed and why it regressed.
Andrew