diff options
author | Guennadi Liakhovetski <gl@dsa-ac.de> | 2006-06-28 11:42:02 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-06-28 12:55:03 -0400 |
commit | e033108bf7e585755350b554048229d1fd10a02e (patch) | |
tree | df4d6e15667478b7351859b8db576c136d0e253c /arch/arm/mach-pxa | |
parent | 87c01737b1ccf821b93f74a26a0dc991dba16d19 (diff) |
[ARM] 3672/1: PXA: don't probe output GPIOs for interrupt
Patch from Guennadi Liakhovetski
Currently probe_irq_on() on PXA will silently reconfigure all output GPIOs, that are not configured as alternate functions, for input. Avoid that. Upon CPU reset all GPIOs are configured as inputs, so, if a GPIO is configured as output, it has been done so intentionally.
Signed-off-by: G. Liakhovetski <gl@dsa-ac.de>
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r-- | arch/arm/mach-pxa/irq.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index 539b596005fc..d9635ff4b10c 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -88,8 +88,8 @@ static int pxa_gpio_irq_type(unsigned int irq, unsigned int type) | |||
88 | 88 | ||
89 | if (type == IRQT_PROBE) { | 89 | if (type == IRQT_PROBE) { |
90 | /* Don't mess with enabled GPIOs using preconfigured edges or | 90 | /* Don't mess with enabled GPIOs using preconfigured edges or |
91 | GPIOs set to alternate function during probe */ | 91 | GPIOs set to alternate function or to output during probe */ |
92 | if ((GPIO_IRQ_rising_edge[idx] | GPIO_IRQ_falling_edge[idx]) & | 92 | if ((GPIO_IRQ_rising_edge[idx] | GPIO_IRQ_falling_edge[idx] | GPDR(gpio)) & |
93 | GPIO_bit(gpio)) | 93 | GPIO_bit(gpio)) |
94 | return 0; | 94 | return 0; |
95 | if (GAFR(gpio) & (0x3 << (((gpio) & 0xf)*2))) | 95 | if (GAFR(gpio) & (0x3 << (((gpio) & 0xf)*2))) |