Michael Walle <michael@xxxxxxxx> writes: > This connects an IRQ domain to a gpiochip and reuses > gpiochip_to_irq(). A little bit more context and explanation why this function is useful would be appreciated. > Signed-off-by: Michael Walle <michael@xxxxxxxx> > --- > drivers/gpio/gpiolib.c | 20 ++++++++++++++++++++ > include/linux/gpio/driver.h | 3 +++ > 2 files changed, 23 insertions(+) > > diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c > index 40f2d7f69be2..7b3d7f496b9a 100644 > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -2722,6 +2722,26 @@ int gpiochip_irqchip_add_key(struct gpio_chip *gc, > } > EXPORT_SYMBOL_GPL(gpiochip_irqchip_add_key); > > +/** > + * gpiochip_irqchip_add_key() - adds an irqdomain to a gpiochip Copy & paste is wonderful > + * @gc: the gpiochip to add the irqchip to > + * @domain: the irqdomain to add to the gpiochip > + * > + * This function adds an IRQ domain to the gpiochip. > + */ > +int gpiochip_irqchip_add_domain(struct gpio_chip *gc, > + struct irq_domain *domain) > +{ > + if (!domain) > + return -EINVAL; > + > + gc->to_irq = gpiochip_to_irq; > + gc->irq.domain = domain; > + > + return 0; > +} Thanks, tglx