Lines Matching full:variant
214 /* Busy detection for the ST Micro variant */
222 if (readl(host->base + MMCISTATUS) & host->variant->busy_detect_flag) in mmci_card_busy()
290 datactrl |= host->datactrl_reg & host->variant->busy_dpsm_flag; in mmci_write_datactrlreg()
303 struct variant_data *variant = host->variant; in mmci_set_clkreg() local
304 u32 clk = variant->clkreg; in mmci_set_clkreg()
310 if (variant->explicit_mclk_control) { in mmci_set_clkreg()
314 if (variant->st_clkdiv) in mmci_set_clkreg()
317 } else if (variant->st_clkdiv) { in mmci_set_clkreg()
339 clk |= variant->clkreg_enable; in mmci_set_clkreg()
351 clk |= variant->clkreg_8bit_bus_enable; in mmci_set_clkreg()
355 clk |= variant->clkreg_neg_edge_enable; in mmci_set_clkreg()
376 struct variant_data *variant = host->variant; in mmci_set_mask1() local
387 if (variant->mmcimask1) in mmci_set_mask1()
555 struct variant_data *variant = host->variant; in __mmci_dma_prep_data() local
561 .src_maxburst = variant->fifohalfsize >> 2, /* # of words */ in __mmci_dma_prep_data()
562 .dst_maxburst = variant->fifohalfsize >> 2, /* # of words */ in __mmci_dma_prep_data()
584 if (data->blksz * data->blocks <= variant->fifosize) in __mmci_dma_prep_data()
593 if (host->variant->qcom_dml) in __mmci_dma_prep_data()
649 if (host->variant->qcom_dml) in mmci_dma_start_data()
770 struct variant_data *variant = host->variant; in mmci_start_data() local
795 if (variant->blksz_datactrl16) in mmci_start_data()
797 else if (variant->blksz_datactrl4) in mmci_start_data()
808 datactrl |= variant->datactrl_mask_sdio; in mmci_start_data()
811 * The ST Micro variant for SDIO small write transfers in mmci_start_data()
816 if (variant->st_sdio && data->flags & MMC_DATA_WRITE && in mmci_start_data()
819 clk = host->clk_reg & ~variant->clkreg_enable; in mmci_start_data()
821 clk = host->clk_reg | variant->clkreg_enable; in mmci_start_data()
828 datactrl |= variant->datactrl_mask_ddrmode; in mmci_start_data()
848 if (host->size < variant->fifohalfsize) in mmci_start_data()
886 c |= host->variant->data_cmd_enable; in mmci_start_command()
905 status_err = status & (host->variant->start_err | in mmci_data_irq()
941 if (success > host->variant->fifosize) in mmci_data_irq()
942 success -= host->variant->fifosize; in mmci_data_irq()
992 * ST Micro variant: handle busy detection. in mmci_cmd_irq()
994 if (host->variant->busy_detect) { in mmci_cmd_irq()
999 (status & host->variant->busy_detect_flag)) in mmci_cmd_irq()
1010 (readl(base + MMCISTATUS) & host->variant->busy_detect_flag)) { in mmci_cmd_irq()
1013 writel(host->variant->busy_detect_mask, in mmci_cmd_irq()
1018 host->variant->busy_detect_mask, in mmci_cmd_irq()
1036 writel(host->variant->busy_detect_mask, in mmci_cmd_irq()
1040 ~host->variant->busy_detect_mask, in mmci_cmd_irq()
1088 return host->variant->fifohalfsize; in mmci_qcom_get_rx_fifocnt()
1145 struct variant_data *variant = host->variant; in mmci_pio_write() local
1153 variant->fifosize : variant->fifohalfsize; in mmci_pio_write()
1185 struct variant_data *variant = host->variant; in mmci_pio_irq() local
1236 if (status & MCI_RXACTIVE && host->size < variant->fifohalfsize) in mmci_pio_irq()
1277 * detection variant is handled. Considering the HW seems to be in mmci_irq()
1285 if (host->variant->busy_detect) in mmci_irq()
1286 writel(status & ~host->variant->busy_detect_mask, in mmci_irq()
1293 if (host->variant->reversed_irq_handling) { in mmci_irq()
1305 if (host->variant->busy_detect_flag) in mmci_irq()
1306 status &= ~host->variant->busy_detect_flag; in mmci_irq()
1350 struct variant_data *variant = host->variant; in mmci_set_ios() local
1375 * The ST Micro variant doesn't have the PL180s MCI_PWR_UP in mmci_set_ios()
1377 * configured in the variant data. in mmci_set_ios()
1379 pwr |= variant->pwrreg_powerup; in mmci_set_ios()
1396 if (variant->signal_direction && ios->power_mode != MMC_POWER_OFF) { in mmci_set_ios()
1398 * The ST Micro variant has some additional bits in mmci_set_ios()
1412 if (variant->opendrain) { in mmci_set_ios()
1414 pwr |= variant->opendrain; in mmci_set_ios()
1417 * If the variant cannot configure the pads by its own, then we in mmci_set_ios()
1427 * If clock = 0 and the variant requires the MMCIPOWER to be used for in mmci_set_ios()
1430 if (!ios->clock && variant->pwrreg_clkgate) in mmci_set_ios()
1433 if (host->variant->explicit_mclk_control && in mmci_set_ios()
1540 struct variant_data *variant = id->data; in mmci_probe() local
1569 * Some variant (STM32) doesn't have opendrain bit, nevertheless in mmci_probe()
1572 if (!variant->opendrain) { in mmci_probe()
1612 if (variant->qcom_fifo) in mmci_probe()
1618 host->variant = variant; in mmci_probe()
1625 if (host->mclk > variant->f_max) { in mmci_probe()
1626 ret = clk_set_rate(host->clk, variant->f_max); in mmci_probe()
1641 if (variant->init) in mmci_probe()
1642 variant->init(host); in mmci_probe()
1650 if (variant->st_clkdiv) in mmci_probe()
1652 else if (variant->explicit_mclk_control) in mmci_probe()
1663 mmc->f_max = variant->explicit_mclk_control ? in mmci_probe()
1664 min(variant->f_max, mmc->f_max) : in mmci_probe()
1667 mmc->f_max = variant->explicit_mclk_control ? in mmci_probe()
1696 if (variant->busy_detect) { in mmci_probe()
1702 if (variant->busy_dpsm_flag) in mmci_probe()
1704 host->variant->busy_dpsm_flag); in mmci_probe()
1724 mmc->max_req_size = (1 << variant->datalength_bits) - 1; in mmci_probe()
1747 if (variant->mmcimask1) in mmci_probe()
1797 writel(MCI_IRQENABLE | variant->start_err, host->base + MMCIMASK0); in mmci_probe()
1829 struct variant_data *variant = host->variant; in mmci_remove() local
1841 if (variant->mmcimask1) in mmci_remove()
1863 if (host->variant->pwrreg_nopower) { in mmci_save()
1879 if (host->variant->pwrreg_nopower) { in mmci_restore()
1884 writel(MCI_IRQENABLE | host->variant->start_err, in mmci_restore()