1 # SPDX-License-Identifier: GPL-2.0-only
4 $id: http://devicetree.org/schemas/bindings/clock/qcom,gcc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Qualcomm Global Clock & Reset Controller Binding
10 - Stephen Boyd <sboyd@kernel.org>
11 - Taniya Das <tdas@codeaurora.org>
14 Qualcomm global clock control module which supports the clocks, resets and
31 - qcom,gcc-msm8974pro-ac
48 - description: Board XO source
49 - description: Board active XO source
50 - description: Sleep clock source
53 - description: XO source
54 - description: Second XO source
55 - description: Sleep clock source
58 - description: Board XO source
59 - description: Sleep clock source
60 - description: USB 3.0 phy pipe clock
61 - description: UFS phy rx symbol clock for pipe 0
62 - description: UFS phy rx symbol clock for pipe 1
63 - description: UFS phy tx symbol clock
64 - description: PCIE phy pipe clock
84 - const: ufs_rx_symbol0
85 - const: ufs_rx_symbol1
86 - const: ufs_tx_symbol0
95 '#power-domain-cells':
105 Qualcomm TSENS (thermal sensor device) on some devices can
106 be part of GCC and hence the TSENS properties can also be part
107 of the GCC/clock-controller node.
108 For more details on the TSENS properties please refer
109 Documentation/devicetree/bindings/thermal/qcom-tsens.txt
115 Names for each nvmem-cells specified.
118 - const: calib_backup
120 'thermal-sensor-cells':
125 Protected clock specifier list as per common clock binding
132 - '#power-domain-cells'
138 const: qcom,gcc-apq8064
144 - '#thermal-sensor-cells'
162 # Example for GCC for MSM8960:
164 clock-controller@900000 {
165 compatible = "qcom,gcc-msm8960";
166 reg = <0x900000 0x4000>;
169 #power-domain-cells = <1>;
173 # Example of GCC with TSENS properties:
175 clock-controller@900000 {
176 compatible = "qcom,gcc-apq8064";
177 reg = <0x00900000 0x4000>;
178 nvmem-cells = <&tsens_calib>, <&tsens_backup>;
179 nvmem-cell-names = "calib", "calib_backup";
182 #power-domain-cells = <1>;
183 #thermal-sensor-cells = <1>;
186 # Example of GCC with protected-clocks properties:
188 clock-controller@100000 {
189 compatible = "qcom,gcc-sdm845";
190 reg = <0x100000 0x1f0000>;
191 protected-clocks = <187>, <188>, <189>, <190>, <191>;
194 #power-domain-cells = <1>;
197 # Example of GCC with clock node properties for SM8150:
199 clock-controller@100000 {
200 compatible = "qcom,gcc-sm8150";
201 reg = <0x00100000 0x1f0000>;
202 clocks = <&rpmhcc 0>, <&rpmhcc 1>, <&sleep_clk>;
203 clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
206 #power-domain-cells = <1>;
209 # Example of GCC with clock nodes properties for SC7180:
211 clock-controller@100000 {
212 compatible = "qcom,gcc-sc7180";
213 reg = <0x100000 0x1f0000>;
214 clocks = <&rpmhcc 0>, <&rpmhcc 1>, <0>;
215 clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
218 #power-domain-cells = <1>;
221 # Example of MSM8998 GCC:
223 #include <dt-bindings/clock/qcom,rpmcc.h>
224 clock-controller@100000 {
225 compatible = "qcom,gcc-msm8998";
228 #power-domain-cells = <1>;
229 reg = <0x00100000 0xb0000>;
230 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,