Thread (1 message) 1 message, 1 author, 2014-12-01

[PATCH 1/2] pinctrl: at91: allow disabled gpio controllers

From: Ludovic Desroches <hidden>
Date: 2014-12-01 14:39:27
Also in: linux-devicetree

On Mon, Dec 01, 2014 at 02:56:22PM +0100, Linus Walleij wrote:
On Fri, Nov 28, 2014 at 5:49 PM, Ludovic Desroches
[off-list ref] wrote:
quoted
This patch allows to have gpio controller with status set to disabled.

gpio_banks represents all the gpio banks available on the device whereas
nbanks represents the gpio banks used. Having a disabled gpio controller
involves that nbanks value is lower than gpio_banks and that some
pointers in the gpio_chips array are NULL. This patch deals with these
specific cases.

Signed-off-by: Ludovic Desroches <redacted>
(...)
quoted
        /* We will handle a range of GPIO pins */
-       for (i = 0; i < info->nbanks; i++)
-               pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
+       for (i = 0; i < gpio_banks; i++)
+               if (gpio_chips[i])
+                       pinctrl_add_gpio_range(info->pctl, &gpio_chips[i]->range);
I highly suspect the real solution to this problem is to get rid
of the pinctrl_add_gpio_range() call from the driver.

Remobe these calls, and instead in at91_gpio_probe() in the same
file, call gpiochip_add_pingroup_range() for each GPIO chip.

That way the GPIO ranges are inserted from the GPIO side instead
of the pinctrl side, which is way better, since it is more relative,
and make you only add ranges for the gpio chips actually there.
Thanks for your advices, I'll try to do it the way you recommend.

Ludovic
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help