u-boot-brain/drivers/mmc
Yangbo Lu db8f93672b mmc: fsl_esdhc: support eMMC HS400 mode
The process for eMMC HS400 mode for eSDHC is,

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: Yangbo Lu <yangbo.lu@nxp.com>
2020-10-12 15:46:34 +08:00
..
am654_sdhci.c mmc: am654_sdhci: Use MMC_MODES_END value instead of hardcoded value 2020-08-11 20:34:45 +05:30
arm_pl180_mmci.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
arm_pl180_mmci.h mmc: arm_pl180_mmci: Sync compatible with kernel 2019-04-23 15:31:30 +02:00
aspeed_sdhci.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
atmel_sdhci.c mmc: atmel-sdhci: use mmc_of_parse to get the DT properties 2020-09-25 10:39:22 +03:00
bcm2835_sdhci.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
bcm2835_sdhost.c mmc: bcm2835-host: Fix not calling dev_dbg with a device 2020-09-30 08:52:49 -04:00
bcmstb_sdhci.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
ca_dw_mmc.c mmc: ca_dw_mmc: Misc cleanup of driver 2020-06-15 09:45:22 +08:00
davinci_mmc.c treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
dw_mmc.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
exynos_dw_mmc.c ARM: Odroid XU3: Modify exynos dw_mmc driver to support Odroid XU3 in DM MMC 2018-08-06 10:53:53 +09:00
fsl_esdhc_imx.c mmc: fsl_esdhc_imx: check the clock stable status after config the clock rate. 2020-09-17 14:41:07 +02:00
fsl_esdhc_spl.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
fsl_esdhc.c mmc: fsl_esdhc: support eMMC HS400 mode 2020-10-12 15:46:34 +08:00
ftsdc010_mci.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
ftsdc010_mci.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gen_atmel_mci.c treewide: convert devfdt_get_addr_ptr() to dev_read_addr_ptr() 2020-08-22 08:53:37 -06:00
hi6220_dw_mmc.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
iproc_sdhci.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
jz_mmc.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
Kconfig mmc: Add MMC controller driver for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
kona_sdhci.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
Makefile mmc: Add MMC controller driver for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
meson_gx_mmc.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
mmc_boot.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
mmc_legacy.c Move eSDHC adapter card identification to board files 2020-07-27 14:16:28 +05:30
mmc_private.h Move eSDHC adapter card identification to board files 2020-07-27 14:16:28 +05:30
mmc_spi.c mmc_spi: generate R1b response for erase and stop transmission command 2020-07-14 16:19:47 +08:00
mmc_write.c common: Drop part.h from common header 2020-05-18 17:33:33 -04:00
mmc-uclass.c mmc: add a mmc_hs400_prepare_ddr() interface 2020-10-12 15:46:34 +08:00
mmc.c mmc: add a mmc_hs400_prepare_ddr() interface 2020-10-12 15:46:34 +08:00
msm_sdhci.c mmc: msm_sdhci: Use mmc_of_parse for setting host_caps 2020-09-15 10:13:37 +08:00
mtk-sd.c mmc: mtk-sd: Fix not calling dev_err with a device 2020-09-30 08:52:52 -04:00
mv_sdhci.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
mvebu_mmc.c treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
mxcmmc.c treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
mxsmmc.c drivers: avoid using aliases on drivers when OF_PLATDATA is enabled 2020-07-28 19:30:39 -06:00
nexell_dw_mmc.c mmc: add nexell driver 2020-07-29 08:43:40 -04:00
octeontx_hsmmc.c mmc: Add MMC controller driver for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
octeontx_hsmmc.h mmc: Add MMC controller driver for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
omap_hsmmc.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
pci_mmc.c acpi: mmc: Generate ACPI info for the PCI SD Card 2020-07-17 14:32:24 +08:00
pic32_sdhci.c mmc: pic32: Refresh PIC32 MMC driver 2020-09-23 00:08:52 +02:00
pxa_mmc_gen.c arm: pxa: mmc: add driver model support 2020-06-30 11:13:11 -04:00
renesas-sdhi.c mmc: renesas-sdhi: Enable support for R8A774A1 2020-07-25 11:16:40 +02:00
rockchip_dw_mmc.c dtoc: extend dtoc to use struct driver_info when linking nodes 2020-07-09 22:00:29 -06:00
rockchip_sdhci.c dtoc: extend dtoc to use struct driver_info when linking nodes 2020-07-09 22:00:29 -06:00
rpmb.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
s5p_sdhci.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
sandbox_mmc.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
sdhci-cadence.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
sdhci.c mmc: sdhci: Use upper/lower_32_bits macros 2020-08-20 09:58:59 +02:00
sh_mmcif.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
sh_mmcif.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sh_sdhi.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
snps_dw_mmc.c treewide: convert devfdt_get_addr_ptr() to dev_read_addr_ptr() 2020-08-22 08:53:37 -06:00
socfpga_dw_mmc.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
sti_sdhci.c treewide: convert (void *)devfdt_get_addr() to dev_read_addr_ptr() 2020-07-25 14:46:57 -06:00
stm32_sdmmc2.c common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
sunxi_mmc.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
tangier_sdhci.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
tegra_mmc.c common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
tmio-common.c treewide: convert devfdt_get_addr() to dev_read_addr() 2020-07-25 14:46:57 -06:00
tmio-common.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
uniphier-sd.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
xenon_sdhci.c mmc: xenon_sdhci: Add missing common host capabilities 2020-09-15 10:15:56 +08:00
zynq_sdhci.c mmc: zynq: Fix incorrect indentation 2020-09-23 10:31:41 +02:00