Message ID | cover.1487926924.git.viresh.kumar@linaro.org |
---|---|
Headers | show |
Series | PM / Domains: Implement domain performance states | expand |
On 01-03-17, 09:45, Geert Uytterhoeven wrote: > On Wed, Mar 1, 2017 at 7:14 AM, Viresh Kumar <viresh.kumar@linaro.org> wrote: > > On 28-02-17, 09:52, Rob Herring wrote: > >> On Tue, Feb 28, 2017 at 9:14 AM, Ulf Hansson <ulf.hansson@linaro.org> wrote: > >> > This comes from the early design of the generic PM domain, thus I > >> > assume we have some HW with such complex PM topology. However, I don't > >> > know if it is actually being used. > >> > > >> > Moreover, the corresponding DT bindings for "power-domains" parents, > >> > can easily be extended to cover more than one parent. See more in > >> > Documentation/devicetree/bindings/power/power_domain.txt > >> > >> I could easily see device having 2 power domains. For example a cpu > >> may have separate domains for RAM/caches and logic. > > > > An important thing here is that PM domain doesn't support such devices. i.e. a > > device isn't allowed to have multiple PM domains today. So a way to support such > > devices can be to create a virtual PM domain, that has two parents and device as > > its child. > > As clock domains (and their support code) are fairly orthogonal to power > areas, currently our power area controller driver just forwards the > clock handling > to the clock driver (cfr. rcar-sysc). Perhaps Rajendra can explain better but Qcom have a case where they need to program two power domains as well. -- viresh
On Wed, Mar 1, 2017 at 12:27 AM, Rajendra Nayak <rnayak@codeaurora.org> wrote: > > > On 02/28/2017 09:22 PM, Rob Herring wrote: >> On Tue, Feb 28, 2017 at 9:14 AM, Ulf Hansson <ulf.hansson@linaro.org> wrote: >>> [...] >>> >>>>> ---> Parent domain-2 (Contains Perfomance states) >>>>> | >>>>> | >>>>> C.) DeviceX ---> Parent-domain-1 | >>>>> | >>>>> | >>>>> ---> Parent domain-3 (Contains Perfomance states) >>>> >>>> I'm a bit confused. How does a domain have 2 parent domains? >>> >>> This comes from the early design of the generic PM domain, thus I >>> assume we have some HW with such complex PM topology. However, I don't >>> know if it is actually being used. >>> >>> Moreover, the corresponding DT bindings for "power-domains" parents, >>> can easily be extended to cover more than one parent. See more in >>> Documentation/devicetree/bindings/power/power_domain.txt >> >> I could easily see device having 2 power domains. For example a cpu >> may have separate domains for RAM/caches and logic. And nesting of > > yet the bindings for power-domains (for consumer devices) only allows for > one powerdomain to be associated with a device. There's nothing in the binding only allowing that. If that was true, then #powerdomain-cells would be pointless as the property size would tell you the number of cells. Now it may be that we simply don't have any cases with more than 1. Hopefully that's not because bindings are working around PM domain limitations/requirements. Rob
On 03/02/2017 04:43 AM, Rob Herring wrote: > On Wed, Mar 1, 2017 at 12:27 AM, Rajendra Nayak <rnayak@codeaurora.org> wrote: >> >> >> On 02/28/2017 09:22 PM, Rob Herring wrote: >>> On Tue, Feb 28, 2017 at 9:14 AM, Ulf Hansson <ulf.hansson@linaro.org> wrote: >>>> [...] >>>> >>>>>> ---> Parent domain-2 (Contains Perfomance states) >>>>>> | >>>>>> | >>>>>> C.) DeviceX ---> Parent-domain-1 | >>>>>> | >>>>>> | >>>>>> ---> Parent domain-3 (Contains Perfomance states) >>>>> >>>>> I'm a bit confused. How does a domain have 2 parent domains? >>>> >>>> This comes from the early design of the generic PM domain, thus I >>>> assume we have some HW with such complex PM topology. However, I don't >>>> know if it is actually being used. >>>> >>>> Moreover, the corresponding DT bindings for "power-domains" parents, >>>> can easily be extended to cover more than one parent. See more in >>>> Documentation/devicetree/bindings/power/power_domain.txt >>> >>> I could easily see device having 2 power domains. For example a cpu >>> may have separate domains for RAM/caches and logic. And nesting of >> >> yet the bindings for power-domains (for consumer devices) only allows for >> one powerdomain to be associated with a device. > > There's nothing in the binding only allowing that. If that was true, > then #powerdomain-cells would be pointless Is't #powerdomain-cells a powerdomain provider property? and used to specify if a powerdomain provider supports providing 1 or many powerdomains? I was talking about the power domain consumer property. Looking at Documentation/devicetree/bindings/power/power_domain.txt.. ==PM domain consumers== Required properties: - power-domains : A phandle and PM domain specifier as defined by bindings of the power controller specified by phandle. It clearly says 'A phandle'. If there was a way to specify multiple power-domains for a consumer device should it not be saying a list of phandles? Like we do for clocks and regulators? > as the property size would > tell you the number of cells. Now it may be that we simply don't have > any cases with more than 1. Hopefully that's not because bindings are > working around PM domain limitations/requirements. > > Rob > -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation