Lines Matching defs:sdhci_arasan
221 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
222 struct regmap *soc_ctl_base = sdhci_arasan->soc_ctl_base;
237 if (sdhci_arasan->soc_ctl_map->hiword_update)
257 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
258 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data;
261 if (!IS_ERR(sdhci_arasan->phy)) {
262 if (!sdhci_arasan->is_phy_on && clock <= PHY_CLK_TOO_SLOW_HZ) {
277 if (phy_power_on(sdhci_arasan->phy)) {
283 sdhci_arasan->is_phy_on = true;
300 if (ctrl_phy && sdhci_arasan->is_phy_on) {
301 phy_power_off(sdhci_arasan->phy);
302 sdhci_arasan->is_phy_on = false;
305 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN) {
321 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE)
332 if (phy_power_on(sdhci_arasan->phy)) {
338 sdhci_arasan->is_phy_on = true;
361 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
365 if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_FORCE_CDTEST) {
473 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
479 if (sdhci_arasan->has_cqe) {
489 if (!IS_ERR(sdhci_arasan->phy) && sdhci_arasan->is_phy_on) {
490 ret = phy_power_off(sdhci_arasan->phy);
498 sdhci_arasan->is_phy_on = false;
502 clk_disable(sdhci_arasan->clk_ahb);
519 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
522 ret = clk_enable(sdhci_arasan->clk_ahb);
534 if (!IS_ERR(sdhci_arasan->phy) && host->mmc->actual_clock) {
535 ret = phy_power_on(sdhci_arasan->phy);
540 sdhci_arasan->is_phy_on = true;
549 if (sdhci_arasan->has_cqe)
575 struct sdhci_arasan_data *sdhci_arasan =
577 struct sdhci_host *host = sdhci_arasan->host;
602 struct sdhci_arasan_data *sdhci_arasan =
604 struct sdhci_host *host = sdhci_arasan->host;
627 struct sdhci_arasan_data *sdhci_arasan =
629 struct sdhci_host *host = sdhci_arasan->host;
692 struct sdhci_arasan_data *sdhci_arasan =
694 struct sdhci_host *host = sdhci_arasan->host;
757 struct sdhci_arasan_data *sdhci_arasan =
759 struct sdhci_host *host = sdhci_arasan->host;
823 struct sdhci_arasan_data *sdhci_arasan =
825 struct sdhci_host *host = sdhci_arasan->host;
899 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
900 struct clk_hw *hw = &sdhci_arasan->clk_data.sdcardclk_hw;
939 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
941 sdhci_arasan->soc_ctl_map;
948 if (!sdhci_arasan->soc_ctl_base) {
977 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
979 sdhci_arasan->soc_ctl_map;
987 if (!sdhci_arasan->soc_ctl_base) {
999 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
1000 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data;
1287 * @sdhci_arasan: Our private data structure.
1298 sdhci_arasan_register_sdcardclk(struct sdhci_arasan_data *sdhci_arasan,
1302 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data;
1319 sdcardclk_init.ops = sdhci_arasan->clk_ops->sdcardclk_ops;
1339 * @sdhci_arasan: Our private data structure.
1350 sdhci_arasan_register_sampleclk(struct sdhci_arasan_data *sdhci_arasan,
1354 struct sdhci_arasan_clk_data *clk_data = &sdhci_arasan->clk_data;
1371 sampleclk_init.ops = sdhci_arasan->clk_ops->sampleclk_ops;
1423 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
1425 sdhci_arasan->soc_ctl_map;
1432 if (!sdhci_arasan->soc_ctl_base) {
1444 * @sdhci_arasan: Our private data structure.
1462 static int sdhci_arasan_register_sdclk(struct sdhci_arasan_data *sdhci_arasan,
1474 ret = sdhci_arasan_register_sdcardclk(sdhci_arasan, clk_xin, dev);
1479 ret = sdhci_arasan_register_sampleclk(sdhci_arasan, clk_xin,
1490 static int sdhci_arasan_add_host(struct sdhci_arasan_data *sdhci_arasan)
1492 struct sdhci_host *host = sdhci_arasan->host;
1497 if (!sdhci_arasan->has_cqe)
1541 struct sdhci_arasan_data *sdhci_arasan;
1547 host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan));
1553 sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
1554 sdhci_arasan->host = host;
1556 sdhci_arasan->soc_ctl_map = data->soc_ctl_map;
1557 sdhci_arasan->clk_ops = data->clk_ops;
1561 sdhci_arasan->soc_ctl_base = syscon_node_to_regmap(node);
1564 if (IS_ERR(sdhci_arasan->soc_ctl_base)) {
1566 PTR_ERR(sdhci_arasan->soc_ctl_base),
1572 sdhci_arasan->clk_ahb = devm_clk_get(&pdev->dev, "clk_ahb");
1573 if (IS_ERR(sdhci_arasan->clk_ahb)) {
1575 ret = PTR_ERR(sdhci_arasan->clk_ahb);
1586 ret = clk_prepare_enable(sdhci_arasan->clk_ahb);
1601 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_FORCE_CDTEST;
1604 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_UNSTABLE;
1623 ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, &pdev->dev);
1631 sdhci_arasan->quirks |= SDHCI_ARASAN_QUIRK_CLOCK_25_BROKEN;
1634 arasan_dt_parse_clk_phases(&pdev->dev, &sdhci_arasan->clk_data);
1643 sdhci_arasan->phy = ERR_PTR(-ENODEV);
1646 sdhci_arasan->phy = devm_phy_get(&pdev->dev,
1648 if (IS_ERR(sdhci_arasan->phy)) {
1649 ret = PTR_ERR(sdhci_arasan->phy);
1654 ret = phy_init(sdhci_arasan->phy);
1664 sdhci_arasan->has_cqe = true;
1671 ret = sdhci_arasan_add_host(sdhci_arasan);
1678 if (!IS_ERR(sdhci_arasan->phy))
1679 phy_exit(sdhci_arasan->phy);
1685 clk_disable_unprepare(sdhci_arasan->clk_ahb);
1696 struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host);
1697 struct clk *clk_ahb = sdhci_arasan->clk_ahb;
1699 if (!IS_ERR(sdhci_arasan->phy)) {
1700 if (sdhci_arasan->is_phy_on)
1701 phy_power_off(sdhci_arasan->phy);
1702 phy_exit(sdhci_arasan->phy);