On Tue, Jan 07, 2014 at 12:06:37PM +0530, Satish Patel wrote: > >> + if (pdata->irq == 0) { > >> + /* look for the field irq-gpio in DT */ > >> + irq_gpio = of_get_named_gpio(np, "irq-gpio", 0); > >> + if (!gpio_is_valid(irq_gpio)) { > >> + dev_err(dev, "Failed to get irq gpio,\n"); > >> + return -EIO; > >> + } > > > > This is horrible. If the gpio controller can act as an irq controller > > No it's not true. Let me clarify the signal flow, > > Pins => GPIO => GPIO BANK => Interrupt controller => CPU/MPU This is done automatically if you use the gpio controller as interrupt source (here with GPIO line 22 as example): device-tree-node { interrupts-extended = <&gpio1 22>; }; alternatively, but then the irqs from the normal irq controller can't be used: device-tree-node { interrupt-parent = <&gpio1>; interrupts = <22>; }; -- Sebastian
Attachment:
signature.asc
Description: Digital signature