Tie the CX power domain to GCC clock controllers for SDM670,
SM8150, SM8250, SM8350, SM8450, SM8550, SM8650, SM8750, SM6350,
SM4450, QCS8300, SDX75, SAR2130P, SC7180, SC7280, SA8775P,
X1E80100, Eliza, Kaanapali, and QCS615.
Enable runtime PM for GCC providers without critical clocks, allowing CX to
power down when their consumers release clocks and GDSCs.
On SDM845, the DT already describes the CX as power domain for GCC,
only the driver needs runtime PM enabling.
Update the GCC bindings to document and require the CX power-domain
dependency for the affected compatibles.
Only Kaanapali and Eliza require Fixes tags, as runtime PM support was not
available when the other platforms were upstreamed.
---
Changes in v5:
- Rebased on next-20260922.
- Drop QDU1000: its CX rail is always at NOMINAL and does not follow
the regular PMIC control.
- Require the CX power domain at the binding top level for SDM670 and
SDM845.
- Pick up Krzysztof's R-b tags for the DT bindings and Taniya's R-b
tag for SC7280 GCC.
- Drop runtime PM enablement for providers with critical clocks, which keep
the controller active.
- Link to v4: https://patch.msgid.link/20260914-qcom-tie-cx-to-gcc-v4-0-9d5a606ada33@oss.qualcomm.com
Changes in v4:
- Rebased on next-20260911.
- Add missing CX power-domain bindings for QCS8300, QDU1000, SDX75, SM4450, and SM6350.
- Address Krzysztof's binding review by documenting the CX power-domain item.
- Explain why the new required property is needed to prevent CX undervolting.
- Include the direct RPMh power-domain header in binding examples.
- Link to v3: https://patch.msgid.link/20260824-qcom-tie-cx-to-gcc-v3-0-f1205a92682b@oss.qualcomm.com
Changes in v2:
- Clarify the runtime PM rationale in the GCC driver commit messages.
- Picked up Konrad's R-b tag for the dts patches.
- Link to v1: https://patch.msgid.link/20260819-qcom-tie-cx-to-gcc-v1-0-840034124e73@oss.qualcomm.com
To: Bjorn Andersson <andersson@kernel.org>
To: Stephen Boyd <sboyd@kernel.org>
To: Brian Masney <bmasney+clk@redhat.com>
To: Jerome Brunet <jbrunet+clk@baylibre.com>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Taniya Das <taniya.das@oss.qualcomm.com>
To: Vinod Koul <vkoul@kernel.org>
To: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Abel Vesa <abel.vesa@oss.qualcomm.com>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Tengfei Fan <tengfei.fan@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Krzysztof Kozlowski <krzk@kernel.org>
---
Abel Vesa (42):
dt-bindings: clock: qcom: gcc-sdm845: Require CX power domain
dt-bindings: clock: qcom: gcc-sm8150: Add CX power domain
dt-bindings: clock: qcom: gcc-sm8250: Add CX power domain
dt-bindings: clock: qcom: gcc-sm8350: Add CX power domain
dt-bindings: clock: qcom: gcc-sm8450: Add CX power domain
dt-bindings: clock: qcom: qcs615-gcc: Add CX power domain
dt-bindings: clock: qcom: sm8550-gcc: Add CX power domain
dt-bindings: clock: qcom: sm8650-gcc: Add CX power domain
dt-bindings: clock: qcom: sm8750-gcc: Add CX power domain
dt-bindings: clock: qcom: sm4450-gcc: Add CX power domain
dt-bindings: clock: qcom: gcc-sm6350: Add CX power domain
dt-bindings: clock: qcom: qcs8300-gcc: Add CX power domain
dt-bindings: clock: qcom: sdx75-gcc: Add CX power domain
clk: qcom: gcc-eliza: Tie the CX power domain to controller
clk: qcom: gcc-kaanapali: Tie the CX power domain to controller
clk: qcom: gcc-qcs8300: Tie the CX power domain to controller
clk: qcom: gcc-sa8775p: Tie the CX power domain to controller
clk: qcom: gcc-sar2130p: Tie the CX power domain to controller
clk: qcom: gcc-sc7280: Tie the CX power domain to controller
clk: qcom: gcc-sdx75: Tie the CX power domain to controller
clk: qcom: gcc-sm4450: Tie the CX power domain to controller
clk: qcom: gcc-sm8350: Tie the CX power domain to controller
clk: qcom: gcc-sm8450: Tie the CX power domain to controller
clk: qcom: gcc-sm8550: Tie the CX power domain to controller
clk: qcom: gcc-sm8650: Tie the CX power domain to controller
clk: qcom: gcc-sm8750: Tie the CX power domain to controller
clk: qcom: gcc-x1e80100: Tie the CX power domain to controller
arm64: dts: qcom: kaanapali: Add GCC CX power domain
arm64: dts: qcom: monaco: Add GCC CX power domain
arm64: dts: qcom: sar2130p: Add GCC CX power domain
arm64: dts: qcom: sdm670: Add GCC CX power domain
arm64: dts: qcom: sdx75: Add GCC CX power domain
arm64: dts: qcom: sm4450: Add GCC CX power domain
arm64: dts: qcom: sm6350: Add GCC CX power domain
arm64: dts: qcom: sm8150: Add GCC CX power domain
arm64: dts: qcom: sm8250: Add GCC CX power domain
arm64: dts: qcom: sm8350: Add GCC CX power domain
arm64: dts: qcom: sm8450: Add GCC CX power domain
arm64: dts: qcom: sm8550: Add GCC CX power domain
arm64: dts: qcom: sm8650: Add GCC CX power domain
arm64: dts: qcom: sm8750: Add GCC CX power domain
arm64: dts: qcom: talos: Add GCC CX power domain
Documentation/devicetree/bindings/clock/qcom,gcc-sdm845.yaml | 6 +++++-
Documentation/devicetree/bindings/clock/qcom,gcc-sm6350.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,gcc-sm8150.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,gcc-sm8250.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,gcc-sm8350.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,gcc-sm8450.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,qcs615-gcc.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,qcs8300-gcc.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,sdx75-gcc.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,sm4450-gcc.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,sm8550-gcc.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,sm8650-gcc.yaml | 7 +++++++
Documentation/devicetree/bindings/clock/qcom,sm8750-gcc.yaml | 7 +++++++
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 2 ++
arch/arm64/boot/dts/qcom/monaco.dtsi | 1 +
arch/arm64/boot/dts/qcom/sar2130p.dtsi | 1 +
arch/arm64/boot/dts/qcom/sdm670.dtsi | 1 +
arch/arm64/boot/dts/qcom/sdx75.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm4450.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm6350.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8150.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8250.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8350.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8450.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8550.dtsi | 1 +
arch/arm64/boot/dts/qcom/sm8650.dtsi | 2 ++
arch/arm64/boot/dts/qcom/sm8750.dtsi | 2 ++
arch/arm64/boot/dts/qcom/talos.dtsi | 2 ++
drivers/clk/qcom/gcc-eliza.c | 1 +
drivers/clk/qcom/gcc-kaanapali.c | 1 +
drivers/clk/qcom/gcc-qcs8300.c | 1 +
drivers/clk/qcom/gcc-sa8775p.c | 1 +
drivers/clk/qcom/gcc-sar2130p.c | 1 +
drivers/clk/qcom/gcc-sc7280.c | 1 +
drivers/clk/qcom/gcc-sdx75.c | 1 +
drivers/clk/qcom/gcc-sm4450.c | 1 +
drivers/clk/qcom/gcc-sm8350.c | 1 +
drivers/clk/qcom/gcc-sm8450.c | 1 +
drivers/clk/qcom/gcc-sm8550.c | 1 +
drivers/clk/qcom/gcc-sm8650.c | 1 +
drivers/clk/qcom/gcc-sm8750.c | 1 +
drivers/clk/qcom/gcc-x1e80100.c | 1 +
42 files changed, 122 insertions(+), 1 deletion(-)
---
base-commit: a8c591ed6b672915e0be57843f943a2a723aff40
change-id: 20260819-qcom-tie-cx-to-gcc-67e6697639b5
Best regards,
--
Abel Vesa <abel.vesa@oss.qualcomm.com>