Lines Matching defs:sdhci_arasan

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