u-boot-brain/drivers/mmc
BOUGH CHEN 5cf12031a4 mmc: correct the HS400 initialization process
After the commit b9a2a0e2e9 ("mmc: Add support for downgrading
HS200/HS400 to HS mode"), it add a parameter in mmc_set_card_speed()
which indicates that the HS200/HS400 to HS downgrade is happening.

During the HS400 initialization, first select to HS200, and config
the related clock rate, then downgrade to HS mode. So here also need
to config the downgrade value to be true for two reasons. First,
make sure in the function mmc_set_card_speed(), after switch to HS
mode, first config the clock rate, then read the EXT_CSD, avoid
receiving data of EXT_CSD in HS mode at 200MHz. Second, after issue
the MMC_CMD_SWITCH command, it need to wait a bit then switch bus
properties.

Test on i.MX8QM MEK board, some Micron eMMC will stuck in transfer
mode in this case, and USDHC will never get data transfer complete
status, cause the uboot hang.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
2019-03-29 10:53:18 -04:00
..
arm_pl180_mmci.c mmc: arm_pl180_mmci: Remove cd_inverted host's struct field 2018-08-03 19:53:54 -04:00
arm_pl180_mmci.h mmc: arm_pl180_mmci: Remove cd_inverted host's struct field 2018-08-03 19:53:54 -04:00
atmel_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bcm2835_sdhci.c mmc: use core clock frequency in bcm2835 sdhost 2018-04-05 13:17:43 +02:00
bcm2835_sdhost.c mmc: Unirqify bcm2835_sdhost and fix writes 2018-05-23 22:31:42 +02:00
bcmstb_sdhci.c board: arm: Add support for Broadcom BCM7445 2018-07-10 16:55:57 -04:00
davinci_mmc.c MMC: davinici_mmc: Enable CD and WP with DM and OF_CONTROL 2018-09-11 21:49:02 -04:00
dw_mmc.c mmc: dwmmc: Poll for iDMAC TX/RX interrupt 2019-02-18 13:00:54 +01: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_spl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fsl_esdhc.c mmc: fsl_esdhc: Fix DM_REGULATOR ifdefs for SPL builds 2019-02-15 22:01:15 +01:00
ftsdc010_mci.c mmc: ftsdc010_mci: Sync compatible with DT mmc node 2018-05-29 14:45:03 +08: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 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
hi6220_dw_mmc.c mmc: hi6220_dw_mmc: add compatible for Poplar support 2019-01-25 12:12:57 -05:00
jz_mmc.c mmc: jz_mmc: Compile-out write support if disabled 2019-01-16 13:56:43 +01:00
k3_arsan_sdhci.c mmc: k3_arasan: Add sdhci driver support for K3 family SoCs 2018-09-11 08:32:55 -04:00
Kconfig Kconfig: Migrate BOUNCE_BUFFER 2019-01-19 09:49:26 -05:00
kona_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile mmc: Add JZ47xx SD/MMC controller driver 2018-12-19 15:23:01 +01:00
meson_gx_mmc.c mmc: meson-gx: Add AXG compatible 2018-11-26 14:39:57 +01:00
mmc_boot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc_legacy.c mmc: Improve tinification 2018-05-13 07:57:32 -04:00
mmc_private.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc_spi.c lib: merge CRC16-CCITT into u-boot/crc.h 2018-12-08 20:18:32 -05:00
mmc_write.c mmc: Use proper IS_ENABLED macro to check block support 2019-01-16 13:56:43 +01:00
mmc-uclass.c mmc: Downgrade SD/MMC from UHS/HS200/HS400 modes before boot 2019-02-16 18:12:17 +01:00
mmc.c mmc: correct the HS400 initialization process 2019-03-29 10:53:18 -04:00
msm_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mtk-sd.c mmc: mtk-sd: fix SPL compilation when GPIO=y and SPL_GPIO=n 2019-01-26 08:13:54 -05:00
mv_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mvebu_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxcmmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mxsmmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omap_hsmmc.c Samsung sound patches (applied for Samsung maintainer) 2019-02-10 08:11:32 -05:00
pci_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pic32_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pxa_mmc_gen.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
renesas-sdhi.c mmc: renesas: Unconditionally set DTCNTL TAPNUM to 8 2019-02-25 16:07:41 +01:00
rockchip_dw_mmc.c rockchip: dwmmc: add rk2928-dw-mshc compatible 2018-10-02 09:35:09 +02:00
rockchip_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rpmb.c mmc: rpmb: add mmc_rpmb_route_frames() 2018-10-07 10:47:38 -04:00
s5p_sdhci.c samsung: mmc: Drop old MMC init code 2019-02-09 12:50:22 -07:00
sandbox_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sdhci-cadence.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sdhci.c mmc: sdhci: Fix MMC HS200 tuning command failures 2018-06-15 08:54:04 +02:00
sh_mmcif.c mmc: sh_mmcif: Set default MMCIF clock rate 2019-03-25 20:26:53 +01: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 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
socfpga_dw_mmc.c mmc: socfpga: Add clock framework support 2018-08-13 22:35:42 +02:00
sti_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
stm32_sdmmc2.c mmc: stm32_sdmmc2: update pwron management 2018-07-19 16:31:35 -04:00
sunxi_mmc.c mmc: sunxi: Honour non-removable property in DT 2019-01-29 23:49:41 +05:30
tangier_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tegra_mmc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tmio-common.c mmc: tmio: Clamp SD_SECCNT to 16bit values on 16bit IP 2019-03-25 20:26:53 +01:00
tmio-common.h mmc: tmio: Make DMA transfer end bit configurable 2019-02-09 11:08:40 +01:00
uniphier-sd.c mmc: tmio: Make DMA transfer end bit configurable 2019-02-09 11:08:40 +01:00
xenon_sdhci.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynq_sdhci.c mmc: zynq: Remove unused pwrseq variable 2019-01-24 10:03:42 +01:00