[PATCH 0/3] mmc: sdhci-esdhc-imx: fix no UHS modes

Stefan Agner
2018-06-28T08:13:28Z

Currently sdhci-esdhc-imx.c sets SDHCI_QUIRK2_NO_1_8_V if no
100MHz/200MHz pinctrl configurations are present in order to
prevent the stack from choosing high speed modes.

This does work for SD cards quite well, since 1.8V matches all
higher speed modes, and all lower speed modes run with 3.3V.

However, when running a eMMC on 1.8V only, this causes issues:
If vqmmc-supply is set to 1.8V only, and the driver at the same
time sets SDHCI_QUIRK2_NO_1_8_V, the stack has troubls selecting
a valid mode and continuously prints:
mmc1: Switching to 3.3V signalling voltage failed

There are already board device trees which work around this by
not setting vqmmc-supply, e.g.
arch/arm/boot/dts/imx6qdl-sr-som-ti.dtsi.

Introducing a new quirk was the only way which I came up with,
but maybe there is a better way to prevent higher speed modes
while allowing 1.8V eMMC?

Stefan Agner (3):
mmc: sdhci-esdhc-imx: get rid of support_vsel
mmc: sdhci: add quirk to prevent higher speed modes
mmc: sdhci-esdhc-imx: prevent stack from using higher speed modes

drivers/mmc/host/sdhci-esdhc-imx.c | 12 ++++--------
drivers/mmc/host/sdhci.c | 8 ++++++++
drivers/mmc/host/sdhci.h | 2 ++
include/linux/platform_data/mmc-esdhc-imx.h | 2 --
4 files changed, 14 insertions(+), 10 deletions(-)

--
2.18.0