Re: [PATCH 0/2] clk: qcom: Add support for multiple power-domains for a clock controller.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18/11/2024 13:22, Bryan O'Donoghue wrote:
On 18/11/2024 13:15, Dmitry Baryshkov 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.

I don't think I understand what you mean by that.

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?

Well for example the TITAN_TOP_GDSC needs both PDs to be switched on.

We _could_ do this just for the CAMCC on x1e80100 - i.e. make it just for the camcc device but then, the next clock controller that needs more than one PD will have to implement the same fix.

Can some of the PLLs run with one PD or the other ?

Perhaps, but without _both_ PDs on the GDSC will stay stuck @ off for my test case on x1e80100 and looking at other places we manage PDs directly - drivers/media/platform/venus.c for example its generally just all or nothing.

There may be more granularity to extract but, I don't think there's more granularity for the first case here. Both PDs are needed or the GDSC will remain stuck @ off.

As I see it we can either address

1. At the drivers/clk/qcom/camcc-somesoc.c level
2. At drivers/clk/qcom/[gdsc.c|common.c] level

I think option 2 is more how you'd expect this to work though. Its not particularly obvious but ATM with singleton power-domains for the clock controllers the singletons just get turned on and left that way.

So managing the PD on/off inside of common.c/gdsc.c means the calling clock controller can stay as a simple probe() type driver and also means we can reuse the generic common.c/gdsc.c approach.

---
bod




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux