Thread (10 messages) 10 messages, 4 authors, 2010-03-05

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

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.c
I 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help