u-boot/drivers/mmc
Alper Nebi Yasak c48021d184 rockchip: sdhci: Add HS400 Enhanced Strobe support for RK3568
On RK3568, a register bit must be set to enable Enhanced Strobe.
However, it appears that the address of this register may differ from
vendor to vendor and should be read from the underlying MMC IP. Let the
Rockchip SDHCI driver read this address and set the relevant bit when
Enhanced Strobe configuration is requested.

The IP uses a custom mode select value (0x7) for HS400, use that instead
of the common but non-standard SDHCI_CTRL_HS400 value (0x5). Also add
some necessary DLL_STRBIN and DLL_TXCLK configuration for HS400.

Additionally, a bit signifying that the connected hardware is an eMMC
chip must be set to enable Data Strobe for HS400 and HS400ES modes. Also
make the driver set this bit as appropriate.

This is partly ported from Linux's Synopsys DWC MSHC driver which
happens to be the underlying IP. (drivers/mmc/host/sdhci-of-dwcmshc.c in
Linux tree).

Co-developed-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2022-03-16 18:10:41 +09:00
..
am654_sdhci.c mmc: sdhci_am654: Read ti, strobe-sel property from device tree 2021-07-27 10:56:09 +05:30
arm_pl180_mmci.c mmc: arm_pl180_mmci: Enable HWFC for specific versions of MCI 2021-10-29 18:22:32 +09:00
arm_pl180_mmci.h mmc: arm_pl180_mmci: Enable HWFC for specific versions of MCI 2021-10-29 18:22:32 +09:00
aspeed_sdhci.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
atmel_sdhci.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bcm2835_sdhci.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
bcm2835_sdhost.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
bcmstb_sdhci.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
ca_dw_mmc.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
davinci_mmc.c dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
dw_mmc.c mmc: dwmmc: return a proper error code when busy 2022-01-12 09:56:40 +09:00
exynos_dw_mmc.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
f_sdh30.c mmc: synquacer: Add SynQuacer F_SDH30 SDHCI driver 2021-07-06 14:07:36 -04:00
fsl_esdhc.c drivers: mmc: Add wait_dat0 support for Freescale eSDHC driver 2021-10-29 18:22:32 +09:00
fsl_esdhc_imx.c mmc: fsl_esdhc_imx: use VENDORSPEC_FRC_SDCLK_ON when necessary 2022-03-16 16:40:56 +09:00
fsl_esdhc_spl.c mmc: fsl_esdhc_spl: remove superfluous free() 2021-01-18 15:23:06 -05:00
ftsdc010_mci.c clk: Rename clk_get_by_driver_info() 2021-09-25 09:46:15 -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 dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
hi6220_dw_mmc.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
iproc_sdhci.c drivers: mmc: iproc_sdhci: enable HS200 mode 2021-03-02 13:53:37 +01:00
jz_mmc.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig mmc: actions: add MMC driver for Actions OWL S700/S900 2022-01-18 12:48:17 -05:00
kona_sdhci.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
Makefile mmc: actions: add MMC driver for Actions OWL S700/S900 2022-01-18 12:48:17 -05:00
meson_gx_mmc.c mmc: meson_gx_mmc: use mmc_pwrseq instead of meson_mmc_pwrseq 2021-02-19 15:10:46 +08:00
meson_gx_mmc.h dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
mmc-pwrseq.c mmc: pwrseq: add mmc-pwrseq file to provide a generic interface 2021-02-19 15:10:41 +08:00
mmc-uclass.c mmc: Allow for children other than the block device 2021-11-28 16:51:51 -07:00
mmc.c doc: replace @return by Return: 2022-01-19 18:11:34 +01: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 doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mmc_spi.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mmc_write.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
msm_sdhci.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
mtk-sd.c mmc: mtk-sd: implement waiting for DAT0 line state 2021-11-17 17:04:59 -05:00
mv_sdhci.c arm: Remove aspenite board 2021-10-01 12:10:09 -04:00
mvebu_mmc.c mmc: mvebu: convert to driver model 2021-04-08 08:50:52 +02:00
mxcmmc.c treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
mxsmmc.c treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
nexell_dw_mmc.c mmc: dwmmc: Change designware MMC 'clksel' callback function to return status 2021-01-15 17:48:36 +08:00
octeontx_hsmmc.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
octeontx_hsmmc.h mmc: Add MMC controller driver for OcteonTX / TX2 2020-08-25 08:01:16 +02:00
omap_hsmmc.c ti: keystone: Move away from CONFIG_SOC_KEYSTONE 2021-09-27 21:38:34 -04:00
owl_mmc.c mmc: actions: add MMC driver for Actions OWL S700/S900 2022-01-18 12:48:17 -05:00
pci_mmc.c mmc: pci_mmc: Set up the card detect 2021-03-27 13:59:37 +13:00
pic32_sdhci.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
piton_mmc.c mmc: openpiton: add piton_mmc driver 2021-07-06 13:50:56 +08:00
pxa_mmc_gen.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
renesas-sdhi.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
rockchip_dw_mmc.c clk: Rename clk_get_by_driver_info() 2021-09-25 09:46:15 -06:00
rockchip_sdhci.c rockchip: sdhci: Add HS400 Enhanced Strobe support for RK3568 2022-03-16 18:10:41 +09:00
rpmb.c mmc: rpmb: Fix driver routing memory alignment with tmp buffer 2021-07-30 17:12:15 +08:00
s5p_sdhci.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sandbox_mmc.c sandbox: mmc: Support a backing file 2021-11-28 16:51:51 -07:00
sdhci-adma.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
sdhci-cadence.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sdhci.c mmc: sdhci: Add HS400 Enhanced Strobe support 2022-03-16 18:10:19 +09:00
sh_mmcif.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05: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 common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
snps_dw_mmc.c dm: treewide: Rename ofdata_to_platdata() to of_to_plat() 2020-12-13 16:51:09 -07:00
socfpga_dw_mmc.c mmc: dwmmc: socfpga: Get "fifo-mode" property from DT 2021-06-22 12:02:32 +08:00
sti_sdhci.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
stm32_sdmmc2.c mmc: stm32_sdmmc2: Add support for probing bus voltage level translator 2021-11-30 16:43:28 +01:00
sunxi_mmc.c mmc: sunxi: Use DM_GPIO flags to set pull-up 2022-01-30 01:25:00 +00:00
tangier_sdhci.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
tegra_mmc.c dm: treewide: Rename dev_get_platdata() to dev_get_plat() 2020-12-13 16:51:09 -07:00
tmio-common.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
tmio-common.h mmc: tmio: sdhi: Configure internal DMA bus width 2021-01-31 14:08:45 +01:00
uniphier-sd.c dm: treewide: Rename 'platdata' variables to just 'plat' 2020-12-13 16:51:08 -07:00
xenon_sdhci.c mmc: xenon_sdhci: remove wait_dat0 SDHCI OP 2022-03-16 16:47:37 +09:00
zynq_sdhci.c mmc: zynq_sdhci: Add xilinx_pm_request weak function 2021-10-21 08:50:59 +02:00