diff options
author | Dong Aisheng <aisheng.dong@freescale.com> | 2015-05-27 06:13:31 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2015-06-01 03:07:18 -0400 |
commit | 4245afff8b241426792d60b5b9078583f52d4029 (patch) | |
tree | e58cc587371e6ad3f0a1a3c72dd4261cac873abb | |
parent | 913d4951a50fba6acd96491c5b2f089a69308a60 (diff) |
mmc: sdhci-esdhc-imx: add quirk SDHCI_QUIRK2_BROKEN_HS200 for imx6qdl
The iMX6Q/DL can not support HS200 mode while iMX6SL and iMX6SX can,
so introduce a new flag to distinguish them.
Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/mmc/host/sdhci-esdhc-imx.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index bcb56734e92f..faf0cb910c96 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c | |||
@@ -118,6 +118,8 @@ | |||
118 | * when reading data from the card | 118 | * when reading data from the card |
119 | */ | 119 | */ |
120 | #define ESDHC_FLAG_ERR004536 BIT(7) | 120 | #define ESDHC_FLAG_ERR004536 BIT(7) |
121 | /* The IP supports HS200 mode */ | ||
122 | #define ESDHC_FLAG_HS200 BIT(8) | ||
121 | 123 | ||
122 | struct esdhc_soc_data { | 124 | struct esdhc_soc_data { |
123 | u32 flags; | 125 | u32 flags; |
@@ -145,12 +147,13 @@ static struct esdhc_soc_data usdhc_imx6q_data = { | |||
145 | 147 | ||
146 | static struct esdhc_soc_data usdhc_imx6sl_data = { | 148 | static struct esdhc_soc_data usdhc_imx6sl_data = { |
147 | .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING | 149 | .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING |
148 | | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_ERR004536, | 150 | | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_ERR004536 |
151 | | ESDHC_FLAG_HS200, | ||
149 | }; | 152 | }; |
150 | 153 | ||
151 | static struct esdhc_soc_data usdhc_imx6sx_data = { | 154 | static struct esdhc_soc_data usdhc_imx6sx_data = { |
152 | .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING | 155 | .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING |
153 | | ESDHC_FLAG_HAVE_CAP1, | 156 | | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200, |
154 | }; | 157 | }; |
155 | 158 | ||
156 | struct pltfm_imx_data { | 159 | struct pltfm_imx_data { |
@@ -1004,6 +1007,9 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) | |||
1004 | host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN; | 1007 | host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN; |
1005 | host->mmc->caps |= MMC_CAP_1_8V_DDR; | 1008 | host->mmc->caps |= MMC_CAP_1_8V_DDR; |
1006 | 1009 | ||
1010 | if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200)) | ||
1011 | host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; | ||
1012 | |||
1007 | /* | 1013 | /* |
1008 | * errata ESDHC_FLAG_ERR004536 fix for MX6Q TO1.2 and MX6DL | 1014 | * errata ESDHC_FLAG_ERR004536 fix for MX6Q TO1.2 and MX6DL |
1009 | * TO1.1, it's harmless for MX6SL | 1015 | * TO1.1, it's harmless for MX6SL |