Commit 75e0a1e3 authored by Govind Singh's avatar Govind Singh Committed by Stephen Boyd

clk: qcom: define probe by index API as common API

Extend the probe by index API in common code to be used
by other qcom clock controller.
Signed-off-by: default avatarGovind Singh <govinds@codeaurora.org>
Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 7d0c76bd
...@@ -306,4 +306,24 @@ int qcom_cc_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc) ...@@ -306,4 +306,24 @@ int qcom_cc_probe(struct platform_device *pdev, const struct qcom_cc_desc *desc)
} }
EXPORT_SYMBOL_GPL(qcom_cc_probe); 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"); MODULE_LICENSE("GPL v2");
...@@ -61,5 +61,7 @@ extern int qcom_cc_really_probe(struct platform_device *pdev, ...@@ -61,5 +61,7 @@ extern int qcom_cc_really_probe(struct platform_device *pdev,
struct regmap *regmap); struct regmap *regmap);
extern int qcom_cc_probe(struct platform_device *pdev, extern int qcom_cc_probe(struct platform_device *pdev,
const struct qcom_cc_desc *desc); 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 #endif
...@@ -112,25 +112,6 @@ static const struct qcom_cc_desc lpass_qdsp6ss_sdm845_desc = { ...@@ -112,25 +112,6 @@ static const struct qcom_cc_desc lpass_qdsp6ss_sdm845_desc = {
.num_clks = ARRAY_SIZE(lpass_qdsp6ss_sdm845_clocks), .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) static int lpass_cc_sdm845_probe(struct platform_device *pdev)
{ {
const struct qcom_cc_desc *desc; const struct qcom_cc_desc *desc;
...@@ -139,14 +120,14 @@ static int lpass_cc_sdm845_probe(struct platform_device *pdev) ...@@ -139,14 +120,14 @@ static int lpass_cc_sdm845_probe(struct platform_device *pdev)
lpass_regmap_config.name = "cc"; lpass_regmap_config.name = "cc";
desc = &lpass_cc_sdm845_desc; desc = &lpass_cc_sdm845_desc;
ret = lpass_clocks_sdm845_probe(pdev, 0, desc); ret = qcom_cc_probe_by_index(pdev, 0, desc);
if (ret) if (ret)
return ret; return ret;
lpass_regmap_config.name = "qdsp6ss"; lpass_regmap_config.name = "qdsp6ss";
desc = &lpass_qdsp6ss_sdm845_desc; 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[] = { static const struct of_device_id lpass_cc_sdm845_match_table[] = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment