On Wed, May 27, 2015 at 5:26 AM, Gregory Fong <gregory.0xf0@xxxxxxxxx> wrote: > I've now actually attempted to use the gpiolib irqchip code. This > driver can't directly use gpiochip_irqchip_add() because of the > multiple gpiochip : one irqchip map. At first, I thought it might be > possible to simply add a new argument (or break things into a helper > function) to allow setting the associated IRQ domain, but then I can't > use the generic map and unmap functions which expect the irq_domain > host_data member to be struct gpiochip *, which makes no sense in this > case. That puts me right back to implementing a special version of > the map and unmap function. I see. I wonder if it is better to use one device per bank, and then set IRQF_SHARED when you issue request_irq(), and have the IRQ handler return IRQ_NONE if the IRQ comes from this bank, or IRQ_HANDLED if it has handled an IRQ from its own space. This way multiple banks can share a single interrupt line. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html