Message ID | 20220401103604.8705-2-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Geert Uytterhoeven |
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: > > Introduce for_each_gpiochip_node() loop helper which iterates over > the GPIO controller child nodes of 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 | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h > index 98c93510640e..bfc91f122d5f 100644 > --- a/include/linux/gpio/driver.h > +++ b/include/linux/gpio/driver.h > @@ -3,13 +3,14 @@ > #define __LINUX_GPIO_DRIVER_H > > #include <linux/device.h> > -#include <linux/types.h> > #include <linux/irq.h> > #include <linux/irqchip/chained_irq.h> > #include <linux/irqdomain.h> > #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; > struct of_phandle_args; > @@ -750,4 +751,8 @@ static inline void gpiochip_unlock_as_irq(struct gpio_chip *gc, > } > #endif /* CONFIG_GPIOLIB */ > > +#define for_each_gpiochip_node(dev, child) \ > + device_for_each_child_node(dev, child) \ > + if (!fwnode_property_present(child, "gpio-controller")) {} else > + > #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 98c93510640e..bfc91f122d5f 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -3,13 +3,14 @@ #define __LINUX_GPIO_DRIVER_H #include <linux/device.h> -#include <linux/types.h> #include <linux/irq.h> #include <linux/irqchip/chained_irq.h> #include <linux/irqdomain.h> #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; struct of_phandle_args; @@ -750,4 +751,8 @@ static inline void gpiochip_unlock_as_irq(struct gpio_chip *gc, } #endif /* CONFIG_GPIOLIB */ +#define for_each_gpiochip_node(dev, child) \ + device_for_each_child_node(dev, child) \ + if (!fwnode_property_present(child, "gpio-controller")) {} else + #endif /* __LINUX_GPIO_DRIVER_H */