clk: qcom: define probe by index API as common API
authorGovind Singh <govinds@codeaurora.org>
Fri, 26 Jul 2019 09:23:28 +0000 (14:53 +0530)
committerStephen Boyd <sboyd@kernel.org>
Thu, 8 Aug 2019 15:20:01 +0000 (08:20 -0700)
Extend the probe by index API in common code to be used
by other qcom clock controller.

Signed-off-by: Govind Singh <govinds@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/qcom/common.c
drivers/clk/qcom/common.h
drivers/clk/qcom/lpasscc-sdm845.c

index a6b2f86..28ddc74 100644 (file)
@@ -306,4 +306,24 @@ int qcom_cc_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc)
 }
 EXPORT_SYMBOL_GPL(qcom_cc_probe);
 
+int qcom_cc_probe_by_index(struct platform_device *pdev, int index,
+                          const struct qcom_cc_desc *desc)
+{
+       struct regmap *regmap;
+       struct resource *res;
+       void __iomem *base;
+
+       res = platform_get_resource(pdev, IORESOURCE_MEM, index);
+       base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(base))
+               return -ENOMEM;
+
+       regmap = devm_regmap_init_mmio(&pdev->dev, base, desc->config);
+       if (IS_ERR(regmap))
+               return PTR_ERR(regmap);
+
+       return qcom_cc_really_probe(pdev, desc, regmap);
+}
+EXPORT_SYMBOL_GPL(qcom_cc_probe_by_index);
+
 MODULE_LICENSE("GPL v2");
index 1e2a8bd..bb39a7e 100644 (file)
@@ -61,5 +61,7 @@ extern int qcom_cc_really_probe(struct platform_device *pdev,
                                struct regmap *regmap);
 extern int qcom_cc_probe(struct platform_device *pdev,
                         const struct qcom_cc_desc *desc);
+extern int qcom_cc_probe_by_index(struct platform_device *pdev, int index,
+                                 const struct qcom_cc_desc *desc);
 
 #endif
index e246b99..56d3e99 100644 (file)
@@ -112,25 +112,6 @@ static const struct qcom_cc_desc lpass_qdsp6ss_sdm845_desc = {
        .num_clks = ARRAY_SIZE(lpass_qdsp6ss_sdm845_clocks),
 };
 
-static int lpass_clocks_sdm845_probe(struct platform_device *pdev, int index,
-                                    const struct qcom_cc_desc *desc)
-{
-       struct regmap *regmap;
-       struct resource *res;
-       void __iomem *base;
-
-       res = platform_get_resource(pdev, IORESOURCE_MEM, index);
-       base = devm_ioremap_resource(&pdev->dev, res);
-       if (IS_ERR(base))
-               return PTR_ERR(base);
-
-       regmap = devm_regmap_init_mmio(&pdev->dev, base, desc->config);
-       if (IS_ERR(regmap))
-               return PTR_ERR(regmap);
-
-       return qcom_cc_really_probe(pdev, desc, regmap);
-}
-
 static int lpass_cc_sdm845_probe(struct platform_device *pdev)
 {
        const struct qcom_cc_desc *desc;
@@ -139,14 +120,14 @@ static int lpass_cc_sdm845_probe(struct platform_device *pdev)
        lpass_regmap_config.name = "cc";
        desc = &lpass_cc_sdm845_desc;
 
-       ret = lpass_clocks_sdm845_probe(pdev, 0, desc);
+       ret = qcom_cc_probe_by_index(pdev, 0, desc);
        if (ret)
                return ret;
 
        lpass_regmap_config.name = "qdsp6ss";
        desc = &lpass_qdsp6ss_sdm845_desc;
 
-       return lpass_clocks_sdm845_probe(pdev, 1, desc);
+       return qcom_cc_probe_by_index(pdev, 1, desc);
 }
 
 static const struct of_device_id lpass_cc_sdm845_match_table[] = {