IRQ Level / Edge

Andy Fleming afleming at
Sat Jul 3 08:47:59 EST 2004

Level sensitive Interrupts will continue to fire until the interrupt is
cleared.  Essentially, the hardware device causing the interrupt will
bring the interrupt line up (or down, depending on the polarity), and
keep it at that level until the condition disappears.  By setting the
IRQ controller to consider that interrupt level-sensitive, the
controller knows that the interrupt is still firing, and if you unmask
the interrupt while the signal is high, it will fire again.

Edge sensitive means that the interrupt only fires on a transition (low
to high for positive, high to low for negative).  Thus you don't have
to worry about clearing the interrupt before unmasking it.

I'm not sure if that's clear, but to summarize: Level and edge are
descriptions of how the interrupt is detected (by the "level" of the
interrupt, or by a transition *to* that level).  As for where to find
out which it is, the manual for the device should specify whether the
interrupt signal is level or edge sensitive.

On Jul 2, 2004, at 16:39, Sylvain Munaut wrote:

> Hello
> I don't really understand what setting an IRQ as Level or Edge really
> implies. (  I mean in irq_desc[i] )
> And how to know what to put.
> Can some one explain me or give me some pointers.
> Sylvain Munaut

** Sent via the linuxppc-dev mail list. See

More information about the Linuxppc-dev mailing list