summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorQiang Yu <qiang.yu@oss.qualcomm.com>2026-08-27 23:00:33 -0700
committerBjorn Andersson <andersson@kernel.org>2026-08-31 10:20:59 -0500
commitfcbd3151c9beffca044ea7a085d7e595ebf34f74 (patch)
tree840a82e3e2a59ec52d78b824d92aa771a7d2ccb5 /Documentation
parentcee9395acd8043be0644b25c34bfa86623f2b935 (diff)
downloadlinux-next-fcbd3151c9beffca044ea7a085d7e595ebf34f74.tar.gz
linux-next-fcbd3151c9beffca044ea7a085d7e595ebf34f74.zip
dt-bindings: clock: qcom: Move x1e80100 TCSR to own binding
The QREF block supplies reference clocks to PCIe/USB/UFS PHYs and requires dedicated LDO supplies to operate. The digital control interface for QREF (clkref_en registers) resides in TCSR on x1e80100. Since QREF has no dedicated DT node of its own, these supply properties are placed in the TCSR node which acts as the control interface for QREF. These LDOs are required by QREF to provide a stable reference clock, without which the USB/PCIe/eDP PHYs cannot work properly, so the supplies are marked required even though it breaks ABI. TCSR does not act as a reset provider on x1e80100: no driver has ever registered a reset controller for it, and no consumer references it as a reset, so #reset-cells is dropped entirely rather than documented. Add a dedicated binding file for qcom,x1e80100-tcsr and document the supply properties. Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260827-hamoa_tcsr_qref_0826-v4-1-663c9d30468d@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml1
-rw-r--r--Documentation/devicetree/bindings/clock/qcom,x1e80100-tcsr.yaml114
2 files changed, 114 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml b/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml
index 1f3332275c17..f199655790da 100644
--- a/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,sm8550-tcsr.yaml
@@ -36,7 +36,6 @@ properties:
- qcom,sm8550-tcsr
- qcom,sm8650-tcsr
- qcom,sm8750-tcsr
- - qcom,x1e80100-tcsr
- const: syscon
- items:
- enum:
diff --git a/Documentation/devicetree/bindings/clock/qcom,x1e80100-tcsr.yaml b/Documentation/devicetree/bindings/clock/qcom,x1e80100-tcsr.yaml
new file mode 100644
index 000000000000..8163c679fc54
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,x1e80100-tcsr.yaml
@@ -0,0 +1,114 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,x1e80100-tcsr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm TCSR Clock Controller on X1E80100
+
+maintainers:
+ - Bjorn Andersson <andersson@kernel.org>
+ - Taniya Das <taniya.das@oss.qualcomm.com>
+
+description: |
+ Qualcomm TCSR clock control module provides the clocks on X1E80100
+
+ See also:
+ - include/dt-bindings/clock/qcom,x1e80100-tcsr.h
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - qcom,x1e80100-tcsr
+ - const: syscon
+
+ clocks:
+ items:
+ - description: TCXO pad clock
+
+ reg:
+ maxItems: 1
+
+ '#clock-cells':
+ const: 1
+
+ vdda-qrefrpt0-0p9-supply: true
+ vdda-qrefrpt1-0p9-supply: true
+ vdda-qrefrpt2-0p9-supply: true
+ vdda-qrefrpt3-0p9-supply: true
+ vdda-qrefrpt4-0p9-supply: true
+ vdda-qrefrx0-0p9-supply: true
+ vdda-qrefrx1-0p9-supply: true
+ vdda-qrefrx2-0p9-supply: true
+ vdda-qrefrx3-0p9-supply: true
+ vdda-qrefrx4-0p9-supply: true
+ vdda-qreftx0-0p9-supply: true
+ vdda-qreftx0-1p2-supply: true
+ vdda-qreftx1-0p9-supply: true
+ vdda-qreftx1-1p2-supply: true
+ vdda-refgen0-0p9-supply: true
+ vdda-refgen0-1p2-supply: true
+ vdda-refgen2-0p9-supply: true
+ vdda-refgen2-1p2-supply: true
+
+required:
+ - compatible
+ - clocks
+ - '#clock-cells'
+ - vdda-qrefrpt0-0p9-supply
+ - vdda-qrefrpt1-0p9-supply
+ - vdda-qrefrpt2-0p9-supply
+ - vdda-qrefrpt3-0p9-supply
+ - vdda-qrefrpt4-0p9-supply
+ - vdda-qrefrx0-0p9-supply
+ - vdda-qrefrx1-0p9-supply
+ - vdda-qrefrx2-0p9-supply
+ - vdda-qrefrx3-0p9-supply
+ - vdda-qrefrx4-0p9-supply
+ - vdda-qreftx0-0p9-supply
+ - vdda-qreftx0-1p2-supply
+ - vdda-qreftx1-0p9-supply
+ - vdda-qreftx1-1p2-supply
+ - vdda-refgen0-0p9-supply
+ - vdda-refgen0-1p2-supply
+ - vdda-refgen2-0p9-supply
+ - vdda-refgen2-1p2-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,rpmh.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ clock-controller@1fc0000 {
+ compatible = "qcom,x1e80100-tcsr", "syscon";
+ reg = <0x0 0x1fc0000 0x0 0x30000>;
+ clocks = <&rpmhcc RPMH_CXO_CLK>;
+ #clock-cells = <1>;
+ vdda-qrefrpt0-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrpt1-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrpt2-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrpt3-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrpt4-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrx0-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrx1-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrx2-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrx3-0p9-supply = <&vreg_l1a>;
+ vdda-qrefrx4-0p9-supply = <&vreg_l1a>;
+ vdda-qreftx0-0p9-supply = <&vreg_l1a>;
+ vdda-qreftx0-1p2-supply = <&vreg_l2a>;
+ vdda-qreftx1-0p9-supply = <&vreg_l1a>;
+ vdda-qreftx1-1p2-supply = <&vreg_l2a>;
+ vdda-refgen0-0p9-supply = <&vreg_l1a>;
+ vdda-refgen0-1p2-supply = <&vreg_l2a>;
+ vdda-refgen2-0p9-supply = <&vreg_l1a>;
+ vdda-refgen2-1p2-supply = <&vreg_l2a>;
+ };
+ };
+
+...