]> git.baikalelectronics.ru Git - kernel.git/commit
mmc: sdhci-st: Add delay management functions for top registers (eMMC).
authorPeter Griffin <peter.griffin@linaro.org>
Fri, 10 Apr 2015 09:40:25 +0000 (10:40 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Fri, 10 Apr 2015 10:55:40 +0000 (12:55 +0200)
commitf9a4894b3c826da0280aec0b1fe3d815e70f7fee
tree1cf2e150e2421b67e66077c8e1458340396e242b
parent65e0ab93a7ec45ecb03a43a8766ffc1497394835
mmc: sdhci-st: Add delay management functions for top registers (eMMC).

Due to the tight timing constraints in some UHS modes, it is required to have
some delay management in the design. Two types of delay management are supported
in the HW: -

1) Static delay management
2) Dynamic delay management

NB: The delay management is only there when eMMC interface is selected.

1: Static delay management: is used to provide PVT dependent static delay on the
clock/data lines to manage setup/hold requirements of the interface. The maximum
delay possible is 3.25ns. These delays are PVT dependent, and thus delay values
applied are not accurate and vary across provcess voltage and temperature range.
Due to this these delays must not be used on the very time critical paths.

2. Dynamic delay locked loop (DLL): is used to provide dynamic delay management.
The advantage of DLL is that it provides accurate & PVT indepedent delay.

The DLL is used to provide delay on the loopback clock on "Read Path" to capture
read data reliably. On TX path the clock on which output data is transmitted is
delayed, resulting in delay of TX data.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-st.c