diff options
author | Jason Chen <b02280@freescale.com> | 2009-10-23 19:24:17 +0800 |
---|---|---|
committer | Jason Chen <b02280@freescale.com> | 2009-10-23 19:28:39 +0800 |
commit | 4eec389908ee8762045568c3ec022bbd0178c36e (patch) | |
tree | 335516beac4319d13d6608caf8042e447d5a0abc | |
parent | de542d54c2e6f721fd526553c89113acd3249148 (diff) |
ENGR00116861 gpio irq: touchscreen keep interrupt active
MX37 tsc2007 use low level irq trigger, but gpio irq still use edge irq
handler, which should use level irq handler instead.
Signed-off-by: Jason Chen <b02280@freescale.com>
-rw-r--r-- | arch/arm/plat-mxc/gpio.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c index 4c224300759d..e42f52896ee6 100644 --- a/arch/arm/plat-mxc/gpio.c +++ b/arch/arm/plat-mxc/gpio.c @@ -81,9 +81,11 @@ static int gpio_set_irq_type(u32 irq, u32 type) switch (type) { case IRQ_TYPE_EDGE_RISING: edge = GPIO_INT_RISE_EDGE; + set_irq_handler(irq, handle_edge_irq); break; case IRQ_TYPE_EDGE_FALLING: edge = GPIO_INT_FALL_EDGE; + set_irq_handler(irq, handle_edge_irq); break; case IRQ_TYPE_EDGE_BOTH: val = mxc_gpio_get(&port->chip, gpio & 31); @@ -95,12 +97,15 @@ static int gpio_set_irq_type(u32 irq, u32 type) pr_debug("mxc: set GPIO %d to high trigger\n", gpio); } port->both_edges |= 1 << (gpio & 31); + set_irq_handler(irq, handle_edge_irq); break; case IRQ_TYPE_LEVEL_LOW: edge = GPIO_INT_LOW_LEV; + set_irq_handler(irq, handle_level_irq); break; case IRQ_TYPE_LEVEL_HIGH: edge = GPIO_INT_HIGH_LEV; + set_irq_handler(irq, handle_level_irq); break; default: return -EINVAL; |