Thread (17 messages) 17 messages, 4 authors, 2006-01-27

Re: Yosemite/440EP is there a global interrupt enable mask?

From: Stefan Roese <sr@denx.de>
Date: 2006-01-25 10:28:11

Hi David,

On Tuesday 24 January 2006 20:07, David Hawkins wrote:
I'm writing a simple driver to test IRQ handling on the
AMCC Yosemite board. The board has an 8x2 header with several
GPIO pins, a number of which can be configured as IRQ inputs.

I have setup GPIO46 as output, and GPIO47 as input, and
selected IRQ8 on that pin.
OK. So far good.

<snip>
So, is there a kernel wide interrupt enable mask that I really
should be using? Or, an interrupt enable API? I initially
thought that when I registered an interrupt using
request_irq() that the kernel would go off an enable the
requested IRQ, but this test shows that it did not.
Yes, the request_irq() should enable the requested IRQ. You seem to have used 
the wrong IRQ number though. Please see below.
#include <linux/module.h>   /* kernel modules                    */
#include <linux/interrupt.h>/* request_irq(), etc                */
#include <asm/io.h>         /* ioremap64(), iounmap(), readl()   */

static char *name = "yosemite_irq";
static unsigned long long base = 0x0EF600C00; // 36-bit address
static unsigned int size = 0x44;
static char *kernel;
static int irq = 8;
You are using the "External IRQ 8". This results in IRQ number 19 of the 2nd 
interrupt controller of the 440ep. So please try (19+32) as the IRQ number 
upon requesting the interrupt.

Best regards,
Stefan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help