Message ID | 20220401103604.8705-3-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0b19dde90ad004592792a928c75e80612be3e2e8 |
Headers | show |
Series | gpiolib: Two new helpers and way toward fwnode | expand |
On Fri, Apr 1, 2022 at 12:36 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > The gpiochip_node_count() helper iterates over the device child nodes that > have the "gpio-controller" property set. It returns the number of such nodes > under a given device. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> > Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- > include/linux/gpio/driver.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h > index bfc91f122d5f..12de0b22b4ef 100644 > --- a/include/linux/gpio/driver.h > +++ b/include/linux/gpio/driver.h > @@ -755,4 +755,15 @@ static inline void gpiochip_unlock_as_irq(struct gpio_chip *gc, > device_for_each_child_node(dev, child) \ > if (!fwnode_property_present(child, "gpio-controller")) {} else > > +static inline unsigned int gpiochip_node_count(struct device *dev) > +{ > + struct fwnode_handle *child; > + unsigned int count = 0; > + > + for_each_gpiochip_node(dev, child) > + count++; > + > + return count; > +} > + > #endif /* __LINUX_GPIO_DRIVER_H */ > -- > 2.35.1 > Acked-by: Bartosz Golaszewski <brgl@bgdev.pl>
diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index bfc91f122d5f..12de0b22b4ef 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -755,4 +755,15 @@ static inline void gpiochip_unlock_as_irq(struct gpio_chip *gc, device_for_each_child_node(dev, child) \ if (!fwnode_property_present(child, "gpio-controller")) {} else +static inline unsigned int gpiochip_node_count(struct device *dev) +{ + struct fwnode_handle *child; + unsigned int count = 0; + + for_each_gpiochip_node(dev, child) + count++; + + return count; +} + #endif /* __LINUX_GPIO_DRIVER_H */