Problems with commit a770d946371e ("gpio: pxa: add pin control gpio direction and request")
From: Guenter Roeck
Date: Sat Mar 26 2016 - 21:01:57 EST
Hi,
when trying pxa_defconfig with various pxa270 and pxa255 qemu targets, I noticed that the gpio
pin direction is no longer set. Bisect points to commit a770d946371e ("gpio: pxa: add pin control
gpio direction and request"). As it turns out, pxa_defconfig does not configure PINCTRL. As a result,
pinctrl stub functions are used. Those all return 0 if PINCTRL is not configured. This causes the
pxa gpio driver to wrongly assume that pinctrl configured the gpio pin direction, and does nothing.
Looking into gpio-mvebu.c, its use of the pinctrl functions is completely different. It aborts
on error, not on success, from the pinctrl functions. Given that, I have no idea how to resolve
the problem. Having the stub functions return an error might cause the mvebu driver (and maybe
others) to fail if there is no pinctrl driver, so that does not seem to be an option.
If the idea is to mandate pinctrl for PXA architectures, it should probably be enabled for those
architectures. Unless I am missing something, PXA architectures to not select PINCTRL, which
suggests that the problem may affect a wide range of systems. Please have a look.
Thanks,
Guenter