gpio: mcp23s08: Add irq functionality for i2c chips
authorLars Poeschel <poeschel@lemonage.de>
Thu, 16 Jan 2014 10:44:15 +0000 (11:44 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 17 Jan 2014 14:30:14 +0000 (15:30 +0100)
commit4e47f91bf741e011a90ceb6241b8d78141709733
tree1febf3cbbf59a1202dc5d944d392ce28b6b851fe
parent785acec3eecf4c21bab9e24afb5d354b57a72e03
gpio: mcp23s08: Add irq functionality for i2c chips

This adds interrupt functionality for i2c chips to the driver.
They can act as a interrupt-controller and generate interrupts, if
the inputs change.
This is tested with a mcp23017 chip on an arm based platform.

v3:
- be a bit more clear that the irq functionality is also available
  on spi versions of the chips, but the linux driver does not support
  this yet

v2:
- some more word about irq-mirror property in binding doc
- use of_read_bool instead of of_find_property for
  "interrupt-contrller" and "irq-mirror"
- cache the "interrupt-controller" for remove function
- do set the irq-mirror bit only if device is marked as
  interrupt-controller
- do create the irq mapping and setup of irq_desc of all possible
  interrupts in probe path instead of in gpio_to_irq
- mark gpios as in use as interrupts in irq in irq_startup and
  unlock it in irq_shutdown
- rename virq to child_irq
- remove dev argument from mcp23s08_irq_setup function
- move gpiochip_add before mcp23s08_irq_setup in probe path

Signed-off-by: Lars Poeschel <poeschel@lemonage.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Documentation/devicetree/bindings/gpio/gpio-mcp23s08.txt
drivers/gpio/Kconfig
drivers/gpio/gpio-mcp23s08.c