demuxing irqs
Jon Smirl
jonsmirl at gmail.com
Sun Sep 14 08:54:58 EST 2008
On Sat, Sep 13, 2008 at 6:41 PM, Roland Dreier <rdreier at cisco.com> wrote:
> > Can someone point me at a simple example of how to demux irqs using
> > the powerpc irq functions? I have eight devices on a single irq and I
> > want to turn them into virtual irqs.
>
> Sorry about the previous reply.
>
> Anyway, what are you going to demux based on? Do you have some other
> signal you can read in the interrupt dispatch code that tells you which
> device raised the interrupt? What happens if two devices raise an
> interrupt at the same time?
>
> If you just have 8 interrupt lines wire-ORed together then you probably
> just need to register your interrupt handlers with IRQF_SHARED and run 8
> interrupt handlers on an interrupt.
The muxed interrupts are inside a SOC CPU. For example eight GPIOs
can each individually be enabled to trigger hardware interrupt 7. When
I get hw interrupt 7 i want to demux it into 8 virtual interrupts.
There are eight bit registers for individually acking, enabling, etc
each of the eight multiplexed interrupts. With eight virutal
interrupts each user can register a different handler and isn't aware
the muxing is going on.
--
Jon Smirl
jonsmirl at gmail.com
More information about the Linuxppc-dev
mailing list