gpio: max77620: Initialize hardware state of interrupts
authorDmitry Osipenko <digetx@gmail.com>
Thu, 9 Jul 2020 17:12:03 +0000 (20:12 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 16 Jul 2020 08:50:40 +0000 (10:50 +0200)
commite6827bc3faa4da29ddbf48f48d04e87ca7c1c3c7
tree99513e17a424bfa0f6cb2f0214d2316c4e984159
parent15d9e7e847c04e7e118fc3edb969068b201bd0b3
gpio: max77620: Initialize hardware state of interrupts

I noticed on Nexus 7 that after rebooting from downstream kernel to
upstream, the GPIO interrupt is triggering non-stop despite interrupts
being disabled for all of GPIOs. This happens because Nexus 7 uses a
soft-reboot, meaning that bootloader should take care of resetting
hardware, but the bootloader doesn't do it well. As a result, GPIO
interrupt may be left ON at a boot time. Let's mask all GPIO interrupts
at the driver's initialization time in order to resolve the issue.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Link: https://lore.kernel.org/r/20200709171203.12950-7-digetx@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-max77620.c