clk: qcom: gcc-sc8280xp: Add runtime PM
The GCC block on SC8280XP is powered by the CX rail. We need to ensure that it's enabled to prevent unwanted power collapse. Enable runtime PM to keep the power flowing only when necessary. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Link: https://lore.kernel.org/r/20230619-topic-sc8280xp-clk-rpm-v1-2-1e5e1064cdb2@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
parent
9bbcb892a7
commit
2a541abd98
1 changed files with 16 additions and 2 deletions
|
@ -9,6 +9,7 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of_device.h>
|
#include <linux/of_device.h>
|
||||||
|
#include <linux/pm_runtime.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
|
|
||||||
|
@ -7421,9 +7422,19 @@ static int gcc_sc8280xp_probe(struct platform_device *pdev)
|
||||||
struct regmap *regmap;
|
struct regmap *regmap;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
ret = devm_pm_runtime_enable(&pdev->dev);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
ret = pm_runtime_resume_and_get(&pdev->dev);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
|
regmap = qcom_cc_map(pdev, &gcc_sc8280xp_desc);
|
||||||
if (IS_ERR(regmap))
|
if (IS_ERR(regmap)) {
|
||||||
|
pm_runtime_put(&pdev->dev);
|
||||||
return PTR_ERR(regmap);
|
return PTR_ERR(regmap);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keep the clocks always-ON
|
* Keep the clocks always-ON
|
||||||
|
@ -7445,7 +7456,10 @@ static int gcc_sc8280xp_probe(struct platform_device *pdev)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
return qcom_cc_really_probe(pdev, &gcc_sc8280xp_desc, regmap);
|
ret = qcom_cc_really_probe(pdev, &gcc_sc8280xp_desc, regmap);
|
||||||
|
pm_runtime_put(&pdev->dev);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct of_device_id gcc_sc8280xp_match_table[] = {
|
static const struct of_device_id gcc_sc8280xp_match_table[] = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue