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:
> > 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 ??
>
> > + * 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.
> > + if (!chip->use_polling) {
>
> IMO, you should only use polling if the irq line isn't connected.
>
> > + if (pdata->irq_is_gpio)
> > + chip->irqnum = gpio_to_irq(pdata->irqnum);
>
> you can pass the irq number via i2c_board_info. Use it.
>
> > + 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
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html