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

Reply via email to