mmc: core: Try other signal levels during power up
authorTim Kryger <tim.kryger@linaro.org>
Thu, 24 Apr 2014 21:44:26 +0000 (14:44 -0700)
committerChris Ball <chris@printf.net>
Mon, 12 May 2014 22:05:22 +0000 (18:05 -0400)
commitceae98f20e36ffcf579fd5ae74c8f24b00c0f383
tree54459865c383a23ea0cd99e25f51618762ca9edc
parent1b66e94e6b9995323190f31c51d8e1a6f516627e
mmc: core: Try other signal levels during power up

The eMMC signalling voltage is determined by VCCQ which is provided to
the card by the host.  Signalling is not required to begin at 3.3v and,
if the host and card both support a particular VCC/VCCQ combination, it
can be used immediately.

In contrast, SD Cards must begin with 3.3v signalling and may switch to
a lower voltage signalling if instructed to do so in CMD11.  A message
is required to coordinate this operation because the card only receives
a 3.3v VDD and must know when to use the 1.8v produced by its internal
regulator.

It makes sense for the core to begin with 3.3v signalling but when that
can't be set, 1.8v and 1.2v signalling also should be attempted.  This
is especially important when an external regulator with a limited range
is used to supply VCCQ to an eMMC part.

Signed-off-by: Tim Kryger <tim.kryger@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
drivers/mmc/core/core.c