Skip to content
  • Yangbo Lu's avatar
    mmc: sdhci-of-esdhc: add hs400 mode support · 54e08d9a
    Yangbo Lu authored
    
    
    1.  Perform the Tuning Process at the HS400 target operating frequency.
        Latched the clock division value.
    2.  if read transaction, then set the SDTIMNGCTL[FLW_CTL_BG].
    3.  Switch to High Speed mode and then set the card clock frequency to
        a value not greater than 52Mhz
    4.  Clear TBCTL[TB_EN],tuning block enable bit.
    5.  Change to 8 bit DDR Mode
    6.  Switch the card to HS400 mode.
    7.  Set TBCTL[TB_EN], tuning block enable bit.
    8.  Clear SYSCTL[SDCLKEN]
    9.  Wait for PRSSTAT[SDSTB] to be set
    10. Change the clock division to latched value.Set TBCTL[HS 400 mode]
        and Set SDCLKCTL[CMD_CLK_CTRL]
    11. Set SYSCTL[SDCLKEN]
    12. Wait for PRSSTAT[SDSTB] to be set
    13. Set DLLCFG0[DLL_ENABLE] and DLLCFG0[DLL_FREQ_SEL].
    14. Wait for delay chain to lock.
    15. Set TBCTL[HS400_WNDW_ADJUST]
    16. Again clear SYSCTL[SDCLKEN]
    17. Wait for PRSSTAT[SDSTB] to be set
    18. Set ESDHCCTL[FAF]
    19. Wait for ESDHCCTL[FAF] to be cleared
    20. Set SYSCTL[SDCLKEN]
    21. Wait for PRSSTAT[SDSTB] to be set.
    
    Signed-off-by: default avatarYangbo Lu <yangbo.lu@nxp.com>
    Signed-off-by: default avatarYinbo Zhu <yinbo.zhu@nxp.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    54e08d9a