gpio generic driver

Barbier, Renaud renaud.barbier at abaco.com
Fri Jul 24 04:40:07 EDT 2020


Of course. Preparing a patch

> -----Original Message-----
> From: Lucas Stach [mailto:l.stach at pengutronix.de]
> Sent: 24 July 2020 09:20
> To: Barbier, Renaud <renaud.barbier at abaco.com>;
> barebox at lists.infradead.org
> Subject: Re: gpio generic driver
> 
> 
> 
> [**EXTERNAL SOURCE**]:Please verify the source before clicking link or
> opening attachment.
> 
> Am Donnerstag, den 23.07.2020, 19:51 +0000 schrieb Barbier, Renaud:
> > Question regarding the function below:
> >
> > static int bgpio_get(struct gpio_chip *gc, unsigned int gpio)
> >   {
> >           struct bgpio_chip *bgc = to_bgpio_chip(gc);
> >
> > ~         return bgc->read_reg(bgc->reg_dat) & bgc->pin2mask(bgc, gpio);
> >   }
> >
> > This returns the value from the register i.e the value as in 0x01000000 for
> bit 3BE or 28LE. This is what I see using the drivers/gpio/gpio-mpc8xxx.c
> driver.
> >
> > Is it not supposed to return just 0 or 1?
> >
> > Linux has
> >
> > return !!(gc->read_reg(gc->reg_dat) & bgpio_line2mask(gc, gpio));
> 
> This shouldn't make a difference when the return value is just used in
> a condition, but it may confuse other uses which expect the normalized
> 1/0 form.
> 
> Care to send a patch to change this to the more correct Linux version?
> 
> Regards,
> Lucas



More information about the barebox mailing list