On Mon, Nov 18, 2024 at 02:24:31AM +0000, Bryan O'Donoghue wrote: > On x1e80100 and it's SKUs the Camera Clock Controller - CAMCC has > multiple power-domains which power it. Usually with a single power-domain > the core platform code will automatically switch on the singleton > power-domain for you. If you have multiple power-domains for a device, in > this case the clock controller, you need to switch those power-domains > on/off yourself. I think the series misses the platform-specific part. It is hard to understand what kind of power relationship do you need to express. Is it actually the whole CC being powered by several domains? Or are some of those domains used to power up PLLs? Or as parents to some of GDSCs? > > The clock controllers can also contain Global Distributed > Switch Controllers - GDSCs which themselves can be referenced from dtsi > nodes ultimately triggering a gdsc_en() in drivers/clk/qcom/gdsc.c. > > As an example: > > cci0: cci@ac4a000 { > power-domains = <&camcc TITAN_TOP_GDSC>; > }; > > This series adds the support to attach a power-domain list to the > clock-controllers and the GDSCs those controllers provide so that in the > case of the above example gdsc_toggle_logic() will trigger the power-domain > list with pm_runtime_resume_and_get() and pm_runtime_put_sync() > respectively. > > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx> > --- > Bryan O'Donoghue (2): > clk: qcom: common: Add support for power-domain attachment > clk: qcom: gdsc: Add pm_runtime hooks > > drivers/clk/qcom/common.c | 24 ++++++++++++++++++++++++ > drivers/clk/qcom/gdsc.c | 26 ++++++++++++++++++-------- > drivers/clk/qcom/gdsc.h | 2 ++ > 3 files changed, 44 insertions(+), 8 deletions(-) > --- > base-commit: 744cf71b8bdfcdd77aaf58395e068b7457634b2c > change-id: 20241118-b4-linux-next-24-11-18-clock-multiple-power-domains-a5f994dc452a > > Best regards, > -- > Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx> > -- With best wishes Dmitry