summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorNaveen Kumar Arepalli <naveenk@nvidia.com>2013-03-11 11:56:26 +0530
committerSimone Willett <swillett@nvidia.com>2013-03-15 14:42:28 -0700
commit8c0157daa28da41204ed4d82aad6f9ee11d66120 (patch)
tree6786938a7fe828336d0efe359c545b4618514556 /drivers/mmc
parent33d36276d9cace800e88f9e6fe42129a615514f0 (diff)
mmc: tegra: Forcing feed back clock as default
Explicitly Enable FEEDBACK INPUT_IO_CLk for sdmmc Bug 1239457 Bug 1252268 Change-Id: Ib8de546b6630c7a12c31a90fd9a2465ea604c564 Signed-off-by: Naveen Kumar Arepalli <naveenk@nvidia.com> Reviewed-on: http://git-master/r/206630 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci-tegra.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 39f0e6543a92..693143224eba 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -47,6 +47,7 @@
#define SDHCI_VNDR_CLK_CTRL_SDMMC_CLK 0x1
#define SDHCI_VNDR_CLK_CTRL_PADPIPE_CLKEN_OVERRIDE 0x8
#define SDHCI_VNDR_CLK_CTRL_SPI_MODE_CLKEN_OVERRIDE 0x4
+#define SDHCI_VNDR_CLK_CNTL_INPUT_IO_CLK 0x2
#define SDHCI_VNDR_CLK_CTRL_BASE_CLK_FREQ_SHIFT 8
#define SDHCI_VNDR_CLK_CTRL_TAP_VALUE_SHIFT 16
#define SDHCI_VNDR_CLK_CTRL_TRIM_VALUE_SHIFT 24
@@ -154,6 +155,8 @@ static struct tegra_sdhci_hw_ops tegra_11x_sdhci_ops = {
#define NVQUIRK_ENABLE_SDR50_TUNING BIT(13)
/* Enable Infinite Erase Timeout*/
#define NVQUIRK_INFINITE_ERASE_TIMEOUT BIT(14)
+/* ENAABLE FEEDBACK IO CLOCK */
+#define NVQUIRK_EN_FEEDBACK_CLK BIT(16)
struct sdhci_tegra_soc_data {
struct sdhci_pltfm_data *pdata;
@@ -430,6 +433,10 @@ static void tegra_sdhci_reset_exit(struct sdhci_host *sdhci, u8 mask)
vendor_ctrl &=
~SDHCI_VNDR_CLK_CTRL_SPI_MODE_CLKEN_OVERRIDE;
}
+ if (soc_data->nvquirks & NVQUIRK_EN_FEEDBACK_CLK) {
+ vendor_ctrl &=
+ ~SDHCI_VNDR_CLK_CNTL_INPUT_IO_CLK;
+ }
if (soc_data->nvquirks & NVQUIRK_SET_TAP_DELAY) {
if ((tegra_host->tuning_status == TUNING_STATUS_DONE) &&
(sdhci->mmc->pm_flags & MMC_PM_KEEP_POWER)) {
@@ -1732,6 +1739,7 @@ static struct sdhci_tegra_soc_data soc_data_tegra20 = {
#if !defined(CONFIG_ARCH_TEGRA_2x_SOC)
NVQUIRK_ENABLE_PADPIPE_CLKEN |
NVQUIRK_DISABLE_SPI_MODE_CLKEN |
+ NVQUIRK_EN_FEEDBACK_CLK |
NVQUIRK_SET_TAP_DELAY |
NVQUIRK_ENABLE_SDR50_TUNING |
NVQUIRK_ENABLE_SDR50 |