[PATCH] gpio: mxs: use dynamic allocation of base

Dario Binacchi dario.binacchi at amarulasolutions.com
Mon Feb 27 23:50:58 PST 2023


Hi Stefan,

On Mon, Feb 27, 2023 at 6:52 PM Stefan Wahren <stefan.wahren at i2se.com> wrote:
>
> Hi Dario,
>
> Am 26.02.23 um 21:53 schrieb Dario Binacchi:
> > Since commit 502df79b860563d7 ("gpiolib: Warn on drivers still using static
> > gpiobase allocation"), one or more warnings are printed during boot on
> > systems where static allocation of GPIO base is used:
> >
> > [    0.136834] gpio gpiochip0: Static allocation of GPIO base is deprecated, use dynamic allocation.
> > [    0.142753] gpio gpiochip1: Static allocation of GPIO base is deprecated, use dynamic allocation.
> > [    0.148452] gpio gpiochip2: Static allocation of GPIO base is deprecated, use dynamic allocation.
> > [    0.154341] gpio gpiochip3: Static allocation of GPIO base is deprecated, use dynamic allocation.
> > [    0.160097] gpio gpiochip4: Static allocation of GPIO base is deprecated, use dynamic allocation.
> >
> > So let's follow the suggestion and use dynamic allocation.
>
> i understand the motivation of avoiding these warnings.
>
> AFAIK the MXS platform is older than the dynamic allocation of GPIO
> base. In the perfect world all applications has been migrated to
> libgpiod / chardev GPIO. But i'm really concerned this hasn't happend
> yet, at least for this platform. So i believe this change break
> applications, since it affects userspace.

Thanks for your explanations.

Do you think it makes sense to use a Kconfig option to enable/disable
the dynamic allocation of GPIO base?
As done, if I'm not mistaken, in commit 80d34260f36c6 ("pinctrl:
renesas: gpio: Use dynamic GPIO base if no function GPIOs")?
With legacy support enabled by default, but the ability to try out the
latest dynamic allocation functionality.

Thanks and regards,
Dario

>
> Best regards
>
> >
> > Signed-off-by: Dario Binacchi <dario.binacchi at amarulasolutions.com>
> > ---
> >
> >   drivers/gpio/gpio-mxs.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
> > index 7f59e5d936c2..b48a7c1fb7c1 100644
> > --- a/drivers/gpio/gpio-mxs.c
> > +++ b/drivers/gpio/gpio-mxs.c
> > @@ -330,7 +330,7 @@ static int mxs_gpio_probe(struct platform_device *pdev)
> >
> >       port->gc.to_irq = mxs_gpio_to_irq;
> >       port->gc.get_direction = mxs_gpio_get_direction;
> > -     port->gc.base = port->id * 32;
> > +     port->gc.base = -1;
> >
> >       err = gpiochip_add_data(&port->gc, port);
> >       if (err)



-- 

Dario Binacchi

Senior Embedded Linux Developer

dario.binacchi at amarulasolutions.com

__________________________________


Amarula Solutions SRL

Via Le Canevare 30, 31100 Treviso, Veneto, IT

T. +39 042 243 5310
info at amarulasolutions.com

www.amarulasolutions.com



More information about the linux-arm-kernel mailing list