]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
pinctrl-bcm2835: Fix interrupt handling for GPIOs 28-31 and 46-53
authorPhil Elwell <phil@raspberrypi.org>
Tue, 24 Feb 2015 13:40:50 +0000 (13:40 +0000)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Tue, 19 Sep 2017 10:07:54 +0000 (12:07 +0200)
Contrary to the documentation, the BCM2835 GPIO controller actually has
four interrupt lines - one each for the three IRQ groups and one common. Rather
confusingly, the GPIO interrupt groups don't correspond directly with the GPIO
control banks. Instead, GPIOs 0-27 generate IRQ GPIO0, 28-45 GPIO1 and
46-53 GPIO2.

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

This bug has only just been observed because GPIOs above 27 can only be
accessed on an old Raspberry Pi with the optional P5 header fitted, where
the pins are often used for I2S instead.

Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/pinctrl/bcm/pinctrl-bcm2835.c

index 6351fe7f8e314ac5ebb102dd20847b383fd5b857..28745af5aadf3cb91fa7ff39118385c393e2d1d4 100644 (file)
@@ -1109,6 +1109,7 @@ static struct platform_driver bcm2835_pinctrl_driver = {
        .remove = bcm2835_pinctrl_remove,
        .driver = {
                .name = MODULE_NAME,
+               .owner = THIS_MODULE,
                .of_match_table = bcm2835_pinctrl_match,
        },
 };