Lines Matching +full:sdhci +full:- +full:5

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * SDHCI support for SiRF primaII and marco SoCs
13 #include <linux/mmc/slot-gpio.h>
14 #include "sdhci-pltfm.h"
29 * 8bit-width enable bit of CSR SD hosts is 3, in sdhci_sirf_set_bus_width()
30 * while stardard hosts use bit 5 in sdhci_sirf_set_bus_width()
42 u32 val = readl(host->ioaddr + reg); in sdhci_sirf_readl_le()
45 (host->mmc->caps & MMC_CAP_UHS_SDR50))) { in sdhci_sirf_readl_le()
64 ret = readw(host->ioaddr + reg); in sdhci_sirf_readw_le()
67 ret = readw(host->ioaddr + SDHCI_HOST_VERSION); in sdhci_sirf_readw_le()
80 int start = -1, end = 0, tuning_value = -1, range = 0; in sdhci_sirf_execute_tuning()
82 struct mmc_host *mmc = host->mmc; in sdhci_sirf_execute_tuning()
100 if (start == -1) in sdhci_sirf_execute_tuning()
104 if (phase == (SIRF_TUNING_COUNT - 1) in sdhci_sirf_execute_tuning()
114 start = -1; in sdhci_sirf_execute_tuning()
132 if (--tuning_seq_cnt) in sdhci_sirf_execute_tuning()
137 rc = -EIO; in sdhci_sirf_execute_tuning()
170 clk = devm_clk_get(&pdev->dev, NULL); in sdhci_sirf_probe()
172 dev_err(&pdev->dev, "unable to get clock"); in sdhci_sirf_probe()
181 pltfm_host->clk = clk; in sdhci_sirf_probe()
185 ret = clk_prepare_enable(pltfm_host->clk); in sdhci_sirf_probe()
197 ret = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0); in sdhci_sirf_probe()
198 if (ret == -EPROBE_DEFER) in sdhci_sirf_probe()
201 mmc_gpiod_request_cd_irq(host->mmc); in sdhci_sirf_probe()
208 clk_disable_unprepare(pltfm_host->clk); in sdhci_sirf_probe()
215 { .compatible = "sirf,prima2-sdhc" },
222 .name = "sdhci-sirf",
233 MODULE_DESCRIPTION("SDHCI driver for SiRFprimaII/SiRFmarco");