Lines Matching refs:host

48 	struct sdhci_host	*host;  member
76 static inline struct sdhci_s3c *to_s3c(struct sdhci_host *host) in to_s3c() argument
78 return sdhci_priv(host); in to_s3c()
87 static unsigned int sdhci_s3c_get_max_clk(struct sdhci_host *host) in sdhci_s3c_get_max_clk() argument
89 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_s3c_get_max_clk()
156 static void sdhci_s3c_set_clock(struct sdhci_host *host, unsigned int clock) in sdhci_s3c_set_clock() argument
158 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_s3c_set_clock()
165 host->mmc->actual_clock = 0; in sdhci_s3c_set_clock()
169 sdhci_set_clock(host, clock); in sdhci_s3c_set_clock()
195 host->max_clk = ourhost->clk_rates[best_src]; in sdhci_s3c_set_clock()
199 writew(0, host->ioaddr + SDHCI_CLOCK_CONTROL); in sdhci_s3c_set_clock()
201 ctrl = readl(host->ioaddr + S3C_SDHCI_CONTROL2); in sdhci_s3c_set_clock()
204 writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2); in sdhci_s3c_set_clock()
208 host->ioaddr + S3C64XX_SDHCI_CONTROL4); in sdhci_s3c_set_clock()
210 ctrl = readl(host->ioaddr + S3C_SDHCI_CONTROL2); in sdhci_s3c_set_clock()
216 writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2); in sdhci_s3c_set_clock()
222 writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL3); in sdhci_s3c_set_clock()
224 sdhci_set_clock(host, clock); in sdhci_s3c_set_clock()
236 static unsigned int sdhci_s3c_get_min_clock(struct sdhci_host *host) in sdhci_s3c_get_min_clock() argument
238 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_s3c_get_min_clock()
254 static unsigned int sdhci_cmu_get_max_clock(struct sdhci_host *host) in sdhci_cmu_get_max_clock() argument
256 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_cmu_get_max_clock()
276 static unsigned int sdhci_cmu_get_min_clock(struct sdhci_host *host) in sdhci_cmu_get_min_clock() argument
278 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_cmu_get_min_clock()
298 static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock) in sdhci_cmu_set_clock() argument
300 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_cmu_set_clock()
306 host->mmc->actual_clock = 0; in sdhci_cmu_set_clock()
310 sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); in sdhci_cmu_set_clock()
314 sdhci_s3c_set_clock(host, clock); in sdhci_cmu_set_clock()
317 clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); in sdhci_cmu_set_clock()
319 sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); in sdhci_cmu_set_clock()
321 spin_unlock_irq(&host->lock); in sdhci_cmu_set_clock()
323 spin_lock_irq(&host->lock); in sdhci_cmu_set_clock()
326 mmc_hostname(host->mmc), clock); in sdhci_cmu_set_clock()
331 sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); in sdhci_cmu_set_clock()
335 while (!((clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL)) in sdhci_cmu_set_clock()
339 mmc_hostname(host->mmc)); in sdhci_cmu_set_clock()
347 sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); in sdhci_cmu_set_clock()
358 static void sdhci_s3c_set_bus_width(struct sdhci_host *host, int width) in sdhci_s3c_set_bus_width() argument
362 ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); in sdhci_s3c_set_bus_width()
379 sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); in sdhci_s3c_set_bus_width()
393 struct sdhci_host *host, struct s3c_sdhci_platdata *pdata) in sdhci_s3c_parse_dt() argument
423 struct sdhci_host *host, struct s3c_sdhci_platdata *pdata) in sdhci_s3c_parse_dt() argument
450 struct sdhci_host *host; in sdhci_s3c_probe() local
466 host = sdhci_alloc_host(dev, sizeof(struct sdhci_s3c)); in sdhci_s3c_probe()
467 if (IS_ERR(host)) { in sdhci_s3c_probe()
469 return PTR_ERR(host); in sdhci_s3c_probe()
471 sc = sdhci_priv(host); in sdhci_s3c_probe()
480 ret = sdhci_s3c_parse_dt(&pdev->dev, host, pdata); in sdhci_s3c_probe()
490 sc->host = host; in sdhci_s3c_probe()
495 platform_set_drvdata(pdev, host); in sdhci_s3c_probe()
529 host->ioaddr = devm_ioremap_resource(&pdev->dev, res); in sdhci_s3c_probe()
530 if (IS_ERR(host->ioaddr)) { in sdhci_s3c_probe()
531 ret = PTR_ERR(host->ioaddr); in sdhci_s3c_probe()
539 host->hw_name = "samsung-hsmmc"; in sdhci_s3c_probe()
540 host->ops = &sdhci_s3c_ops; in sdhci_s3c_probe()
541 host->quirks = 0; in sdhci_s3c_probe()
542 host->quirks2 = 0; in sdhci_s3c_probe()
543 host->irq = irq; in sdhci_s3c_probe()
546 host->quirks |= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC; in sdhci_s3c_probe()
547 host->quirks |= SDHCI_QUIRK_NO_HISPD_BIT; in sdhci_s3c_probe()
549 host->quirks |= drv_data->sdhci_quirks; in sdhci_s3c_probe()
557 host->quirks |= SDHCI_QUIRK_BROKEN_DMA; in sdhci_s3c_probe()
564 host->quirks |= SDHCI_QUIRK_NO_BUSY_IRQ; in sdhci_s3c_probe()
567 host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; in sdhci_s3c_probe()
570 host->quirks |= SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC; in sdhci_s3c_probe()
574 host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; in sdhci_s3c_probe()
577 host->mmc->caps = MMC_CAP_NONREMOVABLE; in sdhci_s3c_probe()
581 host->mmc->caps |= MMC_CAP_8_BIT_DATA; in sdhci_s3c_probe()
583 host->mmc->caps |= MMC_CAP_4_BIT_DATA; in sdhci_s3c_probe()
588 host->mmc->pm_caps |= pdata->pm_caps; in sdhci_s3c_probe()
590 host->quirks |= (SDHCI_QUIRK_32BIT_DMA_ADDR | in sdhci_s3c_probe()
594 host->quirks |= SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK; in sdhci_s3c_probe()
608 host->mmc->caps |= pdata->host_caps; in sdhci_s3c_probe()
611 host->mmc->caps2 |= pdata->host_caps2; in sdhci_s3c_probe()
618 ret = mmc_of_parse(host->mmc); in sdhci_s3c_probe()
622 ret = sdhci_add_host(host); in sdhci_s3c_probe()
641 sdhci_free_host(host); in sdhci_s3c_probe()
648 struct sdhci_host *host = platform_get_drvdata(pdev); in sdhci_s3c_remove() local
649 struct sdhci_s3c *sc = sdhci_priv(host); in sdhci_s3c_remove()
658 sdhci_remove_host(host, 1); in sdhci_s3c_remove()
665 sdhci_free_host(host); in sdhci_s3c_remove()
673 struct sdhci_host *host = dev_get_drvdata(dev); in sdhci_s3c_suspend() local
675 return sdhci_suspend_host(host); in sdhci_s3c_suspend()
680 struct sdhci_host *host = dev_get_drvdata(dev); in sdhci_s3c_resume() local
682 return sdhci_resume_host(host); in sdhci_s3c_resume()
689 struct sdhci_host *host = dev_get_drvdata(dev); in sdhci_s3c_runtime_suspend() local
690 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_s3c_runtime_suspend()
694 ret = sdhci_runtime_suspend_host(host); in sdhci_s3c_runtime_suspend()
704 struct sdhci_host *host = dev_get_drvdata(dev); in sdhci_s3c_runtime_resume() local
705 struct sdhci_s3c *ourhost = to_s3c(host); in sdhci_s3c_runtime_resume()
712 ret = sdhci_runtime_resume_host(host); in sdhci_s3c_runtime_resume()