|
@@ -62,6 +62,7 @@ static struct variant_data variant_arm = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 16,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.pwrreg_powerup = MCI_PWR_UP,
|
|
|
.f_max = 100000000,
|
|
|
.reversed_irq_handling = true,
|
|
@@ -80,6 +81,7 @@ static struct variant_data variant_arm_extended_fifo = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 16,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.pwrreg_powerup = MCI_PWR_UP,
|
|
|
.f_max = 100000000,
|
|
|
.mmcimask1 = true,
|
|
@@ -98,6 +100,7 @@ static struct variant_data variant_arm_extended_fifo_hwfc = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 16,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.pwrreg_powerup = MCI_PWR_UP,
|
|
|
.f_max = 100000000,
|
|
|
.mmcimask1 = true,
|
|
@@ -117,6 +120,7 @@ static struct variant_data variant_u300 = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 16,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN,
|
|
|
.st_sdio = true,
|
|
|
.pwrreg_powerup = MCI_PWR_ON,
|
|
@@ -141,6 +145,7 @@ static struct variant_data variant_nomadik = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 24,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN,
|
|
|
.st_sdio = true,
|
|
|
.st_clkdiv = true,
|
|
@@ -168,6 +173,7 @@ static struct variant_data variant_ux500 = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 24,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN,
|
|
|
.st_sdio = true,
|
|
|
.st_clkdiv = true,
|
|
@@ -200,6 +206,7 @@ static struct variant_data variant_ux500v2 = {
|
|
|
.datactrl_mask_ddrmode = MCI_DPSM_ST_DDRMODE,
|
|
|
.datalength_bits = 24,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN,
|
|
|
.st_sdio = true,
|
|
|
.st_clkdiv = true,
|
|
@@ -232,6 +239,7 @@ static struct variant_data variant_stm32 = {
|
|
|
.cmdreg_srsp = MCI_CPSM_RESPONSE,
|
|
|
.datalength_bits = 24,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.datactrl_mask_sdio = MCI_DPSM_ST_SDIOEN,
|
|
|
.st_sdio = true,
|
|
|
.st_clkdiv = true,
|
|
@@ -258,6 +266,7 @@ static struct variant_data variant_qcom = {
|
|
|
.blksz_datactrl4 = true,
|
|
|
.datalength_bits = 24,
|
|
|
.datactrl_blocksz = 11,
|
|
|
+ .datactrl_dpsm_enable = MCI_DPSM_ENABLE,
|
|
|
.pwrreg_powerup = MCI_PWR_UP,
|
|
|
.f_max = 208000000,
|
|
|
.explicit_mclk_control = true,
|
|
@@ -976,11 +985,11 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
|
|
|
BUG_ON(1 << blksz_bits != data->blksz);
|
|
|
|
|
|
if (variant->blksz_datactrl16)
|
|
|
- datactrl = MCI_DPSM_ENABLE | (data->blksz << 16);
|
|
|
+ datactrl = variant->datactrl_dpsm_enable | (data->blksz << 16);
|
|
|
else if (variant->blksz_datactrl4)
|
|
|
- datactrl = MCI_DPSM_ENABLE | (data->blksz << 4);
|
|
|
+ datactrl = variant->datactrl_dpsm_enable | (data->blksz << 4);
|
|
|
else
|
|
|
- datactrl = MCI_DPSM_ENABLE | blksz_bits << 4;
|
|
|
+ datactrl = variant->datactrl_dpsm_enable | blksz_bits << 4;
|
|
|
|
|
|
if (data->flags & MMC_DATA_READ)
|
|
|
datactrl |= MCI_DPSM_DIRECTION;
|