Lines Matching refs:sdhci_arasan

314 	struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);  in sdhci_arasan_syscon_write()  local
315 struct regmap *soc_ctl_base = sdhci_arasan->soc_ctl_base; in sdhci_arasan_syscon_write()
330 if (sdhci_arasan->soc_ctl_map->hiword_update) in sdhci_arasan_syscon_write()
350 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_set_clock() local
351 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_set_clock()
354 if (!IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
355 if (!sdhci_arasan->is_phy_on && clock <= PHY_CLK_TOO_SLOW_HZ) { in sdhci_arasan_set_clock()
370 if (phy_power_on(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
376 sdhci_arasan->is_phy_on = true; in sdhci_arasan_set_clock()
393 if (ctrl_phy && sdhci_arasan->is_phy_on) { in sdhci_arasan_set_clock()
394 phy_power_off(sdhci_arasan->phy); in sdhci_arasan_set_clock()
395 sdhci_arasan->is_phy_on = false; in sdhci_arasan_set_clock()
398 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN) { in sdhci_arasan_set_clock()
412 if (sdhci_arasan->internal_phy_reg && clock >= MIN_PHY_CLK_HZ) { in sdhci_arasan_set_clock()
417 } else if (sdhci_arasan->internal_phy_reg) { in sdhci_arasan_set_clock()
424 if (sdhci_arasan->internal_phy_reg && clock >= MIN_PHY_CLK_HZ) in sdhci_arasan_set_clock()
427 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE) in sdhci_arasan_set_clock()
438 if (phy_power_on(sdhci_arasan->phy)) { in sdhci_arasan_set_clock()
444 sdhci_arasan->is_phy_on = true; in sdhci_arasan_set_clock()
467 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_reset() local
471 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_FORCE_CDTEST) { in sdhci_arasan_reset()
579 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_suspend() local
585 if (sdhci_arasan->has_cqe) { in sdhci_arasan_suspend()
595 if (!IS_ERR(sdhci_arasan->phy) && sdhci_arasan->is_phy_on) { in sdhci_arasan_suspend()
596 ret = phy_power_off(sdhci_arasan->phy); in sdhci_arasan_suspend()
604 sdhci_arasan->is_phy_on = false; in sdhci_arasan_suspend()
608 clk_disable(sdhci_arasan->clk_ahb); in sdhci_arasan_suspend()
625 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_resume() local
628 ret = clk_enable(sdhci_arasan->clk_ahb); in sdhci_arasan_resume()
640 if (!IS_ERR(sdhci_arasan->phy) && host->mmc->actual_clock) { in sdhci_arasan_resume()
641 ret = phy_power_on(sdhci_arasan->phy); in sdhci_arasan_resume()
646 sdhci_arasan->is_phy_on = true; in sdhci_arasan_resume()
655 if (sdhci_arasan->has_cqe) in sdhci_arasan_resume()
681 struct sdhci_arasan_data *sdhci_arasan = in sdhci_arasan_sdcardclk_recalc_rate() local
683 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_sdcardclk_recalc_rate()
708 struct sdhci_arasan_data *sdhci_arasan = in sdhci_arasan_sampleclk_recalc_rate() local
710 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_sampleclk_recalc_rate()
733 struct sdhci_arasan_data *sdhci_arasan = in sdhci_zynqmp_sdcardclk_set_phase() local
735 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_sdcardclk_set_phase()
799 struct sdhci_arasan_data *sdhci_arasan = in sdhci_zynqmp_sampleclk_set_phase() local
801 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_sampleclk_set_phase()
865 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_sdcardclk_set_phase() local
867 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_sdcardclk_set_phase()
932 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_sampleclk_set_phase() local
934 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_sampleclk_set_phase()
993 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_net_emmc_sdcardclk_set_phase() local
995 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_net_emmc_sdcardclk_set_phase()
1038 struct sdhci_arasan_data *sdhci_arasan = in sdhci_versal_net_emmc_sampleclk_set_phase() local
1040 struct sdhci_host *host = sdhci_arasan->host; in sdhci_versal_net_emmc_sampleclk_set_phase()
1104 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in arasan_zynqmp_execute_tuning() local
1105 struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw; in arasan_zynqmp_execute_tuning()
1148 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_clockmultiplier() local
1150 sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_clockmultiplier()
1157 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_clockmultiplier()
1186 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_baseclkfreq() local
1188 sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_baseclkfreq()
1196 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_baseclkfreq()
1208 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_set_clk_delays() local
1209 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_set_clk_delays()
1541 sdhci_arasan_register_sdcardclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sdcardclk() argument
1545 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_register_sdcardclk()
1562 sdcardclk_init.ops = sdhci_arasan->clk_ops->sdcardclk_ops; in sdhci_arasan_register_sdcardclk()
1593 sdhci_arasan_register_sampleclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sampleclk() argument
1597 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data; in sdhci_arasan_register_sampleclk()
1614 sampleclk_init.ops = sdhci_arasan->clk_ops->sampleclk_ops; in sdhci_arasan_register_sampleclk()
1665 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_update_support64b() local
1669 soc_ctl_map = sdhci_arasan->soc_ctl_map; in sdhci_arasan_update_support64b()
1674 if (!sdhci_arasan->soc_ctl_base) { in sdhci_arasan_update_support64b()
1704 static int sdhci_arasan_register_sdclk(struct sdhci_arasan_data *sdhci_arasan, in sdhci_arasan_register_sdclk() argument
1716 ret = sdhci_arasan_register_sdcardclk(sdhci_arasan, clk_xin, dev); in sdhci_arasan_register_sdclk()
1721 ret = sdhci_arasan_register_sampleclk(sdhci_arasan, clk_xin, in sdhci_arasan_register_sdclk()
1733 struct sdhci_arasan_data *sdhci_arasan) in sdhci_zynqmp_set_dynamic_config() argument
1735 struct sdhci_host *host = sdhci_arasan->host; in sdhci_zynqmp_set_dynamic_config()
1736 struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw; in sdhci_zynqmp_set_dynamic_config()
1791 static int sdhci_arasan_add_host(struct sdhci_arasan_data *sdhci_arasan) in sdhci_arasan_add_host() argument
1793 struct sdhci_host *host = sdhci_arasan->host; in sdhci_arasan_add_host()
1798 if (!sdhci_arasan->has_cqe) in sdhci_arasan_add_host()
1844 struct sdhci_arasan_data *sdhci_arasan; in sdhci_arasan_probe() local
1851 host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan)); in sdhci_arasan_probe()
1857 sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_probe()
1858 sdhci_arasan->host = host; in sdhci_arasan_probe()
1860 sdhci_arasan->soc_ctl_map = data->soc_ctl_map; in sdhci_arasan_probe()
1861 sdhci_arasan->clk_ops = data->clk_ops; in sdhci_arasan_probe()
1865 sdhci_arasan->soc_ctl_base = syscon_node_to_regmap(node); in sdhci_arasan_probe()
1868 if (IS_ERR(sdhci_arasan->soc_ctl_base)) { in sdhci_arasan_probe()
1870 PTR_ERR(sdhci_arasan->soc_ctl_base), in sdhci_arasan_probe()
1878 sdhci_arasan->clk_ahb = devm_clk_get(dev, "clk_ahb"); in sdhci_arasan_probe()
1879 if (IS_ERR(sdhci_arasan->clk_ahb)) { in sdhci_arasan_probe()
1880 ret = dev_err_probe(dev, PTR_ERR(sdhci_arasan->clk_ahb), in sdhci_arasan_probe()
1891 ret = clk_prepare_enable(sdhci_arasan->clk_ahb); in sdhci_arasan_probe()
1920 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_FORCE_CDTEST; in sdhci_arasan_probe()
1923 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE; in sdhci_arasan_probe()
1941 ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, dev); in sdhci_arasan_probe()
1949 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN; in sdhci_arasan_probe()
1953 arasan_dt_parse_clk_phases(dev, &sdhci_arasan->clk_data); in sdhci_arasan_probe()
1964 ret = sdhci_zynqmp_set_dynamic_config(dev, sdhci_arasan); in sdhci_arasan_probe()
1970 sdhci_arasan->phy = ERR_PTR(-ENODEV); in sdhci_arasan_probe()
1972 sdhci_arasan->phy = devm_phy_get(dev, "phy_arasan"); in sdhci_arasan_probe()
1973 if (IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_probe()
1974 ret = dev_err_probe(dev, PTR_ERR(sdhci_arasan->phy), in sdhci_arasan_probe()
1979 ret = phy_init(sdhci_arasan->phy); in sdhci_arasan_probe()
1989 sdhci_arasan->has_cqe = true; in sdhci_arasan_probe()
1997 sdhci_arasan->internal_phy_reg = true; in sdhci_arasan_probe()
1999 ret = sdhci_arasan_add_host(sdhci_arasan); in sdhci_arasan_probe()
2006 if (!IS_ERR(sdhci_arasan->phy)) in sdhci_arasan_probe()
2007 phy_exit(sdhci_arasan->phy); in sdhci_arasan_probe()
2013 clk_disable_unprepare(sdhci_arasan->clk_ahb); in sdhci_arasan_probe()
2023 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); in sdhci_arasan_remove() local
2024 struct clk *clk_ahb = sdhci_arasan->clk_ahb; in sdhci_arasan_remove()
2027 if (!IS_ERR(sdhci_arasan->phy)) { in sdhci_arasan_remove()
2028 if (sdhci_arasan->is_phy_on) in sdhci_arasan_remove()
2029 phy_power_off(sdhci_arasan->phy); in sdhci_arasan_remove()
2030 phy_exit(sdhci_arasan->phy); in sdhci_arasan_remove()