mmc: sdhci: add SDHCI_QUIRK_BROKEN_HISPD_MODE
authorHannes Schmelzer <oe5hpm@oevsv.at>
Wed, 7 Mar 2018 07:00:56 +0000 (08:00 +0100)
committerJaehoon Chung <jh80.chung@samsung.com>
Wed, 2 May 2018 01:57:43 +0000 (10:57 +0900)
commit88a57125fa689f3207c5409ef6eeb6a47ff051cd
tree469223617898f0bc0038045be3db354ad784bfcc
parent0a4c2b099ed44a18c7768001cb974e80bff0f46b
mmc: sdhci: add SDHCI_QUIRK_BROKEN_HISPD_MODE

Some IP-core implementations of the SDHCI have different troubles on the
silicon where they are placed.

On ZYNQ platform for example Xilinx doesn't accept the hold timing of an
eMMC chip which operates in High-Speed mode and must be forced to
operate in non high-speed mode. To get rid of this
"SDHCI_QUIRK_BROKEN_HISPD_MODE" is introduced.

For more details about this refer to the Xilinx answer-recor #59999
https://www.xilinx.com/support/answers/59999.html

This commit:
- doesn't set HISPD bit on the host-conroller
- reflects this fact within the host-controller capabilities

Upon this the layer above (mmc-driver) can setup the card correctly.

Otherwise the MMC card will be switched into high-speed mode and causes
possible timing violation on the host-controller side.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Signed-off-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
drivers/mmc/sdhci.c
include/sdhci.h