Lines Matching refs:variant
334 /* Busy detection for the ST Micro variant */
342 if (readl(host->base + MMCISTATUS) & host->variant->busy_detect_flag)
392 datactrl |= host->datactrl_reg & host->variant->busy_dpsm_flag;
405 struct variant_data *variant = host->variant;
406 u32 clk = variant->clkreg;
412 if (variant->explicit_mclk_control) {
416 if (variant->st_clkdiv)
419 } else if (variant->st_clkdiv) {
441 clk |= variant->clkreg_enable;
453 clk |= variant->clkreg_8bit_bus_enable;
457 clk |= variant->clkreg_neg_edge_enable;
490 struct variant_data *variant = host->variant;
494 if (!is_power_of_2(data->blksz) && !variant->datactrl_any_blocksz) {
610 struct variant_data *variant = host->variant;
615 mask0 &= ~variant->irq_pio_mask;
621 if (variant->mmcimask1)
674 (readl(base + MMCISTATUS) & host->variant->busy_detect_flag)) {
676 host->variant->busy_detect_mask,
695 (status & host->variant->busy_detect_flag)) {
696 writel(host->variant->busy_detect_mask, base + MMCICLEAR);
707 writel(host->variant->busy_detect_mask, base + MMCICLEAR);
710 ~host->variant->busy_detect_mask, base + MMCIMASK0);
907 struct variant_data *variant = host->variant;
913 .src_maxburst = variant->fifohalfsize >> 2, /* # of words */
914 .dst_maxburst = variant->fifohalfsize >> 2, /* # of words */
936 if (data->blksz * data->blocks <= variant->fifosize)
948 if (host->variant->dma_power_of_2 && !is_power_of_2(data->blksz))
957 if (host->variant->qcom_dml)
1130 struct variant_data *variant = host->variant;
1157 datactrl |= variant->datactrl_mask_sdio;
1160 * The ST Micro variant for SDIO small write transfers
1165 if (variant->st_sdio && data->flags & MMC_DATA_WRITE &&
1168 clk = host->clk_reg & ~variant->clkreg_enable;
1170 clk = host->clk_reg | variant->clkreg_enable;
1177 datactrl |= variant->datactrl_mask_ddrmode;
1197 if (host->size < variant->fifohalfsize)
1221 if (readl(base + MMCICOMMAND) & host->variant->cmdreg_cpsm_enable) {
1226 if (host->variant->cmdreg_stop &&
1228 c |= host->variant->cmdreg_stop;
1230 c |= cmd->opcode | host->variant->cmdreg_cpsm_enable;
1233 c |= host->variant->cmdreg_lrsp_crc;
1235 c |= host->variant->cmdreg_srsp_crc;
1237 c |= host->variant->cmdreg_srsp;
1240 if (host->variant->busy_timeout && cmd->flags & MMC_RSP_BUSY) {
1260 c |= host->variant->data_cmd_enable;
1285 status_err = status & (host->variant->start_err |
1302 if (!host->variant->datacnt_useless) {
1322 if (success > host->variant->fifosize)
1323 success -= host->variant->fifosize;
1344 if (host->variant->cmdreg_stop && data->error)
1375 if (host->variant->busy_timeout && busy_resp)
1382 /* Handle busy detection on DAT0 if the variant supports it. */
1383 if (busy_resp && host->variant->busy_detect)
1393 } else if (host->variant->busy_timeout && busy_resp &&
1410 if (host->variant->cmdreg_stop && cmd->error) {
1421 } else if (!host->variant->datactrl_first &&
1439 return host->variant->fifohalfsize;
1496 struct variant_data *variant = host->variant;
1504 variant->fifosize : variant->fifohalfsize;
1536 struct variant_data *variant = host->variant;
1587 if (status & MCI_RXACTIVE && host->size < variant->fifohalfsize)
1622 status &= ~host->variant->irq_pio_mask;
1630 if (host->variant->busy_detect)
1631 writel(status & ~host->variant->busy_detect_mask,
1638 if (host->variant->reversed_irq_handling) {
1650 if (host->variant->busy_detect_flag)
1651 status &= ~host->variant->busy_detect_flag;
1680 writel(MCI_IRQENABLE | host->variant->start_err,
1711 (host->variant->datactrl_first || mrq->data->flags & MMC_DATA_READ))
1727 if (!host->variant->busy_detect)
1730 if (host->variant->busy_timeout && mmc->actual_clock)
1740 struct variant_data *variant = host->variant;
1765 * The ST Micro variant doesn't have the PL180s MCI_PWR_UP
1767 * configured in the variant data.
1769 pwr |= variant->pwrreg_powerup;
1786 if (variant->signal_direction && ios->power_mode != MMC_POWER_OFF) {
1788 * The ST Micro variant has some additional bits
1802 if (variant->opendrain) {
1804 pwr |= variant->opendrain;
1807 * If the variant cannot configure the pads by its own, then we
1817 * If clock = 0 and the variant requires the MMCIPOWER to be used for
1820 if (!ios->clock && variant->pwrreg_clkgate)
1823 if (host->variant->explicit_mclk_control &&
1936 struct variant_data *variant = id->data;
1967 * Some variant (STM32) doesn't have opendrain bit, nevertheless
1970 if (!variant->opendrain) {
2002 if (variant->qcom_fifo)
2008 host->variant = variant;
2015 if (host->mclk > variant->f_max) {
2016 ret = clk_set_rate(host->clk, variant->f_max);
2031 if (variant->init)
2032 variant->init(host);
2040 if (variant->st_clkdiv)
2042 else if (variant->stm32_clkdiv)
2044 else if (variant->explicit_mclk_control)
2055 mmc->f_max = variant->explicit_mclk_control ?
2056 min(variant->f_max, mmc->f_max) :
2059 mmc->f_max = variant->explicit_mclk_control ?
2087 if (variant->busy_detect) {
2093 if (variant->busy_dpsm_flag)
2095 host->variant->busy_dpsm_flag);
2100 if (variant->busy_timeout)
2121 mmc->max_req_size = (1 << variant->datalength_bits) - 1;
2132 mmc->max_blk_size = 1 << variant->datactrl_blocksz;
2138 mmc->max_blk_count = mmc->max_req_size >> variant->datactrl_blocksz;
2144 if (variant->mmcimask1)
2181 writel(MCI_IRQENABLE | variant->start_err, host->base + MMCIMASK0);
2215 struct variant_data *variant = host->variant;
2227 if (variant->mmcimask1)
2247 if (host->variant->pwrreg_nopower) {
2263 if (host->variant->pwrreg_nopower) {
2268 writel(MCI_IRQENABLE | host->variant->start_err,