AT91 GPIO driver reading back struct gpio_chip::base

Ahmad Fatoum a.fatoum at pengutronix.de
Wed May 7 06:11:58 PDT 2025


Hi,

just stumbled upon this comment in drivers/gpio/gpiolib.c:

  /*
   * TODO: it should not be necessary to reflect the
   * assigned base outside of the GPIO subsystem. Go over
   * drivers and see if anyone makes use of this, else
   * drop this and assign a poison instead.
   */
  gc->base = base;

and thought to mention that there are drivers that indeed rely on the
base, e.g. drivers/pinctrl/pinctrl-at91.c uses struct gpio_chip::base
to find out which bit to set in a register:

  dev_dbg(npct->dev, "enable pin %u as GPIO\n", offset);

  mask = 1 << (offset - chip->base);

This needs to be fixed of course, but I don't have time for that right
now. Thus settling instead for writing this heads up. Maybe someone is
motivated to fix this and then do the equivalent of

https://lore.kernel.org/all/20250507-b4-imx-gpio-base-warning-v2-1-d43d09e2c6bf@pengutronix.de/

for AT91 as well, given that the driver is DT-only. :-)

Cheers,
Ahmad

-- 
Pengutronix e.K.                  |                             |
Steuerwalder Str. 21              | http://www.pengutronix.de/  |
31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |




More information about the linux-arm-kernel mailing list