diff options
author | Thierry Reding <thierry.reding@avionic-design.de> | 2012-09-18 04:57:10 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2012-09-18 17:27:25 -0400 |
commit | 5e969a401a0126806cc2a358800b5b52d6c0a246 (patch) | |
tree | bf1abac453b63d37222331cb414e2a783ae9887b /drivers/gpio/Kconfig | |
parent | d724f1c9c3c7dee420b8d778ee53207ef3c17120 (diff) |
gpio: Add Avionic Design N-bit GPIO expander support
This commit adds a driver for the Avionic Design N-bit GPIO expander.
The expander provides a variable number of GPIO pins with interrupt
support.
Changes in v2:
- allow building the driver as a module
- assign of_node unconditionally
- use linear mapping IRQ domain
- properly cleanup IRQ domain
- add OF device table and annotate device tables
- emulate rising and falling edge triggers
- increase #gpio-cells to 2
- drop support for !OF
- use IS_ENABLED to conditionalize DEBUG_FS code
Changes in v3:
- make IRQ support runtime configurable (interrupt-controller property)
- drop interrupt-controller and #interrupt-cells from DT binding
- add inline to_adnp() function to wrap container_of() macro
- consistently use adnp as name for struct adnp variables
- remove irq_mask_cur and rename irq_mask to irq_enable
- fix a subtle deadlock in adnp_gpio_direction_output()
- remove dynamic allocations from debugfs code
- rename regs to num_regs to avoid confusion
- annotate non-trivial code with comments
- don't acquire mutex in adnp_gpio_get()
- assume NO_IRQ == 0
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: Linus Walleij <linus.walleij@stericsson.com>
Cc: linux-kernel@vger.kernel.org
Acked-by: Rob Herring <rob.herring@calxeda.com>
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/Kconfig')
-rw-r--r-- | drivers/gpio/Kconfig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 2f2a3b86b985..bf48c74ba4a0 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig | |||
@@ -444,6 +444,17 @@ config GPIO_ADP5588_IRQ | |||
444 | Say yes here to enable the adp5588 to be used as an interrupt | 444 | Say yes here to enable the adp5588 to be used as an interrupt |
445 | controller. It requires the driver to be built in the kernel. | 445 | controller. It requires the driver to be built in the kernel. |
446 | 446 | ||
447 | config GPIO_ADNP | ||
448 | tristate "Avionic Design N-bit GPIO expander" | ||
449 | depends on I2C && OF | ||
450 | help | ||
451 | This option enables support for N GPIOs found on Avionic Design | ||
452 | I2C GPIO expanders. The register space will be extended by powers | ||
453 | of two, so the controller will need to accomodate for that. For | ||
454 | example: if a controller provides 48 pins, 6 registers will be | ||
455 | enough to represent all pins, but the driver will assume a | ||
456 | register layout for 64 pins (8 registers). | ||
457 | |||
447 | comment "PCI GPIO expanders:" | 458 | comment "PCI GPIO expanders:" |
448 | 459 | ||
449 | config GPIO_CS5535 | 460 | config GPIO_CS5535 |