Re: [RFC PATCH v4 net-next 11/23] pinctrl: ocelot: update pinctrl to automatic base address

From: Clément Léger
Date: Wed Nov 17 2021 - 08:47:17 EST


Le Tue, 16 Nov 2021 18:36:33 +0100,
Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> a écrit :

> Hello,
>
> On 15/11/2021 22:23:16-0800, Colin Foster wrote:
> > struct gpio_chip recommends passing -1 as base to gpiolib. Doing so avoids
> > conflicts when the chip is external and gpiochip0 already exists.
> >
> > Signed-off-by: Colin Foster <colin.foster@xxxxxxxxxxxxxxxx>
> > ---
> > drivers/pinctrl/pinctrl-ocelot.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
> > index cc7fb0556169..f015404c425c 100644
> > --- a/drivers/pinctrl/pinctrl-ocelot.c
> > +++ b/drivers/pinctrl/pinctrl-ocelot.c
> > @@ -1308,7 +1308,7 @@ static int ocelot_gpiochip_register(struct platform_device *pdev,
> > gc = &info->gpio_chip;
> > gc->ngpio = info->desc->npins;
> > gc->parent = &pdev->dev;
> > - gc->base = 0;
> > + gc->base = -1;
>
> I can't remember why but I'm pretty sure I did that on purpose but this
> indeed cause issues when the chip is external. I've asked Clément to
> check, let's see what the result is ;)

After testing, it works on ocelot pcb123 board.

Tested-by: Clément Léger <clement.leger@xxxxxxxxxxx>

>
> > gc->of_node = info->dev->of_node;
> > gc->label = "ocelot-gpio";
> >
> > --
> > 2.25.1
> >
>



--
Clément Léger,
Embedded Linux and Kernel engineer at Bootlin
https://bootlin.com