]> git.baikalelectronics.ru Git - kernel.git/commit
gpio: uniphier: add UniPhier GPIO controller driver
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 12 Oct 2017 11:36:16 +0000 (20:36 +0900)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 23 Oct 2017 08:37:31 +0000 (10:37 +0200)
commit4c87d5c227b825e866171397eac5f6a387c9132e
tree170ee9601149006dbc86d8ce9126791d98f21c1e
parent93c4a976ffd105349eb57ef262cf12aa325ec1c5
gpio: uniphier: add UniPhier GPIO controller driver

This GPIO controller is used on UniPhier SoC family.

It also serves as an interrupt controller, but interrupt signals are
just delivered to the parent irqchip without any latching or OR'ing.
This type of hardware can be well described with hierarchy IRQ domain.

One unfortunate thing for this device is that the interrupt mapping to
the interrupt parent is not contiguous.

I asked how DT can describe interrupt mapping between two irqchips [1],
but I could not find a good solution (at least in the framework level).
In fact, irqchip drivers using hierarchy domain generally hard-code the
DT binding of their parent.

After tackling on several approaches such as hard-code of hwirqs,
irq_domain_push_irq(), I ended up with a vendor specific property.
If we come up with a good idea to support this in the framework, we
can migrate over to it, but we can live with a driver-level solution
for now.

[1] https://lkml.org/lkml/2017/7/6/758

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
MAINTAINERS
drivers/gpio/Kconfig
drivers/gpio/Makefile
drivers/gpio/gpio-uniphier.c [new file with mode: 0644]