diff options
author | Andrew Victor <andrew@sanpeople.com> | 2006-06-19 10:26:52 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-19 10:26:52 -0400 |
commit | 37f2e4bc120bd784e7f69f961233e1c16b74d170 (patch) | |
tree | fbe1d1b32bc81c0b5f5cf030639a13a51f08906b /arch/arm/mach-at91rm9200/irq.c | |
parent | 10e8e1fb758eed5cfb0cae1b770f842624851e7b (diff) |
[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>
Diffstat (limited to 'arch/arm/mach-at91rm9200/irq.c')
-rw-r--r-- | arch/arm/mach-at91rm9200/irq.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/mach-at91rm9200/irq.c b/arch/arm/mach-at91rm9200/irq.c index cb62bc83a1dd..cc545b2c4388 100644 --- a/arch/arm/mach-at91rm9200/irq.c +++ b/arch/arm/mach-at91rm9200/irq.c | |||
@@ -92,10 +92,6 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type) | |||
92 | { | 92 | { |
93 | unsigned int smr, srctype; | 93 | unsigned int smr, srctype; |
94 | 94 | ||
95 | /* change triggering only for FIQ and external IRQ0..IRQ6 */ | ||
96 | if ((irq < AT91_ID_IRQ0) && (irq != AT91_ID_FIQ)) | ||
97 | return -EINVAL; | ||
98 | |||
99 | switch (type) { | 95 | switch (type) { |
100 | case IRQT_HIGH: | 96 | case IRQT_HIGH: |
101 | srctype = AT91_AIC_SRCTYPE_HIGH; | 97 | srctype = AT91_AIC_SRCTYPE_HIGH; |
@@ -104,9 +100,13 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type) | |||
104 | srctype = AT91_AIC_SRCTYPE_RISING; | 100 | srctype = AT91_AIC_SRCTYPE_RISING; |
105 | break; | 101 | break; |
106 | case IRQT_LOW: | 102 | case IRQT_LOW: |
103 | if ((irq > AT91_ID_FIQ) && (irq < AT91_ID_IRQ0)) /* only supported on external interrupts */ | ||
104 | return -EINVAL; | ||
107 | srctype = AT91_AIC_SRCTYPE_LOW; | 105 | srctype = AT91_AIC_SRCTYPE_LOW; |
108 | break; | 106 | break; |
109 | case IRQT_FALLING: | 107 | case IRQT_FALLING: |
108 | if ((irq > AT91_ID_FIQ) && (irq < AT91_ID_IRQ0)) /* only supported on external interrupts */ | ||
109 | return -EINVAL; | ||
110 | srctype = AT91_AIC_SRCTYPE_FALLING; | 110 | srctype = AT91_AIC_SRCTYPE_FALLING; |
111 | break; | 111 | break; |
112 | default: | 112 | default: |