Lines Matching refs:variant
366 /* Busy detection for the ST Micro variant */
374 if (readl(host->base + MMCISTATUS) & host->variant->busy_detect_flag)
424 datactrl |= host->datactrl_reg & host->variant->busy_dpsm_flag;
437 struct variant_data *variant = host->variant;
438 u32 clk = variant->clkreg;
444 if (variant->explicit_mclk_control) {
448 if (variant->st_clkdiv)
451 } else if (variant->st_clkdiv) {
473 clk |= variant->clkreg_enable;
485 clk |= variant->clkreg_8bit_bus_enable;
489 clk |= variant->clkreg_neg_edge_enable;
522 struct variant_data *variant = host->variant;
526 if (!is_power_of_2(data->blksz) && !variant->datactrl_any_blocksz) {
642 struct variant_data *variant = host->variant;
647 mask0 &= ~variant->irq_pio_mask;
653 if (variant->mmcimask1)
692 writel(host->variant->busy_detect_mask, base + MMCICLEAR);
694 ~host->variant->busy_detect_mask, base + MMCIMASK0);
756 if (status & host->variant->busy_detect_flag) {
758 host->variant->busy_detect_mask,
784 if (status & host->variant->busy_detect_flag) {
786 writel(host->variant->busy_detect_mask, base + MMCICLEAR);
798 if (!(status & host->variant->busy_detect_flag)) {
800 writel(host->variant->busy_detect_mask, base + MMCICLEAR);
1010 struct variant_data *variant = host->variant;
1016 .src_maxburst = variant->fifohalfsize >> 2, /* # of words */
1017 .dst_maxburst = variant->fifohalfsize >> 2, /* # of words */
1039 if (data->blksz * data->blocks <= variant->fifosize)
1051 if (host->variant->dma_power_of_2 && !is_power_of_2(data->blksz))
1060 if (host->variant->qcom_dml)
1233 struct variant_data *variant = host->variant;
1260 datactrl |= variant->datactrl_mask_sdio;
1263 * The ST Micro variant for SDIO small write transfers
1268 if (variant->st_sdio && data->flags & MMC_DATA_WRITE &&
1271 clk = host->clk_reg & ~variant->clkreg_enable;
1273 clk = host->clk_reg | variant->clkreg_enable;
1280 datactrl |= variant->datactrl_mask_ddrmode;
1300 if (host->size < variant->fifohalfsize)
1325 if (readl(base + MMCICOMMAND) & host->variant->cmdreg_cpsm_enable) {
1330 if (host->variant->cmdreg_stop &&
1332 c |= host->variant->cmdreg_stop;
1334 c |= cmd->opcode | host->variant->cmdreg_cpsm_enable;
1337 c |= host->variant->cmdreg_lrsp_crc;
1339 c |= host->variant->cmdreg_srsp_crc;
1341 c |= host->variant->cmdreg_srsp;
1351 if (busy_resp && host->variant->busy_timeout) {
1368 c |= host->variant->data_cmd_enable;
1393 status_err = status & (host->variant->start_err |
1410 if (!host->variant->datacnt_useless) {
1430 if (success > host->variant->fifosize)
1431 success -= host->variant->fifosize;
1452 if (host->variant->cmdreg_stop && data->error)
1483 if (host->variant->busy_timeout && busy_resp)
1490 /* Handle busy detection on DAT0 if the variant supports it. */
1491 if (busy_resp && host->variant->busy_detect)
1501 } else if (host->variant->busy_timeout && busy_resp &&
1522 if (host->variant->cmdreg_stop && cmd->error) {
1533 } else if (!host->variant->datactrl_first &&
1570 if (status & host->variant->busy_detect_flag) {
1599 return host->variant->fifohalfsize;
1656 struct variant_data *variant = host->variant;
1664 variant->fifosize : variant->fifohalfsize;
1696 struct variant_data *variant = host->variant;
1747 if (status & MCI_RXACTIVE && host->size < variant->fifohalfsize)
1784 status &= ~host->variant->irq_pio_mask;
1792 if (host->variant->busy_detect)
1793 writel(status & ~host->variant->busy_detect_mask,
1800 if (host->variant->reversed_irq_handling) {
1812 if (host->variant->busy_detect_flag)
1813 status &= ~host->variant->busy_detect_flag;
1842 writel(MCI_IRQENABLE | host->variant->start_err,
1873 (host->variant->datactrl_first || mrq->data->flags & MMC_DATA_READ))
1889 if (!host->variant->busy_detect)
1892 if (host->variant->busy_timeout && mmc->actual_clock)
1902 struct variant_data *variant = host->variant;
1923 * The ST Micro variant doesn't have the PL180s MCI_PWR_UP
1925 * configured in the variant data.
1927 pwr |= variant->pwrreg_powerup;
1944 if (variant->signal_direction && ios->power_mode != MMC_POWER_OFF) {
1946 * The ST Micro variant has some additional bits
1960 if (variant->opendrain) {
1962 pwr |= variant->opendrain;
1965 * If the variant cannot configure the pads by its own, then we
1975 * If clock = 0 and the variant requires the MMCIPOWER to be used for
1978 if (!ios->clock && variant->pwrreg_clkgate)
1981 if (host->variant->explicit_mclk_control &&
2153 struct variant_data *variant = id->data;
2184 * Some variant (STM32) doesn't have opendrain bit, nevertheless
2187 if (!variant->opendrain) {
2219 if (variant->qcom_fifo)
2225 host->variant = variant;
2232 if (host->mclk > variant->f_max) {
2233 ret = clk_set_rate(host->clk, variant->f_max);
2248 if (variant->init)
2249 variant->init(host);
2257 if (variant->st_clkdiv)
2259 else if (variant->stm32_clkdiv)
2261 else if (variant->explicit_mclk_control)
2272 mmc->f_max = variant->explicit_mclk_control ?
2273 min(variant->f_max, mmc->f_max) :
2276 mmc->f_max = variant->explicit_mclk_control ?
2307 if (variant->busy_detect) {
2313 if (variant->busy_dpsm_flag)
2315 host->variant->busy_dpsm_flag);
2320 if (variant->busy_timeout)
2341 mmc->max_req_size = (1 << variant->datalength_bits) - 1;
2352 mmc->max_blk_size = 1 << variant->datactrl_blocksz;
2358 mmc->max_blk_count = mmc->max_req_size >> variant->datactrl_blocksz;
2364 if (variant->mmcimask1)
2401 if (host->variant->busy_detect)
2405 writel(MCI_IRQENABLE | variant->start_err, host->base + MMCIMASK0);
2439 struct variant_data *variant = host->variant;
2451 if (variant->mmcimask1)
2471 if (host->variant->pwrreg_nopower) {
2487 if (host->variant->pwrreg_nopower) {
2492 writel(MCI_IRQENABLE | host->variant->start_err,