On Thu, Jun 6, 2013 at 10:50 AM, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> wrote: > On 00:26 Thu 06 Jun , Grant Likely wrote: >> On Tue, 09 Apr 2013 00:44:05 +0200, Javier Martinez Canillas <javier.martinez@xxxxxxxxxxxxxxx> wrote: >> > On 04/09/2013 12:05 AM, Rob Herring wrote: >> > > On 04/05/2013 02:48 AM, Javier Martinez Canillas wrote: >> > >> This means that drivers that need the IRQ type/level flags defined in >> > >> the DT won't be able to get it. >> > > >> > > But the interrupt controllers that need the information should be able >> > > to get to it via irqd_get_trigger_type. What problem exactly are you >> > > trying to fix? What driver would use this? >> > > >> > >> > Yes but this is not about the interrupt controller wanting this information but >> > a device driver that is using the IORESOURCE_IRQ struct resource that has the >> > information about the virtual IRQ associated with a GPIO-IRQ. >> > >> > The driver doesn't know neither care if its IRQ line is connected to a line of >> > an real IRQ controller or to a GPIO controller that allows a GPIO line to be >> > used as an IRQ. >> > >> > > My understanding of the IORESOURCE_IRQ_xxx (and DMA) bits are they are >> > > ISA specific and therefore should not be used on non-ISA buses. >> > > >> > >> > Many TI OMAP2+ SoC based boards have an SMSC LAN911x/912x controller >> > (drivers/net/ethernet/smsc/smsc911x.c) that is connected to the OMAP processor >> > through its General-Purpose Memory Controller (GPMC) and this LAN driver obtain >> > its IRQ and I/O address space from a struct resource IORESOURCE_IRQ and >> > IORESOURCE_MEM respectively, that is filled by the DeviceTree core. >> > >> > It does this: >> > >> > irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> > irq_flags = irq_res->flags & IRQF_TRIGGER_MASK; >> > >> > Since of_irq_to_resource() doesn't fill the trigger/level flags on the >> > IORESOURCE_IRQ struct resource, irq_flags will always be 0 regarding the value >> > specified on the second cell of the "interrupts" DT property. > > why do you need to known this in you driver this need to be handle in the irq > chip > > I does use irq gpio without at all > > Best Regards, > J. > Yes, in fact as I said on an earlier email on this thread if you don't pass a trigger type to the request_irq() call, it will use the trigger type set by the irq chip earlier with .xlate. A few months ago when I was testing DT on my OMAP3 board, for some reasons it was not getting the right trigger type. That's why I sent this patch but it seems it was a bug on the GPIO omap irq_chip driver since now is working correctly without this. It is taking the trigger type that was set on the .xlate function handler. So, I don't need this patch anymore to make the LAN chip work on my board and I don't know if the fact that an empty edge/level flags means that is going to be used whatever was set on the .xlate function handler is a reason enough to not return the IRQ flags on the struct resource or if someone else is still interested on this patch and filling this information on the struct resource. Best regards, Javier -- 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