[PATCH v2 10/10] gpiolib: add of_xlate support

Marco Felsch m.felsch at pengutronix.de
Fri Jun 16 05:13:54 PDT 2023


On 23-06-16, Sascha Hauer wrote:
> On Wed, Jun 14, 2023 at 12:07:47PM +0200, Ahmad Fatoum wrote:

...

> > diff --git a/include/gpio.h b/include/gpio.h
> > index 5f2c16584c3b..9951532084ac 100644
> > --- a/include/gpio.h
> > +++ b/include/gpio.h
> > @@ -168,6 +168,7 @@ int gpio_array_to_id(const struct gpio *array, size_t num, u32 *val);
> >  #endif
> >  
> >  struct gpio_chip;
> > +struct of_phandle_args;
> >  
> >  struct gpio_ops {
> >  	int (*request)(struct gpio_chip *chip, unsigned offset);
> > @@ -177,6 +178,22 @@ struct gpio_ops {
> >  	int (*get_direction)(struct gpio_chip *chip, unsigned offset);
> >  	int (*get)(struct gpio_chip *chip, unsigned offset);
> >  	void (*set)(struct gpio_chip *chip, unsigned offset, int value);
> > +
> > +#if defined(CONFIG_OF_GPIO)
> > +	/*
> > +	 * If CONFIG_OF_GPIO is enabled, then all GPIO controllers described in
> > +	 * the device tree automatically may have an OF translation
> > +	 */
> > +
> > +	/**
> > +	 * @of_xlate:
> > +	 *
> > +	 * Callback to translate a device tree GPIO specifier into a chip-
> > +	 * relative GPIO number and flags.
> > +	 */
> > +	int (*of_xlate)(struct gpio_chip *gc,
> > +			const struct of_phandle_args *gpiospec, u32 *flags);
> > +#endif
> >  };
> >  
> >  struct gpio_chip {
> > @@ -185,6 +202,15 @@ struct gpio_chip {
> >  	int base;
> >  	int ngpio;
> >  
> > +#if defined(CONFIG_OF_GPIO)
> > +	/**
> > +	 * @of_gpio_n_cells:
> > +	 *
> > +	 * Number of cells used to form the GPIO specifier.
> > +	 */
> > +	unsigned int of_gpio_n_cells;
> > +#endif
> 
> This patch adds new fields to struct gpio_chip and struct gpio_ops
> #ifdeffed with CONFIG_OF_GPIO, but the code accessing these fields is
> not guarded with that #ifdef resulting in compilation failures in
> several defconfigs like for example animeo_ip_defconfig.

Argh..

> I fixed this by adding the missing #ifdefs in the code.

Thanks a lot.

Regards,
  Marco



More information about the barebox mailing list