82xx IRQ handling

4 messages, 3 authors, 2005-12-12 · open the first message on its own page

82xx IRQ handling

From: Dmytro Bablinyuk <hidden>
Date: 2005-12-12 03:44:29

Hi everybody,

I am trying to setup an IRQ handler for IRQ4:

#define IRQ          SIU_INT_IRQ4

volatile cpm2_map_t *immap;
int irq_flags = 0;

immap = (cpm2_map_t *)CPM_MAP_ADDR;

immap->im_intctl.ic_simrh &= ~(0x0800);

request_irq(IRQ,	
            &irq_handler,	/* our handler */
            irq_flags,
            "interrupt_test",
            NULL);

immap->im_intctl.ic_simrh |= 0x0800;

I can see on a scope that IRQ line pulls up/down but handler get never
called. I am sure I made some very stupid mistake here but I will really
appreciate if somebody can help me with this.

Thank you

Dmytro

Re: 82xx IRQ handling

From: Dan Malek <hidden>
Date: 2005-12-12 05:35:52

On Dec 11, 2005, at 9:42 PM, Dmytro Bablinyuk wrote:
immap->im_intctl.ic_simrh &= ~(0x0800);
You should not be messing around with this register
in your code.  The generic 82xx interrupt functions
will properly manage this for you.
request_irq(IRQ,	
            &irq_handler,	/* our handler */
            irq_flags,
            "interrupt_test",
            NULL);
This is all you should do.

Thanks.

	-- Dan

Re: 82xx IRQ handling

From: Dmytro Bablinyuk <hidden>
Date: 2005-12-12 06:00:12

quoted
immap->im_intctl.ic_simrh &= ~(0x0800);

You should not be messing around with this register
in your code.  The generic 82xx interrupt functions
will properly manage this for you.
Thank you Dan,
It's working now!

By the way question - shall I program somewhere an edge of the IRQ or it always triggers on the rising edge?

Also does anybody knows any source code example of using 82xx General Purpose Timer Unit so that it triggers interrupt handler after some period.

Thank you

Re: 82xx IRQ handling

From: Kumar Gala <hidden>
Date: 2005-12-12 14:28:25

On Dec 12, 2005, at 12:00 AM, Dmytro Bablinyuk wrote:
quoted
quoted
immap->im_intctl.ic_simrh &= ~(0x0800);
You should not be messing around with this register
in your code.  The generic 82xx interrupt functions
will properly manage this for you.
Thank you Dan,
It's working now!

By the way question - shall I program somewhere an edge of the IRQ or it always triggers on the rising edge?

Also does anybody knows any source code example of using 82xx General Purpose Timer Unit so that it triggers interrupt handler after some period.
The IRQ pins are set to edge trigger by default.

- kumar
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help