Lines Matching refs:host
60 static int sdhci_bcm_kona_sd_reset(struct sdhci_host *host) in sdhci_bcm_kona_sd_reset() argument
69 val = sdhci_readl(host, KONA_SDHOST_CORECTRL); in sdhci_bcm_kona_sd_reset()
71 sdhci_writel(host, val, KONA_SDHOST_CORECTRL); in sdhci_bcm_kona_sd_reset()
73 while (!(sdhci_readl(host, KONA_SDHOST_CORECTRL) & KONA_SDHOST_RESET)) { in sdhci_bcm_kona_sd_reset()
81 val = sdhci_readl(host, KONA_SDHOST_CORECTRL); in sdhci_bcm_kona_sd_reset()
91 sdhci_writel(host, val, KONA_SDHOST_CORECTRL); in sdhci_bcm_kona_sd_reset()
96 static void sdhci_bcm_kona_sd_init(struct sdhci_host *host) in sdhci_bcm_kona_sd_init() argument
101 val = sdhci_readl(host, KONA_SDHOST_COREIMR); in sdhci_bcm_kona_sd_init()
103 sdhci_writel(host, val, KONA_SDHOST_COREIMR); in sdhci_bcm_kona_sd_init()
106 val = sdhci_readl(host, KONA_SDHOST_CORECTRL); in sdhci_bcm_kona_sd_init()
116 sdhci_writel(host, val, KONA_SDHOST_CORECTRL); in sdhci_bcm_kona_sd_init()
125 static int sdhci_bcm_kona_sd_card_emulate(struct sdhci_host *host, int insert) in sdhci_bcm_kona_sd_card_emulate() argument
127 struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host); in sdhci_bcm_kona_sd_card_emulate()
140 val = sdhci_readl(host, KONA_SDHOST_CORESTAT); in sdhci_bcm_kona_sd_card_emulate()
145 ret = mmc_gpio_get_ro(host->mmc); in sdhci_bcm_kona_sd_card_emulate()
151 sdhci_writel(host, val, KONA_SDHOST_CORESTAT); in sdhci_bcm_kona_sd_card_emulate()
154 sdhci_writel(host, val, KONA_SDHOST_CORESTAT); in sdhci_bcm_kona_sd_card_emulate()
164 static void sdhci_bcm_kona_card_event(struct sdhci_host *host) in sdhci_bcm_kona_card_event() argument
166 if (mmc_gpio_get_cd(host->mmc) > 0) { in sdhci_bcm_kona_card_event()
167 dev_dbg(mmc_dev(host->mmc), in sdhci_bcm_kona_card_event()
169 sdhci_bcm_kona_sd_card_emulate(host, 1); in sdhci_bcm_kona_card_event()
171 dev_dbg(mmc_dev(host->mmc), in sdhci_bcm_kona_card_event()
173 sdhci_bcm_kona_sd_card_emulate(host, 0); in sdhci_bcm_kona_card_event()
177 static void sdhci_bcm_kona_init_74_clocks(struct sdhci_host *host, in sdhci_bcm_kona_init_74_clocks() argument
221 struct sdhci_host *host; in sdhci_bcm_kona_probe() local
226 host = sdhci_pltfm_init(pdev, &sdhci_pltfm_data_kona, in sdhci_bcm_kona_probe()
228 if (IS_ERR(host)) in sdhci_bcm_kona_probe()
229 return PTR_ERR(host); in sdhci_bcm_kona_probe()
231 dev_dbg(dev, "%s: inited. IOADDR=%p\n", __func__, host->ioaddr); in sdhci_bcm_kona_probe()
233 pltfm_priv = sdhci_priv(host); in sdhci_bcm_kona_probe()
238 ret = mmc_of_parse(host->mmc); in sdhci_bcm_kona_probe()
242 if (!host->mmc->f_max) { in sdhci_bcm_kona_probe()
256 if (clk_set_rate(pltfm_priv->clk, host->mmc->f_max) != 0) { in sdhci_bcm_kona_probe()
267 (host->mmc->caps & MMC_CAP_NONREMOVABLE) ? 'Y' : 'N'); in sdhci_bcm_kona_probe()
269 (mmc_gpio_get_cd(host->mmc) != -ENOSYS) ? 'Y' : 'N', in sdhci_bcm_kona_probe()
270 (mmc_gpio_get_ro(host->mmc) != -ENOSYS) ? 'Y' : 'N'); in sdhci_bcm_kona_probe()
272 if (host->mmc->caps & MMC_CAP_NONREMOVABLE) in sdhci_bcm_kona_probe()
273 host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; in sdhci_bcm_kona_probe()
276 (host->mmc->caps & MMC_CAP_8_BIT_DATA) ? 'Y' : 'N'); in sdhci_bcm_kona_probe()
278 ret = sdhci_bcm_kona_sd_reset(host); in sdhci_bcm_kona_probe()
282 sdhci_bcm_kona_sd_init(host); in sdhci_bcm_kona_probe()
284 ret = sdhci_add_host(host); in sdhci_bcm_kona_probe()
291 if (host->mmc->caps & MMC_CAP_NONREMOVABLE) { in sdhci_bcm_kona_probe()
292 ret = sdhci_bcm_kona_sd_card_emulate(host, 1); in sdhci_bcm_kona_probe()
304 if (mmc_gpio_get_cd(host->mmc) > 0) in sdhci_bcm_kona_probe()
305 sdhci_bcm_kona_sd_card_emulate(host, 1); in sdhci_bcm_kona_probe()
311 sdhci_remove_host(host, 0); in sdhci_bcm_kona_probe()
314 sdhci_bcm_kona_sd_reset(host); in sdhci_bcm_kona_probe()