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

Jaehoon Chung jh80.chung at samsung.com
Mon Mar 5 09:24:15 UTC 2018


On 03/05/2018 06:22 PM, Hannes Schmelzer wrote:
> 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.

I want to add the just one line for this. Not need to add the more line. :)

Best Regards,
Jaehoon Chung

> 
> 
> 
> 
> 
> 
> 



More information about the U-Boot mailing list