xref: /linux/Documentation/devicetree/bindings/cache/qcom,llcc.yaml (revision 5b193d6a8973655f19de87a7873ce31dee2d5fe6)
1# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/cache/qcom,llcc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Last Level Cache Controller
8
9maintainers:
10  - Bjorn Andersson <andersson@kernel.org>
11
12description: |
13  LLCC (Last Level Cache Controller) provides last level of cache memory in SoC,
14  that can be shared by multiple clients. Clients here are different cores in the
15  SoC, the idea is to minimize the local caches at the clients and migrate to
16  common pool of memory. Cache memory is divided into partitions called slices
17  which are assigned to clients. Clients can query the slice details, activate
18  and deactivate them.
19
20properties:
21  compatible:
22    oneOf:
23      - enum:
24          - qcom,eliza-llcc
25          - qcom,glymur-llcc
26          - qcom,hawi-llcc
27          - qcom,ipq5424-llcc
28          - qcom,kaanapali-llcc
29          - qcom,nord-llcc
30          - qcom,qcs615-llcc
31          - qcom,qcs8300-llcc
32          - qcom,qdu1000-llcc
33          - qcom,sa8775p-llcc
34          - qcom,sar1130p-llcc
35          - qcom,sar2130p-llcc
36          - qcom,sc7180-llcc
37          - qcom,sc7280-llcc
38          - qcom,sc8180x-llcc
39          - qcom,sc8280xp-llcc
40          - qcom,sdm670-llcc
41          - qcom,sdm845-llcc
42          - qcom,shikra-llcc
43          - qcom,sm6350-llcc
44          - qcom,sm7150-llcc
45          - qcom,sm8150-llcc
46          - qcom,sm8250-llcc
47          - qcom,sm8350-llcc
48          - qcom,sm8450-llcc
49          - qcom,sm8550-llcc
50          - qcom,sm8650-llcc
51          - qcom,sm8750-llcc
52          - qcom,x1e80100-llcc
53      - items:
54          - enum:
55              - qcom,maili-llcc
56          - const: qcom,hawi-llcc
57
58  reg:
59    minItems: 1
60    maxItems: 18
61
62  reg-names:
63    minItems: 1
64    maxItems: 18
65
66  interrupts:
67    maxItems: 1
68
69  memory-region:
70    maxItems: 1
71    description: handle to a reserved-memory node used for firmware-populated
72      SLC/SCT shared memory.
73
74  nvmem-cells:
75    items:
76      - description: Reference to an nvmem node for multi channel DDR
77
78  nvmem-cell-names:
79    items:
80      - const: multi-chan-ddr
81
82required:
83  - compatible
84  - reg
85  - reg-names
86
87allOf:
88  - if:
89      properties:
90        compatible:
91          contains:
92            enum:
93              - qcom,ipq5424-llcc
94    then:
95      properties:
96        reg:
97          items:
98            - description: LLCC0 base register region
99        reg-names:
100          items:
101            - const: llcc0_base
102
103  - if:
104      properties:
105        compatible:
106          contains:
107            enum:
108              - qcom,glymur-llcc
109    then:
110      properties:
111        reg:
112          items:
113            - description: LLCC0 base register region
114            - description: LLCC1 base register region
115            - description: LLCC2 base register region
116            - description: LLCC3 base register region
117            - description: LLCC4 base register region
118            - description: LLCC5 base register region
119            - description: LLCC6 base register region
120            - description: LLCC7 base register region
121            - description: LLCC8 base register region
122            - description: LLCC9 base register region
123            - description: LLCC10 base register region
124            - description: LLCC11 base register region
125            - description: LLCC broadcast base register region
126            - description: LLCC broadcast AND register region
127        reg-names:
128          items:
129            - const: llcc0_base
130            - const: llcc1_base
131            - const: llcc2_base
132            - const: llcc3_base
133            - const: llcc4_base
134            - const: llcc5_base
135            - const: llcc6_base
136            - const: llcc7_base
137            - const: llcc8_base
138            - const: llcc9_base
139            - const: llcc10_base
140            - const: llcc11_base
141            - const: llcc_broadcast_base
142            - const: llcc_broadcast_and_base
143
144  - if:
145      properties:
146        compatible:
147          contains:
148            enum:
149              - qcom,sar1130p-llcc
150              - qcom,sar2130p-llcc
151    then:
152      properties:
153        reg:
154          items:
155            - description: LLCC0 base register region
156            - description: LLCC1 base register region
157            - description: LLCC broadcast OR register region
158            - description: LLCC broadcast AND register region
159            - description: LLCC scratchpad broadcast OR register region
160            - description: LLCC scratchpad broadcast AND register region
161        reg-names:
162          items:
163            - const: llcc0_base
164            - const: llcc1_base
165            - const: llcc_broadcast_base
166            - const: llcc_broadcast_and_base
167            - const: llcc_scratchpad_broadcast_base
168            - const: llcc_scratchpad_broadcast_and_base
169
170  - if:
171      properties:
172        compatible:
173          contains:
174            enum:
175              - qcom,qcs615-llcc
176              - qcom,sc7180-llcc
177              - qcom,sm6350-llcc
178    then:
179      properties:
180        reg:
181          items:
182            - description: LLCC0 base register region
183            - description: LLCC broadcast base register region
184        reg-names:
185          items:
186            - const: llcc0_base
187            - const: llcc_broadcast_base
188
189  - if:
190      properties:
191        compatible:
192          contains:
193            enum:
194              - qcom,sa8775p-llcc
195    then:
196      properties:
197        reg:
198          items:
199            - description: LLCC0 base register region
200            - description: LLCC1 base register region
201            - description: LLCC2 base register region
202            - description: LLCC3 base register region
203            - description: LLCC4 base register region
204            - description: LLCC5 base register region
205            - description: LLCC broadcast base register region
206        reg-names:
207          items:
208            - const: llcc0_base
209            - const: llcc1_base
210            - const: llcc2_base
211            - const: llcc3_base
212            - const: llcc4_base
213            - const: llcc5_base
214            - const: llcc_broadcast_base
215
216  - if:
217      properties:
218        compatible:
219          contains:
220            enum:
221              - qcom,sc7280-llcc
222              - qcom,sdm670-llcc
223              - qcom,shikra-llcc
224    then:
225      properties:
226        reg:
227          items:
228            - description: LLCC0 base register region
229            - description: LLCC1 base register region
230            - description: LLCC broadcast base register region
231        reg-names:
232          items:
233            - const: llcc0_base
234            - const: llcc1_base
235            - const: llcc_broadcast_base
236
237  - if:
238      properties:
239        compatible:
240          contains:
241            enum:
242              - qcom,qdu1000-llcc
243              - qcom,sc8180x-llcc
244              - qcom,sc8280xp-llcc
245    then:
246      properties:
247        reg:
248          items:
249            - description: LLCC0 base register region
250            - description: LLCC1 base register region
251            - description: LLCC2 base register region
252            - description: LLCC3 base register region
253            - description: LLCC4 base register region
254            - description: LLCC5 base register region
255            - description: LLCC6 base register region
256            - description: LLCC7 base register region
257            - description: LLCC broadcast base register region
258        reg-names:
259          items:
260            - const: llcc0_base
261            - const: llcc1_base
262            - const: llcc2_base
263            - const: llcc3_base
264            - const: llcc4_base
265            - const: llcc5_base
266            - const: llcc6_base
267            - const: llcc7_base
268            - const: llcc_broadcast_base
269
270  - if:
271      properties:
272        compatible:
273          contains:
274            enum:
275              - qcom,x1e80100-llcc
276    then:
277      properties:
278        reg:
279          items:
280            - description: LLCC0 base register region
281            - description: LLCC1 base register region
282            - description: LLCC2 base register region
283            - description: LLCC3 base register region
284            - description: LLCC4 base register region
285            - description: LLCC5 base register region
286            - description: LLCC6 base register region
287            - description: LLCC7 base register region
288            - description: LLCC broadcast base register region
289            - description: LLCC broadcast AND register region
290        reg-names:
291          items:
292            - const: llcc0_base
293            - const: llcc1_base
294            - const: llcc2_base
295            - const: llcc3_base
296            - const: llcc4_base
297            - const: llcc5_base
298            - const: llcc6_base
299            - const: llcc7_base
300            - const: llcc_broadcast_base
301            - const: llcc_broadcast_and_base
302
303  - if:
304      properties:
305        compatible:
306          contains:
307            enum:
308              - qcom,qcs8300-llcc
309              - qcom,sdm845-llcc
310              - qcom,sm8150-llcc
311              - qcom,sm8250-llcc
312              - qcom,sm8350-llcc
313    then:
314      properties:
315        reg:
316          items:
317            - description: LLCC0 base register region
318            - description: LLCC1 base register region
319            - description: LLCC2 base register region
320            - description: LLCC3 base register region
321            - description: LLCC broadcast base register region
322        reg-names:
323          items:
324            - const: llcc0_base
325            - const: llcc1_base
326            - const: llcc2_base
327            - const: llcc3_base
328            - const: llcc_broadcast_base
329
330  - if:
331      properties:
332        compatible:
333          contains:
334            enum:
335              - qcom,kaanapali-llcc
336              - qcom,hawi-llcc
337              - qcom,sm8450-llcc
338              - qcom,sm8550-llcc
339              - qcom,sm8650-llcc
340              - qcom,sm8750-llcc
341    then:
342      properties:
343        reg:
344          items:
345            - description: LLCC0 base register region
346            - description: LLCC1 base register region
347            - description: LLCC2 base register region
348            - description: LLCC3 base register region
349            - description: LLCC broadcast OR register region
350            - description: LLCC broadcast AND register region
351        reg-names:
352          items:
353            - const: llcc0_base
354            - const: llcc1_base
355            - const: llcc2_base
356            - const: llcc3_base
357            - const: llcc_broadcast_base
358            - const: llcc_broadcast_and_base
359
360  - if:
361      properties:
362        compatible:
363          contains:
364            enum:
365              - qcom,nord-llcc
366    then:
367      properties:
368        reg:
369          items:
370            - description: LLCC0 base register region
371            - description: LLCC1 base register region
372            - description: LLCC2 base register region
373            - description: LLCC3 base register region
374            - description: LLCC4 base register region
375            - description: LLCC5 base register region
376            - description: LLCC6 base register region
377            - description: LLCC7 base register region
378            - description: LLCC8 base register region
379            - description: LLCC9 base register region
380            - description: LLCC10 base register region
381            - description: LLCC11 base register region
382            - description: LLCC12 base register region
383            - description: LLCC13 base register region
384            - description: LLCC14 base register region
385            - description: LLCC15 base register region
386            - description: LLCC broadcast OR register region
387            - description: LLCC broadcast AND register region
388        reg-names:
389          items:
390            - const: llcc0_base
391            - const: llcc1_base
392            - const: llcc2_base
393            - const: llcc3_base
394            - const: llcc4_base
395            - const: llcc5_base
396            - const: llcc6_base
397            - const: llcc7_base
398            - const: llcc8_base
399            - const: llcc9_base
400            - const: llcc10_base
401            - const: llcc11_base
402            - const: llcc12_base
403            - const: llcc13_base
404            - const: llcc14_base
405            - const: llcc15_base
406            - const: llcc_broadcast_base
407            - const: llcc_broadcast_and_base
408
409  - if:
410      properties:
411        compatible:
412          contains:
413            enum:
414              - qcom,hawi-llcc
415    then:
416      required:
417        - memory-region
418    else:
419      properties:
420        memory-region: false
421
422  - if:
423      properties:
424        compatible:
425          contains:
426            enum:
427              - qcom,eliza-llcc
428    then:
429      properties:
430        reg:
431          items:
432            - description: LLCC0 base register region
433            - description: LLCC2 base register region
434            - description: LLCC broadcast OR register region
435            - description: LLCC broadcast AND register region
436        reg-names:
437          items:
438            - const: llcc0_base
439            - const: llcc2_base
440            - const: llcc_broadcast_base
441            - const: llcc_broadcast_and_base
442
443additionalProperties: false
444
445examples:
446  - |
447    #include <dt-bindings/interrupt-controller/arm-gic.h>
448
449    soc {
450        #address-cells = <2>;
451        #size-cells = <2>;
452
453        system-cache-controller@1100000 {
454            compatible = "qcom,sdm845-llcc";
455            reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>,
456                <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>,
457                <0 0x01300000 0 0x50000>;
458            reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
459                "llcc3_base", "llcc_broadcast_base";
460            interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
461        };
462    };
463