mmc: sdhci-esdhc-imx: reset tuning circuit when power on mmc card
authorHaibo Chen <haibo.chen@nxp.com>
Tue, 18 Apr 2017 10:05:31 +0000 (18:05 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 24 Apr 2017 19:42:28 +0000 (21:42 +0200)
commitd9370424c9482d0ca2722627309c6f6bae131d97
tree2f6a8887e53b4bc83158753d04a42f0d11fdf52c
parenta82d12b8d5a626e30d2f15627079abdaa2e77c05
mmc: sdhci-esdhc-imx: reset tuning circuit when power on mmc card

USDHC tuning circuit should be reset before every time card enumeration
or re-enumeration.

SD3.0 card need tuning. For SDR104 card, when system suspend in standby
mode, and then resume back, the IO timing is still SDR104(tuned) which
may result in card re-enumeration fail in low card speed(400khz) for some
cards. And we did meet the issue that in certain probability, SDR104
card meet mmc command CRC/Timeout error when send CMD2 during mmc bus
resume.

This patch reset the tuning circuit when the ios timing is
MMC_TIMING_LEGACY/MMC_TIMING_MMC_HS/MMC_TIMING_SD_HS, which means both
mmc_power_up() and mmc_power_off() will reset the tuning circuit.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Acked-by: Dong Aisheng <aisheng.dong@nxp.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-esdhc-imx.c