Thanks for your replies ... I checked the irq.c and irq.h and found the prototype of irq_of_parse_and_map() and found from the comment that it is a wrapper function contains a chain of irq_map_one() and irq_create_mapping() ...
It means that I can use irq_create_mapping() to know the virq also the same suggessted by michael ... what is the difference between these two i.e. irq_create_mapping() and irq_of_parse_and_map() ... I mean in usage what could be the difference ? ? ? If used the irq_of_parse_and_map() then the paraments I need to pass are device_node *dev and index irq_of_parse_and_map(struct device_node *dev, int index) ... then how I can pass the required information i.e. dev and index ? ? ? Also how I can read the device tree binary file ? ? ? Kindly please acknowledge ... thank you ... Kind Regards, Vijay Nikam On 2/12/09, Brad Boyer <f...@allandria.com> wrote: > On Wed, Feb 11, 2009 at 03:43:26PM +0530, Vijay Nikam wrote: > > I read in LDD book, they give directly irq no. they have given > > parallel port example, here they have set or said irq no. defaults to > > 7 and they have not done any irq_mapping so what is the difference ? ? > > ? I mean how I should know when to use irq_mapping and when not ? ? ? > > > > Also is it some difference between writng drivers on embedded Linux > > level and Linux PC (i386) ? ? ? > > The basic request_irq() function is generic, but the value of the > arguments (especially the number for the IRQ line) is architecture > specific in many ways. This is one difference between the i386 code > and the powerpc code inside Linux. Most i386 hardware is standard > PC hardware with very clearly defined interrupt sources. Because of > this, the mapping from the numeric IRQ value to a real hardware > interrupt source is defined pretty clearly. The powerpc architecture > code has to support almost arbitrarily complex hardware, and the > embedded world is the source of most of the complexity. Because of > this, the powerpc code has to dynamically allocate those numeric > IRQ sources and tie them to a specific hardware interrupt. There > is functionality to take the information from your device tree and > convert it to a virtual IRQ. That happens automatically for some types > of devices like PCI cards, but your driver may have to do that mapping > itself in other cases. I believe the appropriate API for this is the > function irq_of_parse_and_map(). It takes a device node and index into > the interrupt list for that device and gives a virtual IRQ number. > > Brad Boyer > f...@allandria.com > > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev