mmc: sdhci-of-arasan: Add structure device pointer in probe function
Add struct device *dev in probe func() so that it can widely use in probe to make code more readable. Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com> Link: https://lore.kernel.org/r/20210114152700.21916-4-muhammad.husaini.zulkifli@intel.com Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
80d41efe2e
commit
2ff0b85d62
|
@ -1511,11 +1511,12 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
|
||||||
struct clk *clk_xin;
|
struct clk *clk_xin;
|
||||||
struct sdhci_host *host;
|
struct sdhci_host *host;
|
||||||
struct sdhci_pltfm_host *pltfm_host;
|
struct sdhci_pltfm_host *pltfm_host;
|
||||||
|
struct device *dev = &pdev->dev;
|
||||||
|
struct device_node *np = dev->of_node;
|
||||||
struct sdhci_arasan_data *sdhci_arasan;
|
struct sdhci_arasan_data *sdhci_arasan;
|
||||||
struct device_node *np = pdev->dev.of_node;
|
|
||||||
const struct sdhci_arasan_of_data *data;
|
const struct sdhci_arasan_of_data *data;
|
||||||
|
|
||||||
data = of_device_get_match_data(&pdev->dev);
|
data = of_device_get_match_data(dev);
|
||||||
host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan));
|
host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan));
|
||||||
|
|
||||||
if (IS_ERR(host))
|
if (IS_ERR(host))
|
||||||
|
@ -1534,36 +1535,36 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
|
||||||
of_node_put(node);
|
of_node_put(node);
|
||||||
|
|
||||||
if (IS_ERR(sdhci_arasan->soc_ctl_base)) {
|
if (IS_ERR(sdhci_arasan->soc_ctl_base)) {
|
||||||
ret = dev_err_probe(&pdev->dev,
|
ret = dev_err_probe(dev,
|
||||||
PTR_ERR(sdhci_arasan->soc_ctl_base),
|
PTR_ERR(sdhci_arasan->soc_ctl_base),
|
||||||
"Can't get syscon\n");
|
"Can't get syscon\n");
|
||||||
goto err_pltfm_free;
|
goto err_pltfm_free;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sdhci_arasan->clk_ahb = devm_clk_get(&pdev->dev, "clk_ahb");
|
sdhci_arasan->clk_ahb = devm_clk_get(dev, "clk_ahb");
|
||||||
if (IS_ERR(sdhci_arasan->clk_ahb)) {
|
if (IS_ERR(sdhci_arasan->clk_ahb)) {
|
||||||
dev_err(&pdev->dev, "clk_ahb clock not found.\n");
|
dev_err(dev, "clk_ahb clock not found.\n");
|
||||||
ret = PTR_ERR(sdhci_arasan->clk_ahb);
|
ret = PTR_ERR(sdhci_arasan->clk_ahb);
|
||||||
goto err_pltfm_free;
|
goto err_pltfm_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
clk_xin = devm_clk_get(&pdev->dev, "clk_xin");
|
clk_xin = devm_clk_get(dev, "clk_xin");
|
||||||
if (IS_ERR(clk_xin)) {
|
if (IS_ERR(clk_xin)) {
|
||||||
dev_err(&pdev->dev, "clk_xin clock not found.\n");
|
dev_err(dev, "clk_xin clock not found.\n");
|
||||||
ret = PTR_ERR(clk_xin);
|
ret = PTR_ERR(clk_xin);
|
||||||
goto err_pltfm_free;
|
goto err_pltfm_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = clk_prepare_enable(sdhci_arasan->clk_ahb);
|
ret = clk_prepare_enable(sdhci_arasan->clk_ahb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&pdev->dev, "Unable to enable AHB clock.\n");
|
dev_err(dev, "Unable to enable AHB clock.\n");
|
||||||
goto err_pltfm_free;
|
goto err_pltfm_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = clk_prepare_enable(clk_xin);
|
ret = clk_prepare_enable(clk_xin);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(&pdev->dev, "Unable to enable SD clock.\n");
|
dev_err(dev, "Unable to enable SD clock.\n");
|
||||||
goto clk_dis_ahb;
|
goto clk_dis_ahb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1591,7 +1592,7 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
sdhci_arasan_update_baseclkfreq(host);
|
sdhci_arasan_update_baseclkfreq(host);
|
||||||
|
|
||||||
ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, &pdev->dev);
|
ret = sdhci_arasan_register_sdclk(sdhci_arasan, clk_xin, dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto clk_disable_all;
|
goto clk_disable_all;
|
||||||
|
|
||||||
|
@ -1600,28 +1601,27 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
|
||||||
arasan_zynqmp_execute_tuning;
|
arasan_zynqmp_execute_tuning;
|
||||||
}
|
}
|
||||||
|
|
||||||
arasan_dt_parse_clk_phases(&pdev->dev, &sdhci_arasan->clk_data);
|
arasan_dt_parse_clk_phases(dev, &sdhci_arasan->clk_data);
|
||||||
|
|
||||||
ret = mmc_of_parse(host->mmc);
|
ret = mmc_of_parse(host->mmc);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
if (ret != -EPROBE_DEFER)
|
if (ret != -EPROBE_DEFER)
|
||||||
dev_err(&pdev->dev, "parsing dt failed (%d)\n", ret);
|
dev_err(dev, "parsing dt failed (%d)\n", ret);
|
||||||
goto unreg_clk;
|
goto unreg_clk;
|
||||||
}
|
}
|
||||||
|
|
||||||
sdhci_arasan->phy = ERR_PTR(-ENODEV);
|
sdhci_arasan->phy = ERR_PTR(-ENODEV);
|
||||||
if (of_device_is_compatible(np, "arasan,sdhci-5.1")) {
|
if (of_device_is_compatible(np, "arasan,sdhci-5.1")) {
|
||||||
sdhci_arasan->phy = devm_phy_get(&pdev->dev,
|
sdhci_arasan->phy = devm_phy_get(dev, "phy_arasan");
|
||||||
"phy_arasan");
|
|
||||||
if (IS_ERR(sdhci_arasan->phy)) {
|
if (IS_ERR(sdhci_arasan->phy)) {
|
||||||
ret = PTR_ERR(sdhci_arasan->phy);
|
ret = PTR_ERR(sdhci_arasan->phy);
|
||||||
dev_err(&pdev->dev, "No phy for arasan,sdhci-5.1.\n");
|
dev_err(dev, "No phy for arasan,sdhci-5.1.\n");
|
||||||
goto unreg_clk;
|
goto unreg_clk;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = phy_init(sdhci_arasan->phy);
|
ret = phy_init(sdhci_arasan->phy);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(&pdev->dev, "phy_init err.\n");
|
dev_err(dev, "phy_init err.\n");
|
||||||
goto unreg_clk;
|
goto unreg_clk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1646,7 +1646,7 @@ err_add_host:
|
||||||
if (!IS_ERR(sdhci_arasan->phy))
|
if (!IS_ERR(sdhci_arasan->phy))
|
||||||
phy_exit(sdhci_arasan->phy);
|
phy_exit(sdhci_arasan->phy);
|
||||||
unreg_clk:
|
unreg_clk:
|
||||||
sdhci_arasan_unregister_sdclk(&pdev->dev);
|
sdhci_arasan_unregister_sdclk(dev);
|
||||||
clk_disable_all:
|
clk_disable_all:
|
||||||
clk_disable_unprepare(clk_xin);
|
clk_disable_unprepare(clk_xin);
|
||||||
clk_dis_ahb:
|
clk_dis_ahb:
|
||||||
|
|
Loading…
Reference in New Issue