Message ID | 20230408134820.76050-2-krzysztof.kozlowski@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp884848vqo; Sat, 8 Apr 2023 06:50:31 -0700 (PDT) X-Google-Smtp-Source: AKy350a4JD+bZacStGV6PKe65xFeXKVsr1bhohj0Os2mYbUxCIcB0BWRP/w9YhpKHieFLdpvzWTd X-Received: by 2002:a05:6a20:4fa9:b0:da:d73b:926a with SMTP id gh41-20020a056a204fa900b000dad73b926amr4910295pzb.30.1680961831183; Sat, 08 Apr 2023 06:50:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680961831; cv=none; d=google.com; s=arc-20160816; b=Kv4kC6ydhCmi0b4uivHK+Jngxc5oOoJooKnUafvIj2AR7pGbEyqg8X6CvcpxC4xvhd 3mwoaTzScfBCZRTWxOafCcHPqnp/Ea700+99vxz0YP/EBSXfDK1PLuxkukaFCmtYQMkQ xxJpWyZaiVQHATtmAt2jbcM+dUFhW8wO2F9kbxQMkl0kTAVWMi/8LYmUP2g+7cJnmZ8s GYRNdD0UAXpDs+ARJ02IaiRcbSCWhAOyAIK5GSdJ7gzwGBnYHkbKbWQHn0ADhZ80DFmC Pf89mRnOW1iX3ROhmQrH6BC15NjLkwrR73WvAk6Iln1OJbuBvj2iXOVo6VxMUUAXfVAr HSGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=RbQ2J0NcJWTHHdyuGtb8cSPCUrQPKwn9o4ni40tzBTw=; b=wNE6iYOaw+lJv89MS815DjnyXQE5Ma9oKqbsN8BcN/BrLj/Ft9HEm7Mb1DJgBcFGrM h4YUavw1cz2/2SBp5YCM6ywkGp3YSIqKphQWhCv7K86oGUC0l7W/CclPX0YVfNXBkhlY H+kzdzhtX56JjNip3g+C/Vzr4yl92/qav4Pe+TvyVv3JodryMIqU4KwV4mSkKItdyeZh YMnlM9JQcytrtFNdWfwSGFYjGON6m/fvCKd6c7ov4th2Zx6qNFyypUYmRI+GjnB1em7O rVquniiUoIKV6kI55TnsrnXOvV9zZACB1LQ+ZAlnLULgnn9CZIz7cQ07a55w6Ny3sdpi g2IQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w8-20020a63f508000000b00513dd352cdesi6067942pgh.729.2023.04.08.06.50.18; Sat, 08 Apr 2023 06:50:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229949AbjDHNsf (ORCPT <rfc822;a1648639935@gmail.com> + 99 others); Sat, 8 Apr 2023 09:48:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229917AbjDHNsd (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sat, 8 Apr 2023 09:48:33 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2AFA82134; Sat, 8 Apr 2023 06:48:32 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AE1EF60F1B; Sat, 8 Apr 2023 13:48:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0A692C433D2; Sat, 8 Apr 2023 13:48:27 +0000 (UTC) From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Taniya Das <tdas@codeaurora.org>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Subject: [PATCH 2/3] dt-bindings: clock: qcom,gcc-sc7180: document CX power domain Date: Sat, 8 Apr 2023 15:48:19 +0200 Message-Id: <20230408134820.76050-2-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230408134820.76050-1-krzysztof.kozlowski@linaro.org> References: <20230408134820.76050-1-krzysztof.kozlowski@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1762616232919646253?= X-GMAIL-MSGID: =?utf-8?q?1762616232919646253?= |
Series |
[1/3] dt-bindings: clock: qcom,gcc-sm8250: add missing bi_tcxo_ao clock
|
|
Commit Message
Krzysztof Kozlowski
April 8, 2023, 1:48 p.m. UTC
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>
---
.../devicetree/bindings/clock/qcom,gcc-sc7180.yaml | 7 +++++++
1 file changed, 7 insertions(+)
Comments
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? Are all GDSCs powered by CX? If not, wouldn't this also need power-domain-names to facilitate e.g. potential MX-powered ones? 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>;
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? 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>;
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? 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>;
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>;
On 11.04.2023 15:31, Rajendra Nayak wrote: > > 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 And won't outstanding votes on that resource prevent the system from entering a system-wide low power state? Konrad > >> >> 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>;
On 4/11/2023 7:15 PM, Konrad Dybcio wrote: > > > On 11.04.2023 15:31, Rajendra Nayak wrote: >> >> 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 > And won't outstanding votes on that resource prevent the system > from entering a system-wide low power state? I think most of what you are asking was discussed at https://lore.kernel.org/all/5ff21b1e-3af9-36ef-e13e-fa33f526d0e3@quicinc.com/ Are we seeing something broken on sc7180/sc7280 platforms? If there is an outstanding vote on CX it would prevent CX from going down, but ideally we should not have an outstanding vote from USB (atleast) since we now support RET for the USB GDSC. If there is some other GDSC (within GCC) thats left turned ON, yes, that would still prevent CX from going down. > > Konrad >> >>> >>> 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>;
On 12.04.2023 07:42, Rajendra Nayak wrote: > > On 4/11/2023 7:15 PM, Konrad Dybcio wrote: >> >> >> On 11.04.2023 15:31, Rajendra Nayak wrote: >>> >>> 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 >> And won't outstanding votes on that resource prevent the system >> from entering a system-wide low power state? > > I think most of what you are asking was discussed at https://lore.kernel.org/all/5ff21b1e-3af9-36ef-e13e-fa33f526d0e3@quicinc.com/ > OK so 7[12]80 never actually power off CX fully. Understood. > Are we seeing something broken on sc7180/sc7280 platforms? I don't know, I don't have any devices. I'm just asking questions to make sure things weren't unintentionally broken. > If there is an outstanding vote on CX it would prevent CX from > going down, but ideally we should not have an outstanding vote > from USB (atleast) since we now support RET for the USB GDSC. > If there is some other GDSC (within GCC) thats left turned ON, > yes, that would still prevent CX from going down. Makes sense! Konrad > >> >> Konrad >>> >>>> >>>> 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>;
On Sat, 08 Apr 2023 15:48:19 +0200, 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> > --- > .../devicetree/bindings/clock/qcom,gcc-sc7180.yaml | 7 +++++++ > 1 file changed, 7 insertions(+) > Acked-by: Rob Herring <robh@kernel.org>
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>;