Skip to content
  • Lars Poeschel's avatar
    gpio: mcp23s08: Add irq functionality for i2c chips · 4e47f91b
    Lars Poeschel authored
    
    
    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: default avatarLars Poeschel <poeschel@lemonage.de>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    4e47f91b