mmc: omap_hsmmc: Workaround errata regarding SDR104/HS200 tuning failures (i929)
authorFaiz Abbas <faiz_abbas@ti.com>
Wed, 30 Jan 2019 12:38:42 +0000 (18:08 +0530)
committerTom Rini <trini@konsulko.com>
Sat, 9 Feb 2019 12:50:58 +0000 (07:50 -0500)
commit351a4aa050c834954498e2114cab3429597b7c92
treefd15ae3b6fc03a16d269a67c2f28833e9207494b
parentbbd108a08225b1239b1ec1c10e8131fba6a3a95a
mmc: omap_hsmmc: Workaround errata regarding SDR104/HS200 tuning failures (i929)

Errata i929 in certain OMAP5/DRA7XX/AM57XX silicon revisions
(SPRZ426D - November 2014 - Revised February 2018 [1]) mentions
unexpected tuning pattern errors. A small failure band may be present
in the tuning range which may be missed by the current algorithm.
Furthermore, the failure bands vary with temperature leading to
different optimum tuning values for different temperatures.

As suggested in the related Application Report (SPRACA9B - October 2017
- Revised July 2018 [2]), tuning should be done in two stages.
In stage 1, assign the optimum ratio in the maximum pass window for the
current temperature. In stage 2, if the chosen value is close to the
small failure band, move away from it in the appropriate direction.

References:
[1] http://www.ti.com/lit/pdf/sprz426
[2] http://www.ti.com/lit/pdf/SPRACA9

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
drivers/mmc/omap_hsmmc.c