From: Stuart M. <stu...@st...> - 2002-04-10 18:19:36
|
Several of your options dropped off the end of the email I got here, but if I understand you correctly, you have exactly the same problem as people using companion chips such as the HD64465. Have a look for the macro irq_demux. This is defined differently for different systems, but in all cases it is used to demux a single interrupt comming into the CPU into a number of 'soft' interrupts, based on an external status register. These soft interrupts appear as interrupt numbers immediatly above the normal interrupts, so you'll also need to change the defintion of OFFCHIP_NR_IRQS, and register your device drivers to respond to these soft interrupt numbers. Stuart On Wed, 10 Apr 2002 10:25:33 +0200 fg...@ti... wrote: > Hi, Sirs > > This is my hamletic question. > > My board has a companion chip (CC) with its own interrupt enabel registers > and its own interrutp status register. When someting wired to my CC generates > an interupt request the CC generate an interrupt on IQR0 on my sh7709a. So I > have to handle the IQR0 request choosing the rigth handler according to the > exact source (keyboad, mouse, timer etc). > In linux Sh if I understand good there are two ways to solve this problem: > 1) using the IRQ0 handler writing an > static struct irqaction irq0 = { CC_interrupt, SA_INTERRUPT, 0, "CC", NULL, > NULL}; -- Stuart Menefy stu...@st... STMicroelectronics Ltd ST Intranet: mo.bri.st.com Bristol, UK Rest of the World: www.linuxsh.st.com |