[PATCH v4 00/52] clk: qcom: Tie CX power domains to GCCs

From: Abel Vesa

Date: Mon Sep 14 2026 - 09:09:20 EST


Tie the CX power domain to GCC clock controllers for SDM670,
SM8150, SM8250, SM8350, SM8450, SM8550, SM8650, SM8750, SM6350,
SM4450, QDU1000, QCS8300, SDX75, SAR2130P, SC7180, SC7280, SA8775P,
X1E80100, Eliza, Kaanapali, and QCS615.

Also enable the runtime PM in each of the GCC provider drivers.

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 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@xxxxxxxxxxxxxxxx

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@xxxxxxxxxxxxxxxx

To: Bjorn Andersson <andersson@xxxxxxxxxx>
To: Stephen Boyd <sboyd@xxxxxxxxxx>
To: Brian Masney <bmasney+clk@xxxxxxxxxx>
To: Jerome Brunet <jbrunet+clk@xxxxxxxxxxxx>
To: Rob Herring <robh@xxxxxxxxxx>
To: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
To: Conor Dooley <conor+dt@xxxxxxxxxx>
To: Taniya Das <taniya.das@xxxxxxxxxxxxxxxx>
To: Vinod Koul <vkoul@xxxxxxxxxx>
To: Jingyi Wang <jingyi.wang@xxxxxxxxxxxxxxxx>
To: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
To: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>
To: Abel Vesa <abel.vesa@xxxxxxxxxxxxxxxx>
To: Konrad Dybcio <konradybcio@xxxxxxxxxx>
To: Tengfei Fan <tengfei.fan@xxxxxxxxxxxxxxxx>
Cc: linux-arm-msm@xxxxxxxxxxxxxxx
Cc: linux-clk@xxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx>

---
Abel Vesa (52):
dt-bindings: clock: qcom: gcc-sdm845: Add 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: qdu1000-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-qcs615: Tie the CX power domain to controller
clk: qcom: gcc-qcs8300: Tie the CX power domain to controller
clk: qcom: gcc-qdu1000: 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-sc7180: Tie the CX power domain to controller
clk: qcom: gcc-sc7280: Tie the CX power domain to controller
clk: qcom: gcc-sdm670: Tie the CX power domain to controller
clk: qcom: gcc-sdm845: 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-sm6350: Tie the CX power domain to controller
clk: qcom: gcc-sm8150: Tie the CX power domain to controller
clk: qcom: gcc-sm8250: 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: qdu1000: 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 | 9 ++++++++-
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,qdu1000-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/qdu1000.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-qcs615.c | 1 +
drivers/clk/qcom/gcc-qcs8300.c | 1 +
drivers/clk/qcom/gcc-qdu1000.c | 1 +
drivers/clk/qcom/gcc-sa8775p.c | 1 +
drivers/clk/qcom/gcc-sar2130p.c | 1 +
drivers/clk/qcom/gcc-sc7180.c | 1 +
drivers/clk/qcom/gcc-sc7280.c | 1 +
drivers/clk/qcom/gcc-sdm845.c | 2 ++
drivers/clk/qcom/gcc-sdx75.c | 1 +
drivers/clk/qcom/gcc-sm4450.c | 1 +
drivers/clk/qcom/gcc-sm6350.c | 1 +
drivers/clk/qcom/gcc-sm8150.c | 1 +
drivers/clk/qcom/gcc-sm8250.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 +
51 files changed, 141 insertions(+), 1 deletion(-)
---
base-commit: 68142f986ff04b2b70b31db00f719bf690f64a9a
change-id: 20260819-qcom-tie-cx-to-gcc-67e6697639b5

Best regards,
--
Abel Vesa <abel.vesa@xxxxxxxxxxxxxxxx>