xref: /openbmc/linux/Documentation/devicetree/bindings/clock/qcom,gcc.yaml (revision b0e55fef624e511e060fa05e4ca96cae6d902f04)
1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/bindings/clock/qcom,gcc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Global Clock & Reset Controller Binding
8
9maintainers:
10  - Stephen Boyd <sboyd@kernel.org>
11  - Taniya Das <tdas@codeaurora.org>
12
13description: |
14  Qualcomm global clock control module which supports the clocks, resets and
15  power domains.
16
17properties:
18  compatible :
19    enum:
20       - qcom,gcc-apq8064
21       - qcom,gcc-apq8084
22       - qcom,gcc-ipq8064
23       - qcom,gcc-ipq4019
24       - qcom,gcc-ipq8074
25       - qcom,gcc-msm8660
26       - qcom,gcc-msm8916
27       - qcom,gcc-msm8960
28       - qcom,gcc-msm8974
29       - qcom,gcc-msm8974pro
30       - qcom,gcc-msm8974pro-ac
31       - qcom,gcc-msm8994
32       - qcom,gcc-msm8996
33       - qcom,gcc-msm8998
34       - qcom,gcc-mdm9615
35       - qcom,gcc-qcs404
36       - qcom,gcc-sc7180
37       - qcom,gcc-sdm630
38       - qcom,gcc-sdm660
39       - qcom,gcc-sdm845
40       - qcom,gcc-sm8150
41
42  clocks:
43    minItems: 1
44    maxItems: 3
45    items:
46      - description: Board XO source
47      - description: Board active XO source
48      - description: Sleep clock source
49
50  clock-names:
51    minItems: 1
52    maxItems: 3
53    items:
54      - const: bi_tcxo
55      - const: bi_tcxo_ao
56      - const: sleep_clk
57
58  '#clock-cells':
59    const: 1
60
61  '#reset-cells':
62    const: 1
63
64  '#power-domain-cells':
65    const: 1
66
67  reg:
68    maxItems: 1
69
70  nvmem-cells:
71    minItems: 1
72    maxItems: 2
73    description:
74      Qualcomm TSENS (thermal sensor device) on some devices can
75      be part of GCC and hence the TSENS properties can also be part
76      of the GCC/clock-controller node.
77      For more details on the TSENS properties please refer
78      Documentation/devicetree/bindings/thermal/qcom-tsens.txt
79
80  nvmem-cell-names:
81    minItems: 1
82    maxItems: 2
83    description:
84      Names for each nvmem-cells specified.
85    items:
86      - const: calib
87      - const: calib_backup
88
89  'thermal-sensor-cells':
90    const: 1
91
92  protected-clocks:
93    description:
94       Protected clock specifier list as per common clock binding
95
96required:
97  - compatible
98  - reg
99  - '#clock-cells'
100  - '#reset-cells'
101  - '#power-domain-cells'
102
103if:
104  properties:
105    compatible:
106      contains:
107        const: qcom,gcc-apq8064
108
109then:
110  required:
111    - nvmem-cells
112    - nvmem-cell-names
113    - '#thermal-sensor-cells'
114
115else:
116  if:
117    properties:
118      compatible:
119        contains:
120          enum:
121            - qcom,gcc-sm8150
122            - qcom,gcc-sc7180
123  then:
124    required:
125       - clocks
126       - clock-names
127
128
129examples:
130  # Example for GCC for MSM8960:
131  - |
132    clock-controller@900000 {
133      compatible = "qcom,gcc-msm8960";
134      reg = <0x900000 0x4000>;
135      #clock-cells = <1>;
136      #reset-cells = <1>;
137      #power-domain-cells = <1>;
138    };
139
140
141  # Example of GCC with TSENS properties:
142  - |
143    clock-controller@900000 {
144      compatible = "qcom,gcc-apq8064";
145      reg = <0x00900000 0x4000>;
146      nvmem-cells = <&tsens_calib>, <&tsens_backup>;
147      nvmem-cell-names = "calib", "calib_backup";
148      #clock-cells = <1>;
149      #reset-cells = <1>;
150      #power-domain-cells = <1>;
151      #thermal-sensor-cells = <1>;
152    };
153
154  # Example of GCC with protected-clocks properties:
155  - |
156    clock-controller@100000 {
157      compatible = "qcom,gcc-sdm845";
158      reg = <0x100000 0x1f0000>;
159      protected-clocks = <187>, <188>, <189>, <190>, <191>;
160      #clock-cells = <1>;
161      #reset-cells = <1>;
162      #power-domain-cells = <1>;
163    };
164
165  # Example of GCC with clock node properties for SM8150:
166  - |
167    clock-controller@100000 {
168      compatible = "qcom,gcc-sm8150";
169      reg = <0x00100000 0x1f0000>;
170      clocks = <&rpmhcc 0>, <&rpmhcc 1>, <&sleep_clk>;
171      clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
172      #clock-cells = <1>;
173      #reset-cells = <1>;
174      #power-domain-cells = <1>;
175     };
176
177  # Example of GCC with clock nodes properties for SC7180:
178  - |
179    clock-controller@100000 {
180      compatible = "qcom,gcc-sc7180";
181      reg = <0x100000 0x1f0000>;
182      clocks = <&rpmhcc 0>, <&rpmhcc 1>;
183      clock-names = "bi_tcxo", "bi_tcxo_ao";
184      #clock-cells = <1>;
185      #reset-cells = <1>;
186      #power-domain-cells = <1>;
187    };
188...
189