• Home
  • Raw
  • Download

Lines Matching full:variant

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