On Fri Jun 19, 2026 at 11:08 PM CEST, Linus Walleij wrote: > On Mon, Jun 8, 2026 at 4:41 PM Michael Walle wrote: > >> >>> Without an accessor like gpio_regmap_get_gpiochip(), we cannot retrieve the >> >>> gpio_chip instantiated inside gpio-regmap.c to fulfill these requirements in our >> >>> map() function. >> >> Why is gpiochip_irq_reqres() called in the first place? Isn't that >> only called if the irq handling is set up via gc->irq.chip and not >> via gpiochip_irqchip_add_domain() like in gpio-regmap? > > Not really, the gpiochip_irq_reqres() is called to mark that a > GPIO line is used for IRQ, so the gpiolib cannot turn this > GPIO into an output line, gpiod_direction_out() will fail > on lines used for IRQ. So it's a failsafe. > > You can live without it of course, but then you don't get > this failsafe. Thanks for the explanation! So did I make a mistake years ago by adding the gpiochip_irqchip_add_domain(), see commit 6a45b0e2589f ("gpiolib: Introduce gpiochip_irqchip_add_domain()") As Yu-Chun found, gpiochip_irq_reqres() expect the irq chip data to be a gpio_chip, which isn't the case (in general) for an externally allocated domain, is it? -michael