Andy Shevchenko <andy.shevchenko@xxxxxxxxx> writes: > On Sun, Jul 3, 2022 at 1:11 PM Aidan MacDonald > <aidanmacdonald.0x0@xxxxxxxxx> wrote: >> >> Some GPIO chips require a custom to_irq() callback for mapping >> their IRQs, eg. because their interrupts come from a parent IRQ >> chip where the GPIO offset doesn't map 1-to-1 with hwirq number. > > Don't they follow a hierarchical IRQ domain in that case? > > And to be honest after the commit ef38237444ce ("gpiolib: add a > warning on gpiochip->to_irq defined") I have no idea how it works in > your case and also I feel this patch is a wrong direction of > development. My own use case is an MFD device with a shared IRQ chip that is used by other sub-drivers. This is a very common case that seems to map onto ->to_irq() cleanly. Do we really need an IRQ domain? What you're suggesting would be a 1-to-1 mapping from GPIO offset to hwirq number in a virtual domain, then remapping to the real hwirq number, which seems unnecessarily complicated when we can just change the GPIO offset -> hwirq mapping. The commit you mentioned is warning users of GPIOLIB_IRQCHIP when a custom ->to_irq() method is overridden. That's not relevant here. Using an IRQ domain also overrides ->to_irq() so I included a check in this patch to ensure gpio-regmap chips are well-behaved.