QUERY: How to handle sharing of interrupt between different peripherals.

Viresh KUMAR viresh.kumar at st.com
Mon Mar 15 00:37:46 EDT 2010


Hello everybody,

In our SOC (SPEArxxx), we have few peripherals which share common interrupt
line. For example we can have GPIO (PL061), SPI (PL022) and SDIO (Arasan) sharing
same physical IRQ line. Now there is a register in SOC which can give status of
this interrupt line (i.e. source of interrupt). We have standard drivers for
all of these, and these drivers don't request IRQ in shared mode.

How should we handle these IRQs now. One way i have been thinking of is to write
a wrapper layer for this type of IRQs for our SOC, which will register actual
IRQ numbers. Standard drivers can be provided virtual IRQ numbers for
registration. Now this wrapper, based on source of interrupt can call the
irq_handler for standard drivers.

Is this approach correct? Or is there any standard way to resolve these issues.

regards,
viresh kumar.



More information about the linux-arm-kernel mailing list