From 97363ae6d85d367b5484b2694bda95d70a6413c5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Thu, 26 May 2011 16:53:11 +0800 Subject: [PATCH] rk29: gpio: disable debounce by default, default handler set to level enable debounce may halt cpu on wfi, disable it by default. gpio default interrupt type is level-sensitive, set_irq_handler to handle_level_irq. --- arch/arm/mach-rk29/gpio.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-rk29/gpio.c b/arch/arm/mach-rk29/gpio.c index 8c5172a5cf52..0e1025d5a718 100755 --- a/arch/arm/mach-rk29/gpio.c +++ b/arch/arm/mach-rk29/gpio.c @@ -183,7 +183,8 @@ static int GPIOSetPinDirection(struct gpio_chip *chip, unsigned int mask,eGPIOPi local_irq_save(flags); rk29_gpio_bitOp(gpioRegBase,GPIO_SWPORT_DDR,mask,direction); - rk29_gpio_bitOp(gpioRegBase,GPIO_DEBOUNCE,mask,1); + /* Enable debounce may halt cpu on wfi, disable it by default */ + //rk29_gpio_bitOp(gpioRegBase,GPIO_DEBOUNCE,mask,1); local_irq_restore(flags); return 0; @@ -555,7 +556,7 @@ static void __init rk29_gpio_irq_setup(void) for (j = 0; j < 32; j++) { lockdep_set_class(&irq_desc[pin+j].lock, &gpio_lock_class); set_irq_chip(pin+j, &rk29gpio_irqchip); - set_irq_handler(pin+j, handle_edge_irq); + set_irq_handler(pin+j, handle_level_irq); set_irq_flags(pin+j, IRQF_VALID); } -- 2.34.1