mmc: fsl_esdhc: make sure delay chain locked for HS400
authorYangbo Lu <yangbo.lu@nxp.com>
Tue, 20 Oct 2020 03:04:52 +0000 (11:04 +0800)
committerPeng Fan <peng.fan@nxp.com>
Sat, 28 Nov 2020 02:39:44 +0000 (10:39 +0800)
commit8ee802f899efb422cbd5dc51a734d735320e9999
tree0535a2e17bf25b4d0f368f16ad533606ca373acb
parent263ddfc3454ead3a988adef39b962479adce2b28
mmc: fsl_esdhc: make sure delay chain locked for HS400

For eMMC HS400 mode, the DLL reset is a required step for mmc rescan.
This step has not been documented in reference manual, but the RM will
be fixed sooner or later.

In previous commit to support eMMC HS400,
  db8f936 mmc: fsl_esdhc: support eMMC HS400 mode

the steps to configure DLL could be found in commit message,
  13. Set DLLCFG0[DLL_ENABLE] and DLLCFG0[DLL_FREQ_SEL].
  14. Wait for delay chain to lock.

these would be fixed as,
  13.   Set DLLCFG0[DLL_ENABLE] and DLLCFG0[DLL_FREQ_SEL].
  13.1  Write DLLCFG0[DLL_RESET] to 1 and wait for 1us,
        then write DLLCFG0[DLL_RESET]
  14.   Wait for delay chain to lock.

This patch is to add the step of DLL reset, and make sure delay chain
locked for HS400.

Fixes: db8f93672b42 ("mmc: fsl_esdhc: support eMMC HS400 mode")
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
drivers/mmc/fsl_esdhc.c
include/fsl_esdhc.h