Commit 6f077e57 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Bartosz Golaszewski
Browse files

gpiolib: Use fwnode instead of device in gpiochip_get_ngpios()



The gpiochip_get_ngpios() can be used in the cases where passed device
is not a provider of the certain property. Use fwnode instead.

Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Tested-by: default avatarMathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Reviewed-by: default avatarMathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Link: https://lore.kernel.org/r/20250213195621.3133406-3-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 375790f1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -900,11 +900,12 @@ static struct fwnode_handle *gpiochip_choose_fwnode(struct gpio_chip *gc)

int gpiochip_get_ngpios(struct gpio_chip *gc, struct device *dev)
{
	struct fwnode_handle *fwnode = gpiochip_choose_fwnode(gc);
	u32 ngpios = gc->ngpio;
	int ret;

	if (ngpios == 0) {
		ret = device_property_read_u32(dev, "ngpios", &ngpios);
		ret = fwnode_property_read_u32(fwnode, "ngpios", &ngpios);
		if (ret == -ENODATA)
			/*
			 * -ENODATA means that there is no property found and