Re: [PATCH v1 0/5] gpio: regmap: Make use of 'ngpios' property
From: Mathieu Dubois-Briand
Date: Fri Feb 14 2025 - 04:19:00 EST
On Thu Feb 13, 2025 at 8:48 PM CET, Andy Shevchenko wrote:
> It appears that regmap GPIO doesn't take into account 'ngpios' property
> and requires hard coded values or duplication of the parsing the same
> outside of GPIO library. This miniseries addresses that.
>
> For the record, I have checked all bgpio_init() users and haven't seen
> the suspicious code that this series might break, e.g., an equivalent of
> something like this:
>
> static int foo_probe(struct device *dev)
> {
> struct gpio_chip *gc = devm_kzalloc(...);
> struct fwnode_handle *fwnode = ...; // NOT dev_fwnode(dev)!
>
> ...
> gc->parent = dev;
> gc->fwnode = fwnode;
>
> ret = bgpio_init(gc, dev, ...);
> ...
> }
>
> Reported-by: Mathieu Dubois-Briand <mathieu.dubois-briand@xxxxxxxxxxx>
>
> Andy Shevchenko (5):
> gpiolib: Extract gpiochip_choose_fwnode() for wider use
> gpiolib: Use fwnode instead of device in gpiochip_get_ngpios()
> gpio: regmap: Group optional assignments together for better
> understanding
> gpio: regmap: Move optional assignments down in the code
> gpio: regmap: Allow ngpio to be read from the property
>
> drivers/gpio/gpio-regmap.c | 41 +++++++++++++++++++++----------------
> drivers/gpio/gpiolib.c | 27 ++++++++++++++++--------
> include/linux/gpio/regmap.h | 4 ++--
> 3 files changed, 43 insertions(+), 29 deletions(-)
Hi Andy,
Thanks, I confirm I tested this series and it does fix my case: I can
leave the ngpio field uninitialized and its value will be correctly
retrieved from the "ngpios" property.
Also the whole series looks good to me.
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com