u-boot/drivers/mmc
Stefan Roese 899fb9e352 mmc: sdhci: Clear SDHCI_CLOCK_CONTROL before configuring the new value
This patch completely clears the SDHCI_CLOCK_CONTROL register before the
new value is configured instead of just clearing the 2 bits
SDHCI_CLOCK_CARD_EN and SDHCI_CLOCK_INT_EN. Without this change, some
clock configurations will lead to the "Internal clock never stabilised."
error message on the Xenon SDHCI controller used on the Marvell Armada
3700 and 7k/8k ARM64 SoCs.

The Linux SDHCI core driver also writes 0 to this register before
the new value is configured. So this patch simplifies the driver a bit
and brings the U-Boot driver more in-line with the Linux one.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2017-01-25 07:03:39 +01:00
..
arm_pl180_mmci.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
arm_pl180_mmci.h mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
atmel_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
bcm2835_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
bfin_sdh.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
davinci_mmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
dw_mmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
exynos_dw_mmc.c mmc: dw_mmc: remove the unnecessary arguments for dwmci_setup_cfg 2016-10-10 15:23:33 +09:00
fsl_esdhc_spl.c block: pass block dev not num to read/write/erase() 2016-01-13 21:05:18 -05:00
fsl_esdhc.c Merge git://git.denx.de/u-boot-fsl-qoriq 2017-01-19 12:22:23 -05:00
ftsdc010_mci.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
ftsdc021_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
gen_atmel_mci.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
hi6220_dw_mmc.c treewide: replace #include <asm-generic/errno.h> with <linux/errno.h> 2016-09-23 22:25:27 -04:00
Kconfig mmc: sunxi: revive depends on UART0_PORT_F 2017-01-13 12:18:52 +09:00
kona_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
Makefile mmc: move more driver config options to Kconfig 2017-01-11 19:40:15 +09:00
mmc_boot.c mmc: squash lines for immediate return 2016-09-23 17:53:44 -04:00
mmc_legacy.c mmc: Tinification of the mmc code 2016-12-01 13:51:57 +09:00
mmc_private.h dm: mmc: Support erase 2016-10-09 21:36:27 -06:00
mmc_spi.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mmc_write.c dm: mmc: Support erase 2016-10-09 21:36:27 -06:00
mmc-uclass.c mmc: refactor two core functions 2016-10-28 11:02:16 +09:00
mmc.c mmc: Print error code for mmc_complete_init failure 2017-01-23 15:37:42 +09:00
msm_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
mv_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
mvebu_mmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mxcmmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
mxsmmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
omap_hsmmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
pci_mmc.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
pic32_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
pxa_mmc_gen.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
rockchip_dw_mmc.c mmc: dw_mmc: remove the unnecessary arguments for dwmci_setup_cfg 2016-10-10 15:23:33 +09:00
rockchip_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
rpmb.c Move ALLOC_CACHE_ALIGN_BUFFER() to the new memalign.h header 2015-09-11 17:15:20 -04:00
s3c_sdi.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
s5p_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00
sandbox_mmc.c mmc: squash lines for immediate return 2016-09-23 17:53:44 -04:00
sdhci-cadence.c mmc: sdhci-cadence: add Cadence SD4HC support 2017-01-11 19:40:14 +09:00
sdhci.c mmc: sdhci: Clear SDHCI_CLOCK_CONTROL before configuring the new value 2017-01-25 07:03:39 +01:00
sh_mmcif.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
sh_mmcif.h ARM: Rmobile: Rename CONFIG_RMOBILE to CONFIG_ARCH_RMOBILE 2016-08-17 10:25:34 +09:00
sh_sdhi.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
socfpga_dw_mmc.c dm: mmc: socfpga: fix MMC_OPS support 2016-10-28 11:02:16 +09:00
sunxi_mmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
tegra_mmc.c mmc: change the set_ios return type from void to int 2017-01-11 19:40:13 +09:00
uniphier-sd.c mmc: uniphier-sd: migrate to CONFIG_BLK 2016-09-14 22:54:19 +09:00
zynq_sdhci.c mmc: sdhci: Distinguish between base clock and maximum peripheral frequency 2017-01-23 15:37:42 +09:00