MPC5200b external interrupt registration problem

Grant Likely grant.likely at secretlab.ca
Tue May 13 00:03:22 EST 2008


On Fri, May 9, 2008 at 12:49 PM, Nick <ndroogh at rogers.com> wrote:
> Hi,
>
>  I am writing a driver to service an interrupt from our fpga.  I am calling request_irq in the open
>  function of my driver.  The fpga is connected to external interrupt 1.  I am using interrupt
>  number 65 in the request_irq but the function is failing.  I traced to a function called setup_irq
>  in file /kernel/irq/manage.c.  It fails because at this line: if (desc->chip == &no_irq_chip) .
>  Is 65 the wrong interrupt number?  What do I need to do to properly setup for external interrupts?

What kernel version are you using?
Are you using arch/ppc or arch/powerpc?

There has been a major shift in embedded powerpc support in the last
year.  Now, instead of hard coding the peripheral list in the platform
code, the devices are described in an OpenFirmware style device tree.
(See arch/powerpc/boot/dts/lite5200b.dts).

You need to add a node to the tree for your device and specify the
interrupt there.  Then use either of_irq_map_one() or
irq_of_parse_and_map() to get something that you can pass to
request_irq().

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.



More information about the Linuxppc-dev mailing list