summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorRyan QIAN <b32804@freescale.com>2012-02-29 13:59:07 +0800
committerRyan QIAN <b32804@freescale.com>2012-02-29 14:46:04 +0800
commitff20422b34b917ff8daf4c5f495f7a3f24dca8d6 (patch)
tree9c0d0f7ef332b296171d4e8361ff76ed5d865e34 /drivers/mmc
parent356e4530f69138a83996cab994b8292281a18500 (diff)
ENGR00175692-01 [MX6DL] SD3.0: can not recognize SD3.0 cards on some boards.
Improve compatibility by doing the following: - Change DSE to 34ohm for 200MHz - Reset host controller before changing clk tuning ctrl reg Signed-off-by: Ryan QIAN <b32804@freescale.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/core/sd.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index b7291e0444f6..5d9d7529e130 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -637,11 +637,13 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card)
min += card->host->tuning_step;
}
- max = min;
+ max = min + card->host->tuning_step;
while (max < card->host->tuning_max) {
mmc_set_tuning(card->host, max);
- if (!mmc_send_tuning_cmd(card))
+ if (mmc_send_tuning_cmd(card)) {
+ max -= card->host->tuning_step;
break;
+ }
max += card->host->tuning_step;
}