<<< Previous topic - Next topic >>> |
|
Author |
Message |
thosim
Joined: 30 Oct 2006 Posts: 2 Location: Nordstemmen
|
Posted: 30.10.2006, 15:06 Post subject: Interrupt Demo für PNP 2110 funktioniert nicht bei irqnr=42 |
|
|
Hallo all,
habe das Interrupt Demoprogramm getestet, allerdings mit dem PNP2110 (Forum dafür ist noch nicht vorhanden). User Space Applikationen und Kernel Module lassen sich mit der PXA Toolchain erstellen. Ein Versuch das Kernel Module mit irqnr=42 zu laden (insmod) schlägt fehl mit der Meldung: "ssvirq: can't get assigned irq 42". Es liegt offensichtlich daran, dass das Valid Flag der Interrupt Descritpion Table auf 0 steht. Ein Versuch mit set_GPIO_IRQ_edge(IRQ_TO_GPIO(irqnr), GPIO_RISING_EDGE) schlägt leider auch fehl. Erst wenn man den IRQ mit request(irqnr-2,...) anfragt läßt sich das Modul laden. Ein Vergleich von
IRQ_TO_GPIO(42) = 17 mit
IRQ_GPIO(17) = 40, (das sollte eigentlich der Rückweg sein, und damit sollte 42 wieder herauskommen)
läßt vermuten, dass in den MAKROS was nicht stimmig ist. Dies passt auch zum Verhalten der Interrupts. Ich bekomme auf IRQ=42 nämlich keine.
Habe ich etwas übersehen oder vergessen ?
Viele Grüße
Thomas |
|
Back to top |
|
|
mha
Joined: 05 May 2006 Posts: 28
|
Posted: 02.11.2006, 15:11 Post subject: |
|
|
Hallo,
für die GPIO0 und GPIO1 wird der Macro IRQ_TO_GPIO() benutzt.
Bei den GPIO2 bis GPIO80 muß der Macro IRQ_TO_GPIO_2_80()
benutzt werden.
Folgendes Mapping (siehe http://www.dilnetpc.com/mht-dp2-01.pdf) für die
IRQ-Leitungen über das LCD-Interface beim PNP/2110 sollte funktionieren:
Linux Module Macros für "init_module()" (ssvirq.c)
--------------------------------------------------
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(70)),
GPIO_RISING_EDGE); /* GPIO70 = EXT_INT2 */
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(71)),
GPIO_RISING_EDGE); /* GPIO71 = EXT_INT3 */
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(72)),
GPIO_RISING_EDGE); /* GPIO72 = EXT_INT4 */
set_GPIO_IRQ_edge(IRQ_TO_GPIO_2_80(IRQ_GPIO(73)),
GPIO_RISING_EDGE); /* GPIO73 = EXT_INT5 */
Pin - Name - GPIOx - Linux Interrupt (irqnr)
------------------------------------------------
F1 - LCD.D12 - GPIO70 - 93 (=70+23)
E2 - LCD.D13 - GPIO71 - 94
E1 - LCD.D14 - GPIO72 - 95
E3 - LCD.D15 - GPIO73 - 96
Beispiel SSVIRQ Demo Modul beim PNP/2110 für den INT2 laden:
Marco Hasewinkel |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|