[U-Boot] [PATCH 03/10] spi: sun4i: Simplify reg writes using set/clrbits_le32

Jagan Teki jagan at amarulasolutions.com
Wed Feb 13 10:24:55 UTC 2019


On Wed, Feb 13, 2019 at 6:46 AM André Przywara <andre.przywara at arm.com> wrote:
>
> On 09/02/2019 13:14, Jagan Teki wrote:
> > Update the existing register writes using setbits_le32 and
> > clrbits_le32 in required places.
> >
> > Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
> > ---
> >  drivers/spi/sun4i_spi.c | 21 ++++++++-------------
> >  1 file changed, 8 insertions(+), 13 deletions(-)
> >
> > diff --git a/drivers/spi/sun4i_spi.c b/drivers/spi/sun4i_spi.c
> > index 87b396a96e..5446cebe7c 100644
> > --- a/drivers/spi/sun4i_spi.c
> > +++ b/drivers/spi/sun4i_spi.c
> > @@ -283,20 +283,18 @@ static int sun4i_spi_claim_bus(struct udevice *dev)
> >  {
> >       struct sun4i_spi_priv *priv = dev_get_priv(dev->parent);
> >
> > -     writel(SUN4I_CTL_ENABLE | SUN4I_CTL_MASTER | SUN4I_CTL_TP |
> > -            SUN4I_CTL_CS_MANUAL | SUN4I_CTL_CS_ACTIVE_LOW,
> > -            &priv->regs->ctl);
> > +     setbits_le32(&priv->regs->ctl, SUN4I_CTL_ENABLE |
> > +                  SUN4I_CTL_MASTER | SUN4I_CTL_TP |
> > +                  SUN4I_CTL_CS_MANUAL | SUN4I_CTL_CS_ACTIVE_LOW);
> > +
>
> Careful, this changes semantics. The original call explicitly cleared
> all the remaining bits, which is important for the setup (some bits are
> default 1).

Usually claiming would need to setup require bits, on that case
setbits is safer rather than complete writel

> And besides I am not sure what this change would improve anyway, as it
> isn't shorter. If at all, I'd use clrsetbits_le32(), to mask off the
> reserved bits 31:21.

It's not about the shorter and just enable require bits which is
usually do any claim call in SPI.


More information about the U-Boot mailing list