Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mailbox/qcom,apcs-kpss-global.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm APCS global block
8
9description:
10 This binding describes the APCS "global" block found in various Qualcomm
11 platforms.
12
13maintainers:
14 - Jassi Brar <jassisinghbrar@gmail.com>
15
16properties:
17 compatible:
18 oneOf:
19 - items:
20 - enum:
21 - qcom,ipq5018-apcs-apps-global
22 - qcom,ipq5332-apcs-apps-global
23 - qcom,ipq5424-apcs-apps-global
24 - qcom,ipq8074-apcs-apps-global
25 - qcom,ipq9574-apcs-apps-global
26 - const: qcom,ipq6018-apcs-apps-global
27 - items:
28 - enum:
29 - qcom,msm8226-apcs-kpss-global
30 - qcom,qcs404-apcs-apps-global
31 - const: qcom,msm8916-apcs-kpss-global
32 - const: syscon
33 - items:
34 - enum:
35 - qcom,msm8974-apcs-kpss-global
36 - qcom,msm8976-apcs-kpss-global
37 - const: qcom,msm8994-apcs-kpss-global
38 - const: syscon
39 - items:
40 - enum:
41 - qcom,msm8998-apcs-hmss-global
42 - qcom,sdm660-apcs-hmss-global
43 - qcom,sm4250-apcs-hmss-global
44 - qcom,sm6115-apcs-hmss-global
45 - qcom,sm6125-apcs-hmss-global
46 - const: qcom,msm8994-apcs-kpss-global
47 - items:
48 - enum:
49 - qcom,qcs615-apss-shared
50 - qcom,sc7180-apss-shared
51 - qcom,sc8180x-apss-shared
52 - qcom,sm7150-apss-shared
53 - qcom,sm8150-apss-shared
54 - const: qcom,sdm845-apss-shared
55 - items:
56 - enum:
57 - qcom,msm8916-apcs-kpss-global
58 - qcom,msm8939-apcs-kpss-global
59 - qcom,msm8953-apcs-kpss-global
60 - qcom,msm8994-apcs-kpss-global
61 - qcom,sdx55-apcs-gcc
62 - const: syscon
63 - enum:
64 - qcom,ipq6018-apcs-apps-global
65 - qcom,msm8996-apcs-hmss-global
66 - qcom,qcm2290-apcs-hmss-global
67 - qcom,sdm845-apss-shared
68
69 reg:
70 maxItems: 1
71
72 clocks:
73 description: phandles to the parent clocks of the clock driver
74 minItems: 2
75 maxItems: 3
76 deprecated: true
77
78 '#mbox-cells':
79 const: 1
80
81 '#clock-cells':
82 enum: [0, 1]
83
84 clock-names:
85 minItems: 2
86 maxItems: 3
87 deprecated: true
88
89 clock-controller:
90 type: object
91 additionalProperties: false
92 properties:
93 clocks:
94 description: phandles to the parent clocks of the clock driver
95 minItems: 2
96 maxItems: 3
97
98 '#clock-cells':
99 enum: [0, 1]
100
101 clock-names:
102 minItems: 2
103 maxItems: 3
104
105required:
106 - compatible
107 - reg
108 - '#mbox-cells'
109
110additionalProperties: false
111
112# Clocks should be specified either on the parent node or on the child node
113oneOf:
114 - required:
115 - clock-controller
116 properties:
117 clocks: false
118 clock-names: false
119 '#clock-cells': false
120 - properties:
121 clock-controller: false
122
123$defs:
124 msm8916-apcs-clock-controller:
125 properties:
126 clocks:
127 items:
128 - description: primary pll parent of the clock driver
129 - description: auxiliary parent
130 clock-names:
131 items:
132 - const: pll
133 - const: aux
134 '#clock-cells':
135 const: 0
136
137 msm8939-apcs-clock-controller:
138 properties:
139 clocks:
140 items:
141 - description: primary pll parent of the clock driver
142 - description: auxiliary parent
143 - description: reference clock
144 clock-names:
145 items:
146 - const: pll
147 - const: aux
148 - const: ref
149 '#clock-cells':
150 const: 0
151
152 sdx55-apcs-clock-controller:
153 properties:
154 clocks:
155 items:
156 - description: reference clock
157 - description: primary pll parent of the clock driver
158 - description: auxiliary parent
159 clock-names:
160 items:
161 - const: ref
162 - const: pll
163 - const: aux
164 '#clock-cells':
165 const: 0
166
167 ipq6018-apcs-clock-controller:
168 properties:
169 clocks:
170 items:
171 - description: primary pll parent of the clock driver
172 - description: XO clock
173 - description: GCC GPLL0 clock source
174 clock-names:
175 items:
176 - const: pll
177 - const: xo
178 - const: gpll0
179 '#clock-cells':
180 const: 1
181
182allOf:
183 - if:
184 properties:
185 compatible:
186 contains:
187 enum:
188 - qcom,msm8916-apcs-kpss-global
189 then:
190 $ref: "#/$defs/msm8916-apcs-clock-controller"
191 properties:
192 clock-controller:
193 $ref: "#/$defs/msm8916-apcs-clock-controller"
194
195 - if:
196 properties:
197 compatible:
198 contains:
199 enum:
200 - qcom,msm8939-apcs-kpss-global
201 then:
202 $ref: "#/$defs/msm8939-apcs-clock-controller"
203 properties:
204 clock-controller:
205 $ref: "#/$defs/msm8939-apcs-clock-controller"
206
207 - if:
208 properties:
209 compatible:
210 contains:
211 enum:
212 - qcom,sdx55-apcs-gcc
213 then:
214 $ref: "#/$defs/sdx55-apcs-clock-controller"
215 properties:
216 clock-controller:
217 $ref: "#/$defs/sdx55-apcs-clock-controller"
218
219 - if:
220 properties:
221 compatible:
222 contains:
223 enum:
224 - qcom,ipq6018-apcs-apps-global
225 then:
226 $ref: "#/$defs/ipq6018-apcs-clock-controller"
227 properties:
228 clock-controller:
229 $ref: "#/$defs/ipq6018-apcs-clock-controller"
230
231 - if:
232 properties:
233 compatible:
234 contains:
235 enum:
236 - qcom,msm8953-apcs-kpss-global
237 - qcom,msm8994-apcs-kpss-global
238 - qcom,msm8996-apcs-hmss-global
239 - qcom,qcm2290-apcs-hmss-global
240 - qcom,sdm845-apss-shared
241 then:
242 properties:
243 clocks: false
244 clock-names: false
245 clock-controller: false
246 '#clock-cells':
247 const: 0
248
249examples:
250
251 # Example apcs with msm8996
252 - |
253 #include <dt-bindings/interrupt-controller/arm-gic.h>
254 mailbox@9820000 {
255 compatible = "qcom,msm8996-apcs-hmss-global";
256 reg = <0x9820000 0x1000>;
257
258 #mbox-cells = <1>;
259 #clock-cells = <0>;
260 };
261
262 # Example apcs with qcs404
263 - |
264 #define GCC_APSS_AHB_CLK_SRC 1
265 #define GCC_GPLL0_AO_OUT_MAIN 123
266 mailbox@b011000 {
267 compatible = "qcom,qcs404-apcs-apps-global",
268 "qcom,msm8916-apcs-kpss-global", "syscon";
269 reg = <0x0b011000 0x1000>;
270 #mbox-cells = <1>;
271
272 apcs_clk: clock-controller {
273 clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
274 clock-names = "pll", "aux";
275 #clock-cells = <0>;
276 };
277 };
278
279 # Example apcs with qcs404 (deprecated: use clock-controller subnode)
280 - |
281 #define GCC_APSS_AHB_CLK_SRC 1
282 #define GCC_GPLL0_AO_OUT_MAIN 123
283 apcs: mailbox@b011000 {
284 compatible = "qcom,qcs404-apcs-apps-global",
285 "qcom,msm8916-apcs-kpss-global", "syscon";
286 reg = <0x0b011000 0x1000>;
287 #mbox-cells = <1>;
288 clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
289 clock-names = "pll", "aux";
290 #clock-cells = <0>;
291 };