[U-Boot] [PATCH v2 1/2] mmc: sdhci: add SDHCI_QUIRK_BROKEN_HISPD_MODE

Hannes Schmelzer Hannes.Schmelzer at br-automation.com
Mon Mar 5 09:22:31 UTC 2018


Jaehoon Chung <jh80.chung at samsung.com> schrieb am 05.03.2018 10:19:24:

> 
> On 03/02/2018 07:00 PM, Hannes Schmelzer wrote:
> > From: Hannes Schmelzer <oe5hpm at oevsv.at>
> > 
> > Some IP-core implementations of the SDHCI have different troubles on 
the
> > silicon where they are placed.
> > 
> > On ZYNQ platform for example Xilinx doesn't accept the hold timing of 
an
> > eMMC chip which operates in High-Speed mode and must be forced to
> > operate in non high-speed mode. To get rid of this
> > "SDHCI_QUIRK_BROKEN_HISPD_MODE" is introduced.
> > 
> > For more details about this refer to the Xilinx answer-recor #59999
> > https://www.xilinx.com/support/answers/59999.html
> > 
> > This commit:
> > - doesn't set HISPD bit on the host-conroller
> > - reflects this fact within the host-controller capabilities
> > 
> > Upon this the layer above (mmc-driver) can setup the card correctly.
> > 
> > Otherwise the MMC card will be switched into high-speed mode and 
causes
> > possible timing violation on the host-controller side.
> > 
> > Signed-off-by: Hannes Schmelzer <oe5hpm at oevsv.at>
> > 
> > jh80.chung at samsung.com
> 
> Maybe this is the wrong adding.

Yes, some copy/paste mistake ... will fix this in V3.

> 
> > 
> > Signed-off-by: Hannes Schmelzer <hannes.schmelzer at br-automation.com>
> > ---
> > 
> > Changes in v2:
> > - don't use the SDHCI_QUIRK_NO_HISPD_BIT for getting rid of this,
> > since this quirk was designed for another purpose. Instead introduce 
the
> > new SDHCI_QUIRK_BROKEN_HISPD_MODE quirk.
> > 
> >  drivers/mmc/sdhci.c | 8 ++++++++
> >  include/sdhci.h     | 6 ++++++
> >  2 files changed, 14 insertions(+)
> > 
> > diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> > index d31793a..2df4214 100644
> > --- a/drivers/mmc/sdhci.c
> > +++ b/drivers/mmc/sdhci.c
> > @@ -465,6 +465,9 @@ static int sdhci_set_ios(struct mmc *mmc)
> >     if (host->quirks & SDHCI_QUIRK_NO_HISPD_BIT)
> >        ctrl &= ~SDHCI_CTRL_HISPD;
> > 
> > +   if (host->quirks & SDHCI_QUIRK_BROKEN_HISPD_MODE)
> > +      ctrl &= ~SDHCI_CTRL_HISPD;
> > +
> 
> you can combine with above condition..like this.
> if (host->quriks & (SDHCI_QUIRK_NO_HISPD_BIT) ||
>    host->quirks & SDHCI_QUIRK_NO_BROKEN_HISPD_MODE) ?
> 

Yeah, that would be possible.
My thinking for separating this was the better readabilty.
But if you prefer your suggestion, this is also no problem for me.
Please tell me what you prefer.






More information about the U-Boot mailing list