|
|
@@ -59,6 +59,7 @@ static unsigned int fmax = 515633;
|
|
|
* is asserted (likewise for RX)
|
|
|
* @sdio: variant supports SDIO
|
|
|
* @st_clkdiv: true if using a ST-specific clock divider algorithm
|
|
|
+ * @datactrl_mask_ddrmode: ddr mode mask in datactrl register.
|
|
|
* @blksz_datactrl16: true if Block size is at b16..b30 position in datactrl register
|
|
|
* @blksz_datactrl4: true if Block size is at b4..b16 position in datactrl
|
|
|
* register
|
|
|
@@ -74,6 +75,7 @@ struct variant_data {
|
|
|
unsigned int datalength_bits;
|
|
|
unsigned int fifosize;
|
|
|
unsigned int fifohalfsize;
|
|
|
+ unsigned int datactrl_mask_ddrmode;
|
|
|
bool sdio;
|
|
|
bool st_clkdiv;
|
|
|
bool blksz_datactrl16;
|
|
|
@@ -152,6 +154,7 @@ static struct variant_data variant_ux500v2 = {
|
|
|
.fifohalfsize = 8 * 4,
|
|
|
.clkreg = MCI_CLK_ENABLE,
|
|
|
.clkreg_enable = MCI_ST_UX500_HWFCEN,
|
|
|
+ .datactrl_mask_ddrmode = MCI_ST_DPSM_DDRMODE,
|
|
|
.datalength_bits = 24,
|
|
|
.sdio = true,
|
|
|
.st_clkdiv = true,
|
|
|
@@ -772,7 +775,7 @@ static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
|
|
|
|
|
|
if (host->mmc->ios.timing == MMC_TIMING_UHS_DDR50 ||
|
|
|
host->mmc->ios.timing == MMC_TIMING_MMC_DDR52)
|
|
|
- datactrl |= MCI_ST_DPSM_DDRMODE;
|
|
|
+ datactrl |= variant->datactrl_mask_ddrmode;
|
|
|
|
|
|
/*
|
|
|
* Attempt to use DMA operation mode, if this
|