[ARM] 3582/1: AT91RM9200 IRQ trigger types
Patch from Andrew Victor The AIC interrupt controller's set_irq_type() can also be used for internal interrupts. IRQT_LOW and IRQT_FALLING are the only options not supported for the internal interrupts. [Original patch from Karl Olsen] Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
10e8e1fb75
commit
37f2e4bc12
@@ -92,10 +92,6 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
|
|||||||
{
|
{
|
||||||
unsigned int smr, srctype;
|
unsigned int smr, srctype;
|
||||||
|
|
||||||
/* change triggering only for FIQ and external IRQ0..IRQ6 */
|
|
||||||
if ((irq < AT91_ID_IRQ0) && (irq != AT91_ID_FIQ))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case IRQT_HIGH:
|
case IRQT_HIGH:
|
||||||
srctype = AT91_AIC_SRCTYPE_HIGH;
|
srctype = AT91_AIC_SRCTYPE_HIGH;
|
||||||
@@ -104,9 +100,13 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
|
|||||||
srctype = AT91_AIC_SRCTYPE_RISING;
|
srctype = AT91_AIC_SRCTYPE_RISING;
|
||||||
break;
|
break;
|
||||||
case IRQT_LOW:
|
case IRQT_LOW:
|
||||||
|
if ((irq > AT91_ID_FIQ) && (irq < AT91_ID_IRQ0)) /* only supported on external interrupts */
|
||||||
|
return -EINVAL;
|
||||||
srctype = AT91_AIC_SRCTYPE_LOW;
|
srctype = AT91_AIC_SRCTYPE_LOW;
|
||||||
break;
|
break;
|
||||||
case IRQT_FALLING:
|
case IRQT_FALLING:
|
||||||
|
if ((irq > AT91_ID_FIQ) && (irq < AT91_ID_IRQ0)) /* only supported on external interrupts */
|
||||||
|
return -EINVAL;
|
||||||
srctype = AT91_AIC_SRCTYPE_FALLING;
|
srctype = AT91_AIC_SRCTYPE_FALLING;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user