summaryrefslogtreecommitdiff
path: root/board/st/u8500/mmc_host.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/st/u8500/mmc_host.c')
-rw-r--r--board/st/u8500/mmc_host.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/board/st/u8500/mmc_host.c b/board/st/u8500/mmc_host.c
index 479e76391..9bf319504 100644
--- a/board/st/u8500/mmc_host.c
+++ b/board/st/u8500/mmc_host.c
@@ -283,8 +283,14 @@ static int do_data_transfer(struct mmc *dev,
debug("Request to do data xfer on %s\n", dev->name);
debug("do_data_transfer(%u) start\n", data->blocks);
- blksz = convert_from_bytes_to_power_of_two(data->blocksize);
- data_ctrl |= (blksz << INDEX(SDI_DCTRL_DBLOCKSIZE_MASK));
+ if (cpu_is_u8500v1() || u8500_is_earlydrop()) {
+ blksz = convert_from_bytes_to_power_of_two(data->blocksize);
+ data_ctrl |= (blksz << INDEX(SDI_DCTRL_DBLOCKSIZE_MASK));
+ } else {
+ blksz = data->blocksize;
+ data_ctrl |= (blksz << INDEX(SDI_DCTRL_DBLOCKSIZE_V2_MASK));
+ }
+
data_ctrl |= SDI_DCTRL_DTEN;
debug("SDI_DTIMER <= 0x%08X\n", SDI_DTIMER_DEFAULT);