gpio: ixp4xx: Add driver for the IXP4xx GPIO
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 25 Jan 2019 20:59:11 +0000 (21:59 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 23 Apr 2019 14:02:13 +0000 (16:02 +0200)
commit813e7d36f22762f89856048a32446c8972309566
tree90cd921732bce88d0726abac72a3e2114ee4d6cd
parent5b978c10665973d8ee7050b03ef6e97013066b03
gpio: ixp4xx: Add driver for the IXP4xx GPIO

This adds a driver for the IXP4xx GPIO block found in
the Intel XScale IXP4xx systems.

The GPIO part of this block is pretty straight-forward and
just uses the generic MMIO GPIO library.

The irqchip side of this driver is hierarchical where
the main irqchip will receive a processed level trigger
in response to the edge detector of the GPIO block,
so for this reason the v2 version of the irqdomain API
is used (as well as in the parent IXP4xx irqchip) and
masking, unmasking and setting up the type on IRQ
happens on several levels.

Currently this GPIO controller will grab the parent
irqdomain using a special function, but as the platform
move toward device tree probing, this will not be needed:
we can just look up the parent irqdomain from the device
tree.

Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
MAINTAINERS
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/gpio/gpio-ixp4xx.c [new file with mode: 0644]