Lines Matching defs:host

166 static void sdhci_am654_setup_dll(struct sdhci_host *host, unsigned int clock)
168 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
229 dev_err(mmc_dev(host->mmc), "DLL failed to relock\n");
260 static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock)
262 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
264 unsigned char timing = host->mmc->ios.timing;
271 sdhci_set_clock(host, clock);
298 sdhci_am654_setup_dll(host, clock);
306 static void sdhci_j721e_4bit_set_clock(struct sdhci_host *host,
309 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
311 unsigned char timing = host->mmc->ios.timing;
329 sdhci_set_clock(host, clock);
332 static u8 sdhci_am654_write_power_on(struct sdhci_host *host, u8 val, int reg)
334 writeb(val, host->ioaddr + reg);
336 return readb(host->ioaddr + reg);
340 static void sdhci_am654_write_b(struct sdhci_host *host, u8 val, int reg)
342 unsigned char timing = host->mmc->ios.timing;
358 writeb(val, host->ioaddr + reg);
367 MAX_POWER_ON_TIMEOUT, false, host, val,
370 dev_info(mmc_dev(host->mmc), "Power on failed\n");
374 static void sdhci_am654_reset(struct sdhci_host *host, u8 mask)
377 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
380 sdhci_and_cqhci_reset(host, mask);
383 ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
385 sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
391 struct sdhci_host *host = mmc_priv(mmc);
400 sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
405 static u32 sdhci_am654_cqhci_irq(struct sdhci_host *host, u32 intmask)
410 if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error))
413 cqhci_irq(host->mmc, intmask, cmd_error, data_error);
419 static int sdhci_am654_platform_execute_tuning(struct sdhci_host *host,
422 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
434 cur_val = !mmc_send_tuning(host->mmc, opcode, NULL);
553 static int sdhci_am654_cqe_add_host(struct sdhci_host *host)
558 cq_host = devm_kzalloc(host->mmc->parent, sizeof(struct cqhci_host),
563 cq_host->mmio = host->ioaddr + SDHCI_AM654_CQE_BASE_ADDR;
568 host->mmc->caps2 |= MMC_CAP2_CQE;
570 ret = cqhci_init(cq_host, host->mmc, 1);
575 static int sdhci_am654_get_otap_delay(struct sdhci_host *host,
578 struct device *dev = mmc_dev(host->mmc);
615 host->mmc->caps &= ~td[i].capability;
617 host->mmc->caps2 &= ~td[i].capability;
628 static int sdhci_am654_init(struct sdhci_host *host)
630 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
662 if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
672 ret = sdhci_setup_host(host);
676 ret = sdhci_am654_cqe_add_host(host);
680 ret = sdhci_am654_get_otap_delay(host, sdhci_am654);
684 ret = __sdhci_add_host(host);
691 sdhci_cleanup_host(host);
771 struct sdhci_host *host;
785 host = sdhci_pltfm_init(pdev, drvdata->pdata, sizeof(*sdhci_am654));
786 if (IS_ERR(host))
787 return PTR_ERR(host);
789 pltfm_host = sdhci_priv(host);
828 ret = mmc_of_parse(host->mmc);
834 host->mmc_host_ops.execute_tuning = sdhci_am654_execute_tuning;
836 ret = sdhci_am654_init(host);
853 struct sdhci_host *host = platform_get_drvdata(pdev);
856 sdhci_remove_host(host, true);