mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 02:17:36 -04:00
soc: qcom: geni-se: Handle core clk in geni_se_clks_off() and geni_se_clks_on()
Currently, core clk is handled individually in protocol drivers like the I2C driver. Move this clock management to the common clock APIs (geni_se_clks_on/off) that are already present in the common GENI SE driver to maintain consistency across all protocol drivers. Core clk is now properly managed alongside the other clocks (se->clk and wrapper clocks) in the fundamental clock control functions, eliminating the need for individual protocol drivers to handle this clock separately. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com> Tested-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://lore.kernel.org/r/20260227061544.1785978-5-praveen.talari@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
committed by
Bjorn Andersson
parent
5b8a39dcf9
commit
e5f54cda9d
@@ -583,6 +583,7 @@ static void geni_se_clks_off(struct geni_se *se)
|
||||
|
||||
clk_disable_unprepare(se->clk);
|
||||
clk_bulk_disable_unprepare(wrapper->num_clks, wrapper->clks);
|
||||
clk_disable_unprepare(se->core_clk);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -619,7 +620,18 @@ static int geni_se_clks_on(struct geni_se *se)
|
||||
|
||||
ret = clk_prepare_enable(se->clk);
|
||||
if (ret)
|
||||
clk_bulk_disable_unprepare(wrapper->num_clks, wrapper->clks);
|
||||
goto err_bulk_clks;
|
||||
|
||||
ret = clk_prepare_enable(se->core_clk);
|
||||
if (ret)
|
||||
goto err_se_clk;
|
||||
|
||||
return 0;
|
||||
|
||||
err_se_clk:
|
||||
clk_disable_unprepare(se->clk);
|
||||
err_bulk_clks:
|
||||
clk_bulk_disable_unprepare(wrapper->num_clks, wrapper->clks);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user