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: Govind Singh <govinds@codeaurora.org> Signed-off-by: Stephen Boyd <sboyd@kernel.org>alistair/sunxi64-5.4-dsi
parent
7d0c76bdf2
commit
75e0a1e301
|
@ -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,
|
||||||
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 = {
|
||||||
.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)
|
||||||
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[] = {
|
||||||
|
|
Loading…
Reference in New Issue