gpio/mpc8xxx: fix qoriq GPIO reading
authorRussell King <rmk+kernel@armlinux.org.uk>
Tue, 19 Nov 2019 13:10:38 +0000 (13:10 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 Jan 2020 18:18:18 +0000 (19:18 +0100)
[ Upstream commit 787b64a43f7acacf8099329ea08872e663f1e74f ]

Qoriq requires the IBE register to be set to enable GPIO inputs to be
read.  Set it.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/E1iX3HC-00069N-0T@rmk-PC.armlinux.org.uk
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpio/gpio-mpc8xxx.c

index 16a47de..b863421 100644 (file)
@@ -386,6 +386,9 @@ static int mpc8xxx_probe(struct platform_device *pdev)
 
        gc->to_irq = mpc8xxx_gpio_to_irq;
 
+       if (of_device_is_compatible(np, "fsl,qoriq-gpio"))
+               gc->write_reg(mpc8xxx_gc->regs + GPIO_IBE, 0xffffffff);
+
        ret = gpiochip_add_data(gc, mpc8xxx_gc);
        if (ret) {
                pr_err("%pOF: GPIO chip registration failed with status %d\n",