pinctrl: bcm2835: Fix ints for GPIOs 28-31 & 46-53
authorPhil Elwell <phil@raspberrypi.org>
Tue, 24 Feb 2015 13:40:50 +0000 (13:40 +0000)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 14 Nov 2016 23:13:52 +0000 (00:13 +0100)
commit00445b5d5866c7b31bcfc59e907c9062100b4b0a
tree146b11571798f79d183c33c162141d6c4a8ad5f4
parentdd68a526c7ec0ee3eab13848f6f97bddd3346066
pinctrl: bcm2835: Fix ints for GPIOs 28-31 & 46-53

Contrary to the documentation, the BCM2835 GPIO controller actually
has four interrupt lines - one each for the three IRQ groups and one
common. Confusingly, the GPIO interrupt groups don't correspond
directly with the GPIO control banks. Instead, GPIOs 0-27 generate IRQ
GPIO0, 28-45 IRQ GPIO1 and 46-53 IRQ GPIO2.

Awkwardly, the GPIOs for IRQ GPIO1 straddle two 32-entry GPIO banks,
so split out a function to process the interrupts for a single GPIO
bank.

Cc: Stefan Wahren <stefan.wahren@i2se.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Acked-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/bcm/pinctrl-bcm2835.c