Message ID | 20220325200338.54270-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1,1/5] gpiolib: Introduce gpiochip_count() helper | expand |
Hi Andy, On Fri, Mar 25, 2022 at 9:04 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > The gpiochip_count() helper iterates over the device child nodes that have > the "gpio-controller" property set. It returns the number of such nodes > under given device. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Thanks for your patch! > --- a/include/linux/gpio/driver.h > +++ b/include/linux/gpio/driver.h > @@ -750,4 +751,17 @@ static inline void gpiochip_unlock_as_irq(struct gpio_chip *gc, > } > #endif /* CONFIG_GPIOLIB */ > > +static inline unsigned int gpiochip_count(struct device *dev) > +{ > + struct fwnode_handle *child; > + unsigned int count = 0; > + > + device_for_each_child_node(dev, child) { > + if (device_property_read_bool(child, "gpio-controller")) error: passing argument 1 of ‘device_property_read_bool’ from incompatible pointer type [-Werror=incompatible-pointer-types] So I'm afraid I cannot test patch 3/5 yet ;-) > + count++; > + } > + > + return count; > +} > + > #endif /* __LINUX_GPIO_DRIVER_H */ Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On Mon, Mar 28, 2022 at 09:35:25AM +0200, Geert Uytterhoeven wrote: > On Fri, Mar 25, 2022 at 9:04 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: ... > > + if (device_property_read_bool(child, "gpio-controller")) > > error: passing argument 1 of ‘device_property_read_bool’ from > incompatible pointer type [-Werror=incompatible-pointer-types] Oh, thanks! I will fix this in v2. > So I'm afraid I cannot test patch 3/5 yet ;-)
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index 894eab753fdf..52918ef5d288 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -9,6 +9,7 @@ #include <linux/lockdep.h> #include <linux/pinctrl/pinctrl.h> #include <linux/pinctrl/pinconf-generic.h> +#include <linux/property.h> #include <linux/types.h> struct gpio_desc; @@ -750,4 +751,17 @@ static inline void gpiochip_unlock_as_irq(struct gpio_chip *gc, } #endif /* CONFIG_GPIOLIB */ +static inline unsigned int gpiochip_count(struct device *dev) +{ + struct fwnode_handle *child; + unsigned int count = 0; + + device_for_each_child_node(dev, child) { + if (device_property_read_bool(child, "gpio-controller")) + count++; + } + + return count; +} + #endif /* __LINUX_GPIO_DRIVER_H */
The gpiochip_count() helper iterates over the device child nodes that have the "gpio-controller" property set. It returns the number of such nodes under given device. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- include/linux/gpio/driver.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+)