gpio: brcmstb: consolidate interrupt domains
authorDoug Berger <opendmb@gmail.com>
Tue, 24 Oct 2017 19:54:50 +0000 (12:54 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 31 Oct 2017 09:34:40 +0000 (10:34 +0100)
commit0ba31dc201deb4f47277d7ff676b45da31c530e4
treebba6d82d871dabab3374764818c6bec6eb89cdd5
parent633007a36e51c5dd85a20e9ebd17de12566cf2c2
gpio: brcmstb: consolidate interrupt domains

The GPIOLIB IRQ chip helpers were very appealing, but badly broke
the 1:1 mapping between a GPIO controller's device_node and its
interrupt domain.

When another device-tree node references a GPIO device as its
interrupt parent, the irq_create_of_mapping() function looks for
the irq domain of the GPIO device and since all bank irq domains
reference the same GPIO device node it always resolves to the irq
domain of the first bank regardless of which bank the number of
the GPIO should resolve. This domain can only map hwirq numbers
0-31 so interrupts on GPIO above that can't be mapped by the
device-tree.

This commit effectively reverts the patch from Gregory Fong [1]
that was accepted upstream and replaces it with a consolidated
irq domain implementation with one larger interrupt domain per
GPIO controller instance spanning multiple GPIO banks based on
an earlier patch [2] also submitted by Gregory Fong.

[1] https://patchwork.kernel.org/patch/6921561/
[2] https://patchwork.kernel.org/patch/6347811/

Fixes: 19a7b6940b78 ("gpio: brcmstb: Add interrupt and wakeup source support")
Signed-off-by: Doug Berger <opendmb@gmail.com>
Reviewed-by: Gregory Fong <gregory.0xf0@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/Kconfig
drivers/gpio/gpio-brcmstb.c