Lines Matching refs:sdhci_arasan

228 	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);  in sdhci_arasan_syscon_write()  local
229 struct regmap *soc_ctl_base = sdhci_arasan->soc_ctl_base; in sdhci_arasan_syscon_write()
244 if (sdhci_arasan->soc_ctl_map->hiword_update) in sdhci_arasan_syscon_write()
264 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_set_clock() local
265 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_set_clock()
268 if (!IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
269 if (!sdhci_arasan->is_phy_on && clock <= PHY_CLK_TOO_SLOW_HZ) { in sdhci_arasan_set_clock()
284 if (phy_power_on(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
290 sdhci_arasan->is_phy_on = true; in sdhci_arasan_set_clock()
307 if (ctrl_phy && sdhci_arasan->is_phy_on) { in sdhci_arasan_set_clock()
308 phy_power_off(sdhci_arasan->phy); in sdhci_arasan_set_clock()
309 sdhci_arasan->is_phy_on = false; in sdhci_arasan_set_clock()
312 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN) { in sdhci_arasan_set_clock()
328 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE) in sdhci_arasan_set_clock()
339 if (phy_power_on(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
345 sdhci_arasan->is_phy_on = true; in sdhci_arasan_set_clock()
368 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_reset() local
372 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_FORCE_CDTEST) { in sdhci_arasan_reset()
489 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_suspend() local
495 if (sdhci_arasan->has_cqe) { in sdhci_arasan_suspend()
505 if (!IS_ERR(sdhci_arasan->phy) && sdhci_arasan->is_phy_on) { in sdhci_arasan_suspend()
506 ret = phy_power_off(sdhci_arasan->phy); in sdhci_arasan_suspend()
514 sdhci_arasan->is_phy_on = false; in sdhci_arasan_suspend()
518 clk_disable(sdhci_arasan->clk_ahb); in sdhci_arasan_suspend()
535 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_resume() local
538 ret = clk_enable(sdhci_arasan->clk_ahb); in sdhci_arasan_resume()
550 if (!IS_ERR(sdhci_arasan->phy) && host->mmc->actual_clock) { in sdhci_arasan_resume()
551 ret = phy_power_on(sdhci_arasan->phy); in sdhci_arasan_resume()
556 sdhci_arasan->is_phy_on = true; in sdhci_arasan_resume()
565 if (sdhci_arasan->has_cqe) in sdhci_arasan_resume()
591 struct sdhci_arasan_data *sdhci_arasan = in sdhci_arasan_sdcardclk_recalc_rate() local
593 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_sdcardclk_recalc_rate()
618 struct sdhci_arasan_data *sdhci_arasan = in sdhci_arasan_sampleclk_recalc_rate() local
620 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_sampleclk_recalc_rate()
643 struct sdhci_arasan_data *sdhci_arasan = in sdhci_zynqmp_sdcardclk_set_phase() local
645 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_sdcardclk_set_phase()
709 struct sdhci_arasan_data *sdhci_arasan = in sdhci_zynqmp_sampleclk_set_phase() local
711 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_sampleclk_set_phase()
775 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_sdcardclk_set_phase() local
777 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_sdcardclk_set_phase()
842 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_sampleclk_set_phase() local
844 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_sampleclk_set_phase()
919 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in arasan_zynqmp_execute_tuning() local
920 struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw; in arasan_zynqmp_execute_tuning()
963 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_clockmultiplier() local
965 sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_clockmultiplier()
972 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_clockmultiplier()
1001 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_baseclkfreq() local
1003 sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_baseclkfreq()
1011 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_baseclkfreq()
1023 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_set_clk_delays() local
1024 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_set_clk_delays()
1334 sdhci_arasan_register_sdcardclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sdcardclk() argument
1338 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_register_sdcardclk()
1355 sdcardclk_init.ops = sdhci_arasan->clk_ops->sdcardclk_ops; in sdhci_arasan_register_sdcardclk()
1386 sdhci_arasan_register_sampleclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sampleclk() argument
1390 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_register_sampleclk()
1407 sampleclk_init.ops = sdhci_arasan->clk_ops->sampleclk_ops; in sdhci_arasan_register_sampleclk()
1458 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_support64b() local
1462 soc_ctl_map = sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_support64b()
1467 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_support64b()
1497 static int sdhci_arasan_register_sdclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sdclk() argument
1509 ret = sdhci_arasan_register_sdcardclk(sdhci_arasan, clk_xin, dev); in sdhci_arasan_register_sdclk()
1514 ret = sdhci_arasan_register_sampleclk(sdhci_arasan, clk_xin, in sdhci_arasan_register_sdclk()
1525 static int sdhci_arasan_add_host(struct sdhci_arasan_data *sdhci_arasan) in sdhci_arasan_add_host() argument
1527 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_add_host()
1532 if (!sdhci_arasan->has_cqe) in sdhci_arasan_add_host()
1577 struct sdhci_arasan_data *sdhci_arasan; in sdhci_arasan_probe() local
1584 host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan)); in sdhci_arasan_probe()
1590 sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_probe()
1591 sdhci_arasan->host = host; in sdhci_arasan_probe()
1593 sdhci_arasan->soc_ctl_map = data->soc_ctl_map; in sdhci_arasan_probe()
1594 sdhci_arasan->clk_ops = data->clk_ops; in sdhci_arasan_probe()
1598 sdhci_arasan->soc_ctl_base = syscon_node_to_regmap(node); in sdhci_arasan_probe()
1601 if (IS_ERR(sdhci_arasan->soc_ctl_base)) { in sdhci_arasan_probe()
1603 PTR_ERR(sdhci_arasan->soc_ctl_base), in sdhci_arasan_probe()
1611 sdhci_arasan->clk_ahb = devm_clk_get(dev, "clk_ahb"); in sdhci_arasan_probe()
1612 if (IS_ERR(sdhci_arasan->clk_ahb)) { in sdhci_arasan_probe()
1613 ret = dev_err_probe(dev, PTR_ERR(sdhci_arasan->clk_ahb), in sdhci_arasan_probe()
1624 ret = clk_prepare_enable(sdhci_arasan->clk_ahb); in sdhci_arasan_probe()
1647 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_FORCE_CDTEST; in sdhci_arasan_probe()
1650 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE; in sdhci_arasan_probe()
1669 ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, dev); in sdhci_arasan_probe()
1677 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN; in sdhci_arasan_probe()
1681 arasan_dt_parse_clk_phases(dev, &sdhci_arasan->clk_data); in sdhci_arasan_probe()
1689 sdhci_arasan->phy = ERR_PTR(-ENODEV); in sdhci_arasan_probe()
1691 sdhci_arasan->phy = devm_phy_get(dev, "phy_arasan"); in sdhci_arasan_probe()
1692 if (IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_probe()
1693 ret = dev_err_probe(dev, PTR_ERR(sdhci_arasan->phy), in sdhci_arasan_probe()
1698 ret = phy_init(sdhci_arasan->phy); in sdhci_arasan_probe()
1708 sdhci_arasan->has_cqe = true; in sdhci_arasan_probe()
1715 ret = sdhci_arasan_add_host(sdhci_arasan); in sdhci_arasan_probe()
1722 if (!IS_ERR(sdhci_arasan->phy)) in sdhci_arasan_probe()
1723 phy_exit(sdhci_arasan->phy); in sdhci_arasan_probe()
1729 clk_disable_unprepare(sdhci_arasan->clk_ahb); in sdhci_arasan_probe()
1739 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_remove() local
1740 struct clk *clk_ahb = sdhci_arasan->clk_ahb; in sdhci_arasan_remove()
1742 if (!IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_remove()
1743 if (sdhci_arasan->is_phy_on) in sdhci_arasan_remove()
1744 phy_power_off(sdhci_arasan->phy); in sdhci_arasan_remove()
1745 phy_exit(sdhci_arasan->phy); in sdhci_arasan_remove()