On Fri, Apr 26, 2013 at 11:25 PM, Jon Hunter <jon-hunter@xxxxxx> wrote: > On 04/26/2013 02:27 AM, Linus Walleij wrote: >> You will just have to give the xlate function information about which >> GPIOs are used as IRQs only, and only request the GPIO on these. > > That should not be necessary. The xlate is only called in the case where > the gpio controller is declared as the interrupt controller in the > device tree source ... Sorry I don't understand this. Irqdomains are not device tree concepts. Why would it only be called if it was declared such or such in the device tree? > eth@0 { > compatible = "ks8851"; > ... > interrupt-parent = <&gpio2>; > interrupts = <2 8>; /* gpio line 34, low triggered */ > ... > }; > > So in the case where you have a driver call gpio_request() and then > request_irq(), in the device tree source, the gpio controller will not > be declared as an interrupt controller. It will just list the gpios ... And how do you get from there to the conclusion that gpio_to_irq() will not ever be called, maybe by some other driver than the ethernet? > sdhci@c8000200 { > ... > cd-gpios = <&gpio 69 0>; /* gpio PI5 */ > wp-gpios = <&gpio 57 0>; /* gpio PH1 */ > ... > }; Like if this driver wants to set up an IRQ? >> It all comes back to this: keep all applicable knowledge in the >> system, so it can make proper decisions, don't try to create >> mechanisms that will half-guess things. > > Agreed. However the xlate looks like a good place to request the gpio > without needing to add these "input-hogs" or any other platform code. So > if this is not considered abuse of the xlate, then it seems like an > ideal solution. I have been also implementing a generic xlate so that we > don't need to have a xlate for each platform as well. I'm still not following. Maybe I'm just too stupid... How do you *avoid* requesting the GPIO in the translation for a certain IRQ if the driver first issues gpio_request() and then goes on to perform gpio_to_irq() itself? Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html