mmc: tegra: Option to disable all UHS modes
Pavan Kunapuli [Wed, 13 Feb 2013 09:51:50 +0000 (14:51 +0530)]
Adding option to disable all the UHS modes - SDR12, SDR25, SDR50,
DDR50, SDR104, HS200.

Bug 1189241

Change-Id: I673cf5c819cb4c2ec0525f6e47b493ad1a4b7112
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/199931
Reviewed-by: Rama Kandhala <rkandhala@nvidia.com>

arch/arm/mach-tegra/include/mach/sdhci.h
drivers/mmc/host/sdhci-tegra.c

index de000ab..7c79329 100644 (file)
 #define MMC_OCR_2V8_MASK    0x00010000
 
 /* uhs mask can be used to mask any of the UHS modes support */
-#define MMC_UHS_MASK_SDR25     1
-#define MMC_UHS_MASK_SDR50     2
-#define MMC_UHS_MASK_DDR50     4
-#define MMC_UHS_MASK_SDR104    8
+#define MMC_UHS_MASK_SDR12     0x1
+#define MMC_UHS_MASK_SDR25     0x2
+#define MMC_UHS_MASK_SDR50     0x4
+#define MMC_UHS_MASK_DDR50     0x8
+#define MMC_UHS_MASK_SDR104    0x10
+#define MMC_MASK_HS200         0x20
 
 struct tegra_sdhci_platform_data {
        int cd_gpio;
index 2fa55f2..a6e674e 100644 (file)
@@ -505,6 +505,12 @@ static void tegra_sdhci_reset_exit(struct sdhci_host *sdhci, u8 mask)
 
                if (plat->uhs_mask & MMC_UHS_MASK_SDR25)
                        sdhci->mmc->caps &= ~MMC_CAP_UHS_SDR25;
+
+               if (plat->uhs_mask & MMC_UHS_MASK_SDR12)
+                       sdhci->mmc->caps &= ~MMC_CAP_UHS_SDR12;
+
+               if (plat->uhs_mask & MMC_MASK_HS200)
+                       sdhci->mmc->caps2 &= ~MMC_CAP2_HS200;
        }
 }