MPC8272: Edge triggered IRQ
Laurent Pinchart
laurent.pinchart at tbox.biz
Tue Dec 12 19:02:47 EST 2006
> Found solution:
>
> immap->im_intctl.ic_siexr |= (1 << (14 - (irq - SIU_INT_IRQ1)));
>
> Makes it trigger on falling edge
Don't forget to set
irq_desc[SIU_INT_IRQ1].status &= ~IRQ_LEVEL;
That should be done in the IRQ initialization function referenced by
ppc_md.init_IRQ.
> > I have pretty simple code that I did a long time ago
> >
> > irqreturn_t irq_handler(int irq, void *dev_id, struct pt_regs *regs)
> > {
> > ..
> > return IRQ_HANDLED;
> > }
> >
> >
> > request_irq(irq,
> > &irq_handler,
> > SA_INTERRUPT,
> > "irq handler",
> > NULL);
> >
> > That code runs on MPC8272 and 2.6.18 kernel.
> > It triggers IRQ on low level (I thought it was falling edge by default).
> > So, as long as I have input low level I have hundreds of calls. Pretty
> > much it keeps calling IRQ handling routine.
> > How do I make it to trigger on falling edge?
Laurent Pinchart
More information about the Linuxppc-embedded
mailing list