mmc: esdhc: fix errors when booting kernel on Freescale eSDHC version 2.3
authorRoy Zang <tie-fei.zang@freescale.com>
Fri, 13 Jan 2012 07:02:01 +0000 (15:02 +0800)
committerChris Ball <cjb@laptop.org>
Sun, 12 Feb 2012 05:24:24 +0000 (00:24 -0500)
commitba8c4dc99808b1de809a0eda71a32f26efdafd92
tree41e31948a3341df8dfec27a13a4412706dcf30fb
parent3ec1e88b33a3bdd852ce8e014052acec7a9da8b5
mmc: esdhc: fix errors when booting kernel on Freescale eSDHC version 2.3

When eSDHC module is enabled on P5020/P3041/P2041/P1010 with eSDHC
version 2.3, there is following errors:

mmc0: Timeout waiting for hardware interrupt.
mmc0: error -110 whilst initialising SD card
mmc0: Unexpected interrupt 0x02000000.
mmc0: Timeout waiting for hardware interrupt.
mmc0: error -110 whilst initialising SD card
mmc0: Unexpected interrupt 0x02000000.

It is because eSDHC controller has different bit setting for PROCTL
register at 0x28 comparing SD specification.
This patch sets DMAS bits correctly for byte operation and does not
change the default value of other field of PROCTL register.

For other FSL chips, such as MPC8536/P2020, PROCTL[DMAS]
bits are reserved and even if they are set to wrong bits, it will not
take effective.

Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci-of-esdhc.c