Lines Matching refs:sdhci_arasan

229 	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);  in sdhci_arasan_syscon_write()  local
230 struct regmap *soc_ctl_base = sdhci_arasan->soc_ctl_base; in sdhci_arasan_syscon_write()
245 if (sdhci_arasan->soc_ctl_map->hiword_update) in sdhci_arasan_syscon_write()
265 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_set_clock() local
266 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_set_clock()
269 if (!IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
270 if (!sdhci_arasan->is_phy_on && clock <= PHY_CLK_TOO_SLOW_HZ) { in sdhci_arasan_set_clock()
285 if (phy_power_on(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
291 sdhci_arasan->is_phy_on = true; in sdhci_arasan_set_clock()
308 if (ctrl_phy && sdhci_arasan->is_phy_on) { in sdhci_arasan_set_clock()
309 phy_power_off(sdhci_arasan->phy); in sdhci_arasan_set_clock()
310 sdhci_arasan->is_phy_on = false; in sdhci_arasan_set_clock()
313 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN) { in sdhci_arasan_set_clock()
329 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE) in sdhci_arasan_set_clock()
340 if (phy_power_on(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
346 sdhci_arasan->is_phy_on = true; in sdhci_arasan_set_clock()
369 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_reset() local
373 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_FORCE_CDTEST) { in sdhci_arasan_reset()
490 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_suspend() local
496 if (sdhci_arasan->has_cqe) { in sdhci_arasan_suspend()
506 if (!IS_ERR(sdhci_arasan->phy) && sdhci_arasan->is_phy_on) { in sdhci_arasan_suspend()
507 ret = phy_power_off(sdhci_arasan->phy); in sdhci_arasan_suspend()
515 sdhci_arasan->is_phy_on = false; in sdhci_arasan_suspend()
519 clk_disable(sdhci_arasan->clk_ahb); in sdhci_arasan_suspend()
536 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_resume() local
539 ret = clk_enable(sdhci_arasan->clk_ahb); in sdhci_arasan_resume()
551 if (!IS_ERR(sdhci_arasan->phy) && host->mmc->actual_clock) { in sdhci_arasan_resume()
552 ret = phy_power_on(sdhci_arasan->phy); in sdhci_arasan_resume()
557 sdhci_arasan->is_phy_on = true; in sdhci_arasan_resume()
566 if (sdhci_arasan->has_cqe) in sdhci_arasan_resume()
592 struct sdhci_arasan_data *sdhci_arasan = in sdhci_arasan_sdcardclk_recalc_rate() local
594 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_sdcardclk_recalc_rate()
619 struct sdhci_arasan_data *sdhci_arasan = in sdhci_arasan_sampleclk_recalc_rate() local
621 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_sampleclk_recalc_rate()
644 struct sdhci_arasan_data *sdhci_arasan = in sdhci_zynqmp_sdcardclk_set_phase() local
646 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_sdcardclk_set_phase()
710 struct sdhci_arasan_data *sdhci_arasan = in sdhci_zynqmp_sampleclk_set_phase() local
712 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_sampleclk_set_phase()
776 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_sdcardclk_set_phase() local
778 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_sdcardclk_set_phase()
843 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_sampleclk_set_phase() local
845 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_sampleclk_set_phase()
920 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in arasan_zynqmp_execute_tuning() local
921 struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw; in arasan_zynqmp_execute_tuning()
964 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_clockmultiplier() local
966 sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_clockmultiplier()
973 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_clockmultiplier()
1002 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_baseclkfreq() local
1004 sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_baseclkfreq()
1012 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_baseclkfreq()
1024 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_set_clk_delays() local
1025 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_set_clk_delays()
1335 sdhci_arasan_register_sdcardclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sdcardclk() argument
1339 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_register_sdcardclk()
1356 sdcardclk_init.ops = sdhci_arasan->clk_ops->sdcardclk_ops; in sdhci_arasan_register_sdcardclk()
1387 sdhci_arasan_register_sampleclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sampleclk() argument
1391 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_register_sampleclk()
1408 sampleclk_init.ops = sdhci_arasan->clk_ops->sampleclk_ops; in sdhci_arasan_register_sampleclk()
1459 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_support64b() local
1463 soc_ctl_map = sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_support64b()
1468 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_support64b()
1498 static int sdhci_arasan_register_sdclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sdclk() argument
1510 ret = sdhci_arasan_register_sdcardclk(sdhci_arasan, clk_xin, dev); in sdhci_arasan_register_sdclk()
1515 ret = sdhci_arasan_register_sampleclk(sdhci_arasan, clk_xin, in sdhci_arasan_register_sdclk()
1527 struct sdhci_arasan_data *sdhci_arasan) in sdhci_zynqmp_set_dynamic_config() argument
1529 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_set_dynamic_config()
1530 struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw; in sdhci_zynqmp_set_dynamic_config()
1585 static int sdhci_arasan_add_host(struct sdhci_arasan_data *sdhci_arasan) in sdhci_arasan_add_host() argument
1587 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_add_host()
1592 if (!sdhci_arasan->has_cqe) in sdhci_arasan_add_host()
1637 struct sdhci_arasan_data *sdhci_arasan; in sdhci_arasan_probe() local
1644 host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan)); in sdhci_arasan_probe()
1650 sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_probe()
1651 sdhci_arasan->host = host; in sdhci_arasan_probe()
1653 sdhci_arasan->soc_ctl_map = data->soc_ctl_map; in sdhci_arasan_probe()
1654 sdhci_arasan->clk_ops = data->clk_ops; in sdhci_arasan_probe()
1658 sdhci_arasan->soc_ctl_base = syscon_node_to_regmap(node); in sdhci_arasan_probe()
1661 if (IS_ERR(sdhci_arasan->soc_ctl_base)) { in sdhci_arasan_probe()
1663 PTR_ERR(sdhci_arasan->soc_ctl_base), in sdhci_arasan_probe()
1671 sdhci_arasan->clk_ahb = devm_clk_get(dev, "clk_ahb"); in sdhci_arasan_probe()
1672 if (IS_ERR(sdhci_arasan->clk_ahb)) { in sdhci_arasan_probe()
1673 ret = dev_err_probe(dev, PTR_ERR(sdhci_arasan->clk_ahb), in sdhci_arasan_probe()
1684 ret = clk_prepare_enable(sdhci_arasan->clk_ahb); in sdhci_arasan_probe()
1707 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_FORCE_CDTEST; in sdhci_arasan_probe()
1710 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE; in sdhci_arasan_probe()
1729 ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, dev); in sdhci_arasan_probe()
1737 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN; in sdhci_arasan_probe()
1741 arasan_dt_parse_clk_phases(dev, &sdhci_arasan->clk_data); in sdhci_arasan_probe()
1752 ret = sdhci_zynqmp_set_dynamic_config(dev, sdhci_arasan); in sdhci_arasan_probe()
1758 sdhci_arasan->phy = ERR_PTR(-ENODEV); in sdhci_arasan_probe()
1760 sdhci_arasan->phy = devm_phy_get(dev, "phy_arasan"); in sdhci_arasan_probe()
1761 if (IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_probe()
1762 ret = dev_err_probe(dev, PTR_ERR(sdhci_arasan->phy), in sdhci_arasan_probe()
1767 ret = phy_init(sdhci_arasan->phy); in sdhci_arasan_probe()
1777 sdhci_arasan->has_cqe = true; in sdhci_arasan_probe()
1784 ret = sdhci_arasan_add_host(sdhci_arasan); in sdhci_arasan_probe()
1791 if (!IS_ERR(sdhci_arasan->phy)) in sdhci_arasan_probe()
1792 phy_exit(sdhci_arasan->phy); in sdhci_arasan_probe()
1798 clk_disable_unprepare(sdhci_arasan->clk_ahb); in sdhci_arasan_probe()
1808 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_remove() local
1809 struct clk *clk_ahb = sdhci_arasan->clk_ahb; in sdhci_arasan_remove()
1811 if (!IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_remove()
1812 if (sdhci_arasan->is_phy_on) in sdhci_arasan_remove()
1813 phy_power_off(sdhci_arasan->phy); in sdhci_arasan_remove()
1814 phy_exit(sdhci_arasan->phy); in sdhci_arasan_remove()