|
@@ -118,6 +118,8 @@
|
|
|
* when reading data from the card
|
|
|
*/
|
|
|
#define ESDHC_FLAG_ERR004536 BIT(7)
|
|
|
+/* The IP supports HS200 mode */
|
|
|
+#define ESDHC_FLAG_HS200 BIT(8)
|
|
|
|
|
|
struct esdhc_soc_data {
|
|
|
u32 flags;
|
|
@@ -145,12 +147,13 @@ static struct esdhc_soc_data usdhc_imx6q_data = {
|
|
|
|
|
|
static struct esdhc_soc_data usdhc_imx6sl_data = {
|
|
|
.flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING
|
|
|
- | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_ERR004536,
|
|
|
+ | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_ERR004536
|
|
|
+ | ESDHC_FLAG_HS200,
|
|
|
};
|
|
|
|
|
|
static struct esdhc_soc_data usdhc_imx6sx_data = {
|
|
|
.flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING
|
|
|
- | ESDHC_FLAG_HAVE_CAP1,
|
|
|
+ | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200,
|
|
|
};
|
|
|
|
|
|
struct pltfm_imx_data {
|
|
@@ -1004,6 +1007,9 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
|
|
|
host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
|
|
|
host->mmc->caps |= MMC_CAP_1_8V_DDR;
|
|
|
|
|
|
+ if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200))
|
|
|
+ host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200;
|
|
|
+
|
|
|
/*
|
|
|
* errata ESDHC_FLAG_ERR004536 fix for MX6Q TO1.2 and MX6DL
|
|
|
* TO1.1, it's harmless for MX6SL
|