Lines Matching +full:sdhci +full:- +full:caps

1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2023-2025 SpacemiT (Hangzhou) Technology Co. Ltd
20 #include "sdhci.h"
21 #include "sdhci-pltfm.h"
101 if (!(host->mmc->caps2 & MMC_CAP2_NO_MMC)) in spacemit_sdhci_reset()
115 if (!(host->mmc->caps2 & MMC_CAP2_NO_SDIO)) in spacemit_sdhci_set_uhs_signaling()
121 struct mmc_host *mmc = host->mmc; in spacemit_sdhci_set_clock()
123 if (mmc->ios.timing <= MMC_TIMING_UHS_SDR50) in spacemit_sdhci_set_clock()
150 ret = readl_poll_timeout(host->ioaddr + SPACEMIT_SDHC_PHY_DLLSTS, state, in spacemit_sdhci_phy_dll_init()
152 if (ret == -ETIMEDOUT) in spacemit_sdhci_phy_dll_init()
153 dev_warn(mmc_dev(host->mmc), "fail to lock phy dll in 100us!\n"); in spacemit_sdhci_phy_dll_init()
160 if (!ios->enhanced_strobe) { in spacemit_sdhci_hs400_enhanced_strobe()
173 return clk_get_rate(pltfm_host->clk); in spacemit_sdhci_clk_get_max_clock()
213 sdhst->clk_core = devm_clk_get_enabled(dev, "core"); in spacemit_sdhci_get_clocks()
214 if (IS_ERR(sdhst->clk_core)) in spacemit_sdhci_get_clocks()
215 return -EINVAL; in spacemit_sdhci_get_clocks()
217 sdhst->clk_io = devm_clk_get_enabled(dev, "io"); in spacemit_sdhci_get_clocks()
218 if (IS_ERR(sdhst->clk_io)) in spacemit_sdhci_get_clocks()
219 return -EINVAL; in spacemit_sdhci_get_clocks()
221 pltfm_host->clk = sdhst->clk_io; in spacemit_sdhci_get_clocks()
247 { .compatible = "spacemit,k1-sdhci" },
254 struct device *dev = &pdev->dev; in spacemit_sdhci_probe()
267 ret = mmc_of_parse(host->mmc); in spacemit_sdhci_probe()
273 if (!(host->mmc->caps2 & MMC_CAP2_NO_MMC)) { in spacemit_sdhci_probe()
274 mops = &host->mmc_host_ops; in spacemit_sdhci_probe()
275 mops->hs400_prepare_ddr = spacemit_sdhci_pre_select_hs400; in spacemit_sdhci_probe()
276 mops->hs400_complete = spacemit_sdhci_post_select_hs400; in spacemit_sdhci_probe()
277 mops->hs400_downgrade = spacemit_sdhci_pre_hs400_to_hs200; in spacemit_sdhci_probe()
278 mops->hs400_enhanced_strobe = spacemit_sdhci_hs400_enhanced_strobe; in spacemit_sdhci_probe()
281 host->mmc->caps |= MMC_CAP_NEED_RSP_BUSY; in spacemit_sdhci_probe()
299 .name = "sdhci-spacemit",
307 MODULE_DESCRIPTION("SpacemiT SDHCI platform driver");