Re: [PATCH 2/3] dt-bindings: clock: qcom,gcc-sc7180: document CX power domain

Rajendra Nayak
2023-04-11T13:32:27Z

On 4/11/2023 4:57 PM, Konrad Dybcio wrote:
>
>
> On 11.04.2023 06:56, Rajendra Nayak wrote:
>>
>>
>> On 4/8/2023 7:33 PM, Konrad Dybcio wrote:
>>>
>>>
>>> On 8.04.2023 15:48, Krzysztof Kozlowski wrote:
>>>> The GCC clock controller needs CX power domain, at least according to
>>>> DTS:
>>>>
>>>>    sc7180-trogdor-pompom-r3.dtb: clock-controller@100000: Unevaluated properties are not allowed ('power-domains' was unexpected)
>>>>
>>>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
>>>> ---
>>> +CC Rajendra (author of 5d6fc6321db1 ("arm64: dts: qcom:
>>> sc7180: Add required-opps for USB"))
>>>
>>> Rajendra, shouldn't SC7180 GCC have PM ops to make sure a vote
>>> is only there when AP is active?
> So IIUC, CX is never supposed to be shut down?

Atleast sc7180 and sc7280 do not support full CX shutdown (or power
collapse as its called), it only transitions to a Retention state
and even that in the system-wide suspend path only

>
> Konrad
>>
>> hmm, I am not quite sure why we would want the performance votes
>> from peripherals dropped when CPUs go down in idle?
>>
>>> Are all GDSCs powered by CX?
>>> If not, wouldn't this also need power-domain-names to
>>> facilitate e.g. potential MX-powered ones?
>>
>> For sc7180 GCC, yes.
>>
>>>
>>> Konrad
>>>>   .../devicetree/bindings/clock/qcom,gcc-sc7180.yaml         | 7 +++++++
>>>>   1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml
>>>> index 06dce0c6b7d0..8bf9b6f49550 100644
>>>> --- a/Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml
>>>> +++ b/Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml
>>>> @@ -32,6 +32,10 @@ properties:
>>>>         - const: bi_tcxo_ao
>>>>         - const: sleep_clk
>>>>   +  power-domains:
>>>> +    items:
>>>> +      - description: CX domain
>>>> +
>>>>   required:
>>>>     - compatible
>>>>     - clocks
>>>> @@ -45,6 +49,8 @@ unevaluatedProperties: false
>>>>   examples:
>>>>     - |
>>>>       #include <dt-bindings/clock/qcom,rpmh.h>
>>>> +    #include <dt-bindings/power/qcom-rpmpd.h>
>>>> +
>>>>       clock-controller@100000 {
>>>>         compatible = "qcom,gcc-sc7180";
>>>>         reg = <0x00100000 0x1f0000>;
>>>> @@ -52,6 +58,7 @@ examples:
>>>>                  <&rpmhcc RPMH_CXO_CLK_A>,
>>>>                  <&sleep_clk>;
>>>>         clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
>>>> +      power-domains = <&rpmhpd SC7180_CX>;
>>>>         #clock-cells = <1>;
>>>>         #reset-cells = <1>;
>>>>         #power-domain-cells = <1>;