[U-Boot] [PATCH 2/4] mmc: fsl_esdhc: Add support to force VSELECT set
Marek Vasut
marex at denx.de
Tue Feb 17 08:10:17 CET 2015
On Tuesday, February 17, 2015 at 02:38:31 AM, Troy Kisky wrote:
> On 2/16/2015 2:38 PM, Otavio Salvador wrote:
> > Some boards cannot do voltage negotiation but need to set the VSELECT
> > bit forcely to ensure it to work at 1.8V.
> >
> > This commit adds CONFIG_SYS_FSL_ESDHC_FORCE_VSELECT flag for this use.
> >
> > Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> > ---
> >
> > doc/README.fsl-esdhc | 1 +
> > drivers/mmc/fsl_esdhc.c | 4 ++++
> > 2 files changed, 5 insertions(+)
> >
> > diff --git a/doc/README.fsl-esdhc b/doc/README.fsl-esdhc
> > index b70f271..619c6b2 100644
> > --- a/doc/README.fsl-esdhc
> > +++ b/doc/README.fsl-esdhc
> > @@ -1,5 +1,6 @@
> >
> > CONFIG_SYS_FSL_ESDHC_LE means ESDHC IP is in little-endian mode.
> > CONFIG_SYS_FSL_ESDHC_BE means ESDHC IP is in big-endian mode.
> >
> > +CONFIG_SYS_FSL_ESDHC_FORCE_VSELECT forces to run at 1.8V.
> >
> > Accessing ESDHC registers can be determined by ESDHC IP's endian
> > mode or processor's endian mode.
> >
> > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> > index eb0fbf9..5fde2b6 100644
> > --- a/drivers/mmc/fsl_esdhc.c
> > +++ b/drivers/mmc/fsl_esdhc.c
> > @@ -524,6 +524,10 @@ static int esdhc_init(struct mmc *mmc)
> >
> > /* Set timout to the maximum value */
> > esdhc_clrsetbits32(®s->sysctl, SYSCTL_TIMEOUT_MASK, 14 << 16);
> >
> > +#ifdef CONFIG_SYS_FSL_ESDHC_FORCE_VSELECT
> > + esdhc_setbits32(®s->vendorspec, ESDHC_VENDORSPEC_VSELECT);
> > +#endif
> > +
> >
> > return 0;
> >
> > }
>
> What if 1 controller needs it set and another needs it clear?
Then this code won't work, duh ;-)
Best regards,
Marek Vasut
More information about the U-Boot
mailing list