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