Re: [PATCH 1/3] TCA6416 keypad : Implement keypad driver for keys interfaced to TCA6416
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2010-02-26 08:28:11
Also in:
linux-omap
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2010-02-26 08:28:11
Also in:
linux-omap
On Thu, Feb 25, 2010 at 08:47:03PM +0200, Felipe Balbi wrote:
Hi, On Thu, Feb 25, 2010 at 06:44:59PM +0530, Sriramakrishnan wrote:quoted
This patch implements a simple Keypad driver that functions as an I2C client. It handles key press events for keys connected to TCA6416 I2C based IO expander.what's wrong with gpio-keys ??quoted
+ * Implementation based on drivers/input/keyboard/gpio_keys.cI see, shouldn't you instead provide a gpiolib driver for tca6416 and use the generic gpio_keys driver ??
Right. The fact that the driver precludes all otehr gpios from being used is a major drawback.
quoted
+ if (!chip->use_polling) {IMO, you should only use polling if the irq line isn't connected.quoted
+ if (pdata->irq_is_gpio) + chip->irqnum = gpio_to_irq(pdata->irqnum);you can pass the irq number via i2c_board_info. Use it.quoted
+ else + chip->irqnum = pdata->irqnum; + + ret = request_irq(chip->irqnum, tca6416_keys_isr,it's an i2c driver!!! this should be request_threaded_irq()
Threaded IRQ probably does not fit well when you want to support both interrupt and polling in the same driver... -- Dmitry