Hooking an IRQ on a modified mpc8349emitx board
Oscar Takeshita
oscar at silvustechnologies.com
Fri Sep 5 04:44:56 EST 2008
Thanks Scott,
It is hooked and alive! Your couple of lines guided me through. Here's
the outline of what I did after looking
at other powerpc drivers and the ePAPR document from Power.org:
1. Assumed that MPC83xx_IRQ_EXT1 (0x11 without offset) corresponds to IRQ1.
2. Created a node in my dts that looks like:
mydevice at 40000 {
device_type = "network";
interrupts = <11 8>;
interrupt-parent = < &ipic >;
}
3. On my kernel device driver I have the following outline:
struct device_node *np;
int irq;
if ((np = of_find_node_by_name(NULL, "mydevice")) == NULL) {
printk(KERN_ERR "Can't find my device node\n");
irq = -1;
}
else
irq = irq_of_parse_and_map(np,0);
4. Ready to use request_irq() on irq!
Thanks,
Oscar
Scott Wood wrote:
> On Wed, Sep 03, 2008 at 03:55:41PM -0700, Oscar Takeshita wrote:
>
>> I've been trying to hook an IRQ on a modified mpc8349emitx board without
>> success.
>>
>> The IRQ is hooked physically to IRQ1/GPIO2[13] on the mpc8349e. No other
>> devices are
>> tied to this pin.
>>
>> I'm using uboot 1.2.0 and kernel 2.6.22.19.
>>
>> Do I need to have a dts entry for this interrupt in order to make
>> request_irq() succeed?
>>
>> How can I find the IRQ number? I tried probe_irq_on/off unfortunately it
>> did not work.
>> Would it be MPC83xx_IRQ_EXT1 in arch/powerpc/include/asm/mpc83xx.h ?
>>
>> I'm new doing kernel work. Any hints appreciated.
>>
>
> You need to describe the IRQ in a device tree node and use
> irq_of_parse_and_map(). request_irq() takes virtual IRQ numbers.
>
> Maybe we should put together an arch/powerpc FAQ...
>
> -Scott
>
>
>
More information about the Linuxppc-dev
mailing list