diff options
author | Stefan Agner <stefan.agner@toradex.com> | 2014-06-24 13:47:49 +0200 |
---|---|---|
committer | Stefan Agner <stefan.agner@toradex.com> | 2014-07-21 14:26:21 +0200 |
commit | 29b19ff42a7d4c609f824c13ca139eef7332ff1f (patch) | |
tree | b23a3d8879cc473d9804582ceee93e24452119f6 /drivers | |
parent | ff09771639a39c834f364a75faa49bc44bac901e (diff) |
mmc: tegra: use 1.8V quirk only on affected instances
The 1.8V quirk also affected the internal eMMC which disabled newer
modes such as SDR50, SDR104 and DDR50. This in turn lead to an
out of spec usage since the clock was still 50MHz.
By creating a no_1v8 field in the platform data we can now enable
this work around on a per-instance basis. Hence we enable the
quirk only on the controllers which are connected to the external
SD-slots.
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/sdhci-tegra.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 73b65ce3089e..8b79ae82793e 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -943,11 +943,6 @@ static struct sdhci_pltfm_data sdhci_tegra_pdata = { SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | SDHCI_QUIRK_NO_CALC_MAX_DISCARD_TO | SDHCI_QUIRK_BROKEN_CARD_DETECTION | -#if defined(CONFIG_MACH_APALIS_T30) || defined(CONFIG_MACH_COLIBRI_T30) -/* Hack: SDR12, SDR25, SDR50, SDR104 and DDR50 all require 1.8V signalling which - our current T30 designs can't do. */ - SDHCI_QUIRK2_NO_1_8_V | -#endif 0, .ops = &tegra_sdhci_ops, }; @@ -982,6 +977,13 @@ static int __devinit sdhci_tegra_probe(struct platform_device *pdev) goto err_no_mem; } + /* + * Hack: SDR12, SDR25, SDR50, SDR104 and DDR50 all require 1.8V + * signalling which our current T30 designs can't do. + */ + if (plat->no_1v8) + host->quirks |= SDHCI_QUIRK2_NO_1_8_V; + #ifdef CONFIG_MMC_EMBEDDED_SDIO if (plat->mmc_data.embedded_sdio) mmc_set_embedded_sdio_data(host->mmc, |