On 19/11/2024 15:41, Bjorn Andersson wrote:
audience what exactly you mean with "singleton" and "core logic".
Use dev_pm_domain_attach_list() to automatically hook the list of given
power-domains in the dtsi for the clock being registered in
qcom_cc_really_probe().
Do we need to power on/off all the associated power-domains every time
we access registers in the clock controller etc, or only in relation to
operating these GDSCs?
Its a good question.
No I don't believe these PDs are required for the regs themselves i.e.
we can write and read - I checked the regs in the clock's probe with the
GDSCs off
/* Keep clocks always enabled */
qcom_branch_set_clk_en(regmap, 0x13a9c); /* CAM_CC_GDSC_CLK */
qcom_branch_set_clk_en(regmap, 0x13ab8); /* CAM_CC_SLEEP_CLK */
only inside the probe where we actually try to switch the clock on, do
we need the PD.
ret = qcom_cc_really_probe(&pdev->dev, &cam_cc_x1e80100_desc,
regmap);
Which means the registers themselves don't need the PD. The clock
remains "stuck" unless the GDSC is on which to me means that the PLL
isn't powered until the GDSC is switched on.
So no, the regs are fine but the PLL won't budge without juice from the PD.
---
bod