]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dt-bindings: clock: qcom: document the Kaanapali GPU Clock Controller
authorTaniya Das <taniya.das@oss.qualcomm.com>
Wed, 7 Jan 2026 09:43:10 +0000 (15:13 +0530)
committerBjorn Andersson <andersson@kernel.org>
Wed, 7 Jan 2026 15:42:14 +0000 (09:42 -0600)
Qualcomm GX(graphics) is a clock controller which has PLLs, clocks and
Power domains (GDSC), but the requirement from the SW driver is to use
the GDSC power domain from the clock controller to recover the GPU
firmware in case of any failure/hangs. The rest of the resources of the
clock controller are being used by the firmware of GPU. This module
exposes the GDSC power domains which helps the recovery of Graphics
subsystem.

Add bindings documentation for the Kaanapali Graphics Clock and Graphics
power domain Controller for Kaanapali SoC.

Signed-off-by: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260107-kaanapali-mmcc-v3-v3-7-8e10adc236a8@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Documentation/devicetree/bindings/clock/qcom,kaanapali-gxclkctl.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/clock/qcom,sm8450-gpucc.yaml
include/dt-bindings/clock/qcom,kaanapali-gpucc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/clock/qcom,kaanapali-gxclkctl.yaml b/Documentation/devicetree/bindings/clock/qcom,kaanapali-gxclkctl.yaml
new file mode 100644 (file)
index 0000000..5490a97
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,kaanapali-gxclkctl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Graphics power domain Controller on Kaanapali
+
+maintainers:
+  - Taniya Das <taniya.das@oss.qualcomm.com>
+
+description: |
+  Qualcomm GX(graphics) is a clock controller which has PLLs, clocks and
+  Power domains (GDSC). This module provides the power domains control
+  of gxclkctl on Qualcomm SoCs which helps the recovery of Graphics subsystem.
+
+  See also:
+    include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,kaanapali-gxclkctl
+
+  power-domains:
+    description:
+      Power domains required for the clock controller to operate
+    items:
+      - description: GFX power domain
+      - description: GMXC power domain
+      - description: GPUCC(CX) power domain
+
+  '#power-domain-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - power-domains
+  - '#power-domain-cells'
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@3d64000 {
+            compatible = "qcom,kaanapali-gxclkctl";
+            reg = <0x0 0x03d64000 0x0 0x6000>;
+            power-domains = <&rpmhpd RPMHPD_GFX>,
+                            <&rpmhpd RPMHPD_GMXC>,
+                            <&gpucc 0>;
+            #power-domain-cells = <1>;
+        };
+    };
+...
index 44380f6f81368339c2b264bde4d8ad9a23baca72..6feaa32569f9a852c2049fee00ee7a2e2aefb558 100644 (file)
@@ -14,6 +14,7 @@ description: |
   domains on Qualcomm SoCs.
 
   See also::
+    include/dt-bindings/clock/qcom,kaanapali-gpucc.h
     include/dt-bindings/clock/qcom,milos-gpucc.h
     include/dt-bindings/clock/qcom,sar2130p-gpucc.h
     include/dt-bindings/clock/qcom,sm4450-gpucc.h
@@ -26,6 +27,7 @@ description: |
 properties:
   compatible:
     enum:
+      - qcom,kaanapali-gpucc
       - qcom,milos-gpucc
       - qcom,sar2130p-gpucc
       - qcom,sm4450-gpucc
diff --git a/include/dt-bindings/clock/qcom,kaanapali-gpucc.h b/include/dt-bindings/clock/qcom,kaanapali-gpucc.h
new file mode 100644 (file)
index 0000000..e8dc200
--- /dev/null
@@ -0,0 +1,47 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_KAANAPALI_H
+
+/* GPU_CC clocks */
+#define GPU_CC_AHB_CLK                                         0
+#define GPU_CC_CB_CLK                                          1
+#define GPU_CC_CX_ACCU_SHIFT_CLK                               2
+#define GPU_CC_CX_GMU_CLK                                      3
+#define GPU_CC_CXO_AON_CLK                                     4
+#define GPU_CC_CXO_CLK                                         5
+#define GPU_CC_DEMET_CLK                                       6
+#define GPU_CC_DPM_CLK                                         7
+#define GPU_CC_FF_CLK_SRC                                      8
+#define GPU_CC_FREQ_MEASURE_CLK                                        9
+#define GPU_CC_GMU_CLK_SRC                                     10
+#define GPU_CC_GPU_SMMU_VOTE_CLK                               11
+#define GPU_CC_GX_ACCU_SHIFT_CLK                               12
+#define GPU_CC_GX_GMU_CLK                                      13
+#define GPU_CC_HUB_AON_CLK                                     14
+#define GPU_CC_HUB_CLK_SRC                                     15
+#define GPU_CC_HUB_CX_INT_CLK                                  16
+#define GPU_CC_HUB_DIV_CLK_SRC                                 17
+#define GPU_CC_MEMNOC_GFX_CLK                                  18
+#define GPU_CC_PLL0                                            19
+#define GPU_CC_PLL0_OUT_EVEN                                   20
+#define GPU_CC_RSCC_HUB_AON_CLK                                        21
+#define GPU_CC_RSCC_XO_AON_CLK                                 22
+#define GPU_CC_SLEEP_CLK                                       23
+
+/* GPU_CC power domains */
+#define GPU_CC_CX_GDSC                                         0
+
+/* GPU_CC resets */
+#define GPU_CC_CB_BCR                                          0
+#define GPU_CC_CX_BCR                                          1
+#define GPU_CC_FAST_HUB_BCR                                    2
+#define GPU_CC_FF_BCR                                          3
+#define GPU_CC_GMU_BCR                                         4
+#define GPU_CC_GX_BCR                                          5
+#define GPU_CC_XO_BCR                                          6
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h b/include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h
new file mode 100644 (file)
index 0000000..f32dade
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GX_CLKCTL_KAANAPALI_H
+#define _DT_BINDINGS_CLK_QCOM_GX_CLKCTL_KAANAPALI_H
+
+/* GX_CLKCTL power domains */
+#define GX_CLKCTL_GX_GDSC                              0
+#define GX_CLKCTL_GX_SLICE_GDSC                                1
+
+#endif