Lines Matching defs:host

9 #include <linux/mmc/host.h>
47 static int sdhci_bcm_kona_sd_reset(struct sdhci_host *host)
55 /* reset the host using the top level reset */
56 val = sdhci_readl(host, KONA_SDHOST_CORECTRL);
58 sdhci_writel(host, val, KONA_SDHOST_CORECTRL);
60 while (!(sdhci_readl(host, KONA_SDHOST_CORECTRL) & KONA_SDHOST_RESET)) {
62 pr_err("Error: sd host is stuck in reset!!!\n");
67 /* bring the host out of reset */
68 val = sdhci_readl(host, KONA_SDHOST_CORECTRL);
78 sdhci_writel(host, val, KONA_SDHOST_CORECTRL);
83 static void sdhci_bcm_kona_sd_init(struct sdhci_host *host)
88 val = sdhci_readl(host, KONA_SDHOST_COREIMR);
90 sdhci_writel(host, val, KONA_SDHOST_COREIMR);
92 /* Enable the AHB clock gating module to the host */
93 val = sdhci_readl(host, KONA_SDHOST_CORECTRL);
103 sdhci_writel(host, val, KONA_SDHOST_CORECTRL);
112 static int sdhci_bcm_kona_sd_card_emulate(struct sdhci_host *host, int insert)
114 struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host);
127 val = sdhci_readl(host, KONA_SDHOST_CORESTAT);
132 ret = mmc_gpio_get_ro(host->mmc);
138 sdhci_writel(host, val, KONA_SDHOST_CORESTAT);
141 sdhci_writel(host, val, KONA_SDHOST_CORESTAT);
151 static void sdhci_bcm_kona_card_event(struct sdhci_host *host)
153 if (mmc_gpio_get_cd(host->mmc) > 0) {
154 dev_dbg(mmc_dev(host->mmc),
156 sdhci_bcm_kona_sd_card_emulate(host, 1);
158 dev_dbg(mmc_dev(host->mmc),
160 sdhci_bcm_kona_sd_card_emulate(host, 0);
164 static void sdhci_bcm_kona_init_74_clocks(struct sdhci_host *host,
208 struct sdhci_host *host;
213 host = sdhci_pltfm_init(pdev, &sdhci_pltfm_data_kona,
215 if (IS_ERR(host))
216 return PTR_ERR(host);
218 dev_dbg(dev, "%s: inited. IOADDR=%p\n", __func__, host->ioaddr);
220 pltfm_priv = sdhci_priv(host);
225 ret = mmc_of_parse(host->mmc);
229 if (!host->mmc->f_max) {
243 ret = clk_set_rate(pltfm_priv->clk, host->mmc->f_max);
256 mmc_card_is_removable(host->mmc) ? 'N' : 'Y');
258 (mmc_gpio_get_cd(host->mmc) != -ENOSYS) ? 'Y' : 'N',
259 (mmc_gpio_get_ro(host->mmc) != -ENOSYS) ? 'Y' : 'N');
261 if (!mmc_card_is_removable(host->mmc))
262 host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION;
265 (host->mmc->caps & MMC_CAP_8_BIT_DATA) ? 'Y' : 'N');
267 ret = sdhci_bcm_kona_sd_reset(host);
271 sdhci_bcm_kona_sd_init(host);
273 ret = sdhci_add_host(host);
278 if (!mmc_card_is_removable(host->mmc)) {
279 ret = sdhci_bcm_kona_sd_card_emulate(host, 1);
291 if (mmc_gpio_get_cd(host->mmc) > 0)
292 sdhci_bcm_kona_sd_card_emulate(host, 1);
298 sdhci_remove_host(host, 0);
301 sdhci_bcm_kona_sd_reset(host);
315 struct sdhci_host *host = platform_get_drvdata(pdev);
316 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);