[U-Boot] [PATCH] mmc: sdhci: consider SDHCI_QUIRK_NO_HISPD_BIT in host_caps
Jaehoon Chung
jh80.chung at samsung.com
Fri Mar 2 06:24:38 UTC 2018
On 03/01/2018 11:36 PM, Hannes Schmelzer wrote:
> 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. Due to this fact the
> "SDHCI_QUIRK_NO_HISPD_BIT" quirk was born.
>
> This commit reflects this fact within the host-controller capabilities,
> so that 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>
SDHCI_QUIRK_NO_HISPD_BIT had added because of Samsung SoC.
(I had added this quirk, so i know exactly what purpose.)
Samsung SoC didn't use the SDHCI_CTRL_HISPD bit at HOST_CNOTROL register.
Instead, its bit is used to other purpose.
NACK.
Best Regards,
Jaehoon Chung
>
> ---
>
> drivers/mmc/sdhci.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
> index d31793a..defe6db 100644
> --- a/drivers/mmc/sdhci.c
> +++ b/drivers/mmc/sdhci.c
> @@ -602,6 +602,11 @@ int sdhci_setup_cfg(struct mmc_config *cfg, struct sdhci_host *host,
> cfg->host_caps &= ~MMC_MODE_8BIT;
> }
>
> + if (host->quirks & SDHCI_QUIRK_NO_HISPD_BIT) {
> + cfg->host_caps &= ~MMC_MODE_HS;
> + cfg->host_caps &= ~MMC_MODE_HS_52MHz;
> + }
> +
> if (host->host_caps)
> cfg->host_caps |= host->host_caps;
>
>
More information about the U-Boot
mailing list