xref: /linux/Documentation/devicetree/bindings/cache/qcom,llcc.yaml (revision ca220141fa8ebae09765a242076b2b77338106b0)
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    enum:
23      - qcom,glymur-llcc
24      - qcom,ipq5424-llcc
25      - qcom,kaanapali-llcc
26      - qcom,qcs615-llcc
27      - qcom,qcs8300-llcc
28      - qcom,qdu1000-llcc
29      - qcom,sa8775p-llcc
30      - qcom,sar1130p-llcc
31      - qcom,sar2130p-llcc
32      - qcom,sc7180-llcc
33      - qcom,sc7280-llcc
34      - qcom,sc8180x-llcc
35      - qcom,sc8280xp-llcc
36      - qcom,sdm845-llcc
37      - qcom,sm6350-llcc
38      - qcom,sm7150-llcc
39      - qcom,sm8150-llcc
40      - qcom,sm8250-llcc
41      - qcom,sm8350-llcc
42      - qcom,sm8450-llcc
43      - qcom,sm8550-llcc
44      - qcom,sm8650-llcc
45      - qcom,sm8750-llcc
46      - qcom,x1e80100-llcc
47
48  reg:
49    minItems: 1
50    maxItems: 14
51
52  reg-names:
53    minItems: 1
54    maxItems: 14
55
56  interrupts:
57    maxItems: 1
58
59  nvmem-cells:
60    items:
61      - description: Reference to an nvmem node for multi channel DDR
62
63  nvmem-cell-names:
64    items:
65      - const: multi-chan-ddr
66
67required:
68  - compatible
69  - reg
70  - reg-names
71
72allOf:
73  - if:
74      properties:
75        compatible:
76          contains:
77            enum:
78              - qcom,ipq5424-llcc
79    then:
80      properties:
81        reg:
82          items:
83            - description: LLCC0 base register region
84        reg-names:
85          items:
86            - const: llcc0_base
87
88  - if:
89      properties:
90        compatible:
91          contains:
92            enum:
93              - qcom,glymur-llcc
94    then:
95      properties:
96        reg:
97          items:
98            - description: LLCC0 base register region
99            - description: LLCC1 base register region
100            - description: LLCC2 base register region
101            - description: LLCC3 base register region
102            - description: LLCC4 base register region
103            - description: LLCC5 base register region
104            - description: LLCC6 base register region
105            - description: LLCC7 base register region
106            - description: LLCC8 base register region
107            - description: LLCC9 base register region
108            - description: LLCC10 base register region
109            - description: LLCC11 base register region
110            - description: LLCC broadcast base register region
111            - description: LLCC broadcast AND register region
112        reg-names:
113          items:
114            - const: llcc0_base
115            - const: llcc1_base
116            - const: llcc2_base
117            - const: llcc3_base
118            - const: llcc4_base
119            - const: llcc5_base
120            - const: llcc6_base
121            - const: llcc7_base
122            - const: llcc8_base
123            - const: llcc9_base
124            - const: llcc10_base
125            - const: llcc11_base
126            - const: llcc_broadcast_base
127            - const: llcc_broadcast_and_base
128
129  - if:
130      properties:
131        compatible:
132          contains:
133            enum:
134              - qcom,sar1130p-llcc
135              - qcom,sar2130p-llcc
136    then:
137      properties:
138        reg:
139          items:
140            - description: LLCC0 base register region
141            - description: LLCC1 base register region
142            - description: LLCC broadcast OR register region
143            - description: LLCC broadcast AND register region
144            - description: LLCC scratchpad broadcast OR register region
145            - description: LLCC scratchpad broadcast AND register region
146        reg-names:
147          items:
148            - const: llcc0_base
149            - const: llcc1_base
150            - const: llcc_broadcast_base
151            - const: llcc_broadcast_and_base
152            - const: llcc_scratchpad_broadcast_base
153            - const: llcc_scratchpad_broadcast_and_base
154
155  - if:
156      properties:
157        compatible:
158          contains:
159            enum:
160              - qcom,qcs615-llcc
161              - qcom,sc7180-llcc
162              - qcom,sm6350-llcc
163    then:
164      properties:
165        reg:
166          items:
167            - description: LLCC0 base register region
168            - description: LLCC broadcast base register region
169        reg-names:
170          items:
171            - const: llcc0_base
172            - const: llcc_broadcast_base
173
174  - if:
175      properties:
176        compatible:
177          contains:
178            enum:
179              - qcom,sa8775p-llcc
180    then:
181      properties:
182        reg:
183          items:
184            - description: LLCC0 base register region
185            - description: LLCC1 base register region
186            - description: LLCC2 base register region
187            - description: LLCC3 base register region
188            - description: LLCC4 base register region
189            - description: LLCC5 base register region
190            - description: LLCC broadcast base register region
191        reg-names:
192          items:
193            - const: llcc0_base
194            - const: llcc1_base
195            - const: llcc2_base
196            - const: llcc3_base
197            - const: llcc4_base
198            - const: llcc5_base
199            - const: llcc_broadcast_base
200
201  - if:
202      properties:
203        compatible:
204          contains:
205            enum:
206              - qcom,sc7280-llcc
207    then:
208      properties:
209        reg:
210          items:
211            - description: LLCC0 base register region
212            - description: LLCC1 base register region
213            - description: LLCC broadcast base register region
214        reg-names:
215          items:
216            - const: llcc0_base
217            - const: llcc1_base
218            - const: llcc_broadcast_base
219
220  - if:
221      properties:
222        compatible:
223          contains:
224            enum:
225              - qcom,qdu1000-llcc
226              - qcom,sc8180x-llcc
227              - qcom,sc8280xp-llcc
228    then:
229      properties:
230        reg:
231          items:
232            - description: LLCC0 base register region
233            - description: LLCC1 base register region
234            - description: LLCC2 base register region
235            - description: LLCC3 base register region
236            - description: LLCC4 base register region
237            - description: LLCC5 base register region
238            - description: LLCC6 base register region
239            - description: LLCC7 base register region
240            - description: LLCC broadcast base register region
241        reg-names:
242          items:
243            - const: llcc0_base
244            - const: llcc1_base
245            - const: llcc2_base
246            - const: llcc3_base
247            - const: llcc4_base
248            - const: llcc5_base
249            - const: llcc6_base
250            - const: llcc7_base
251            - const: llcc_broadcast_base
252
253  - if:
254      properties:
255        compatible:
256          contains:
257            enum:
258              - qcom,x1e80100-llcc
259    then:
260      properties:
261        reg:
262          items:
263            - description: LLCC0 base register region
264            - description: LLCC1 base register region
265            - description: LLCC2 base register region
266            - description: LLCC3 base register region
267            - description: LLCC4 base register region
268            - description: LLCC5 base register region
269            - description: LLCC6 base register region
270            - description: LLCC7 base register region
271            - description: LLCC broadcast base register region
272            - description: LLCC broadcast AND register region
273        reg-names:
274          items:
275            - const: llcc0_base
276            - const: llcc1_base
277            - const: llcc2_base
278            - const: llcc3_base
279            - const: llcc4_base
280            - const: llcc5_base
281            - const: llcc6_base
282            - const: llcc7_base
283            - const: llcc_broadcast_base
284            - const: llcc_broadcast_and_base
285
286  - if:
287      properties:
288        compatible:
289          contains:
290            enum:
291              - qcom,qcs8300-llcc
292              - qcom,sdm845-llcc
293              - qcom,sm8150-llcc
294              - qcom,sm8250-llcc
295              - qcom,sm8350-llcc
296    then:
297      properties:
298        reg:
299          items:
300            - description: LLCC0 base register region
301            - description: LLCC1 base register region
302            - description: LLCC2 base register region
303            - description: LLCC3 base register region
304            - description: LLCC broadcast base register region
305        reg-names:
306          items:
307            - const: llcc0_base
308            - const: llcc1_base
309            - const: llcc2_base
310            - const: llcc3_base
311            - const: llcc_broadcast_base
312
313  - if:
314      properties:
315        compatible:
316          contains:
317            enum:
318              - qcom,kaanapali-llcc
319              - qcom,sm8450-llcc
320              - qcom,sm8550-llcc
321              - qcom,sm8650-llcc
322              - qcom,sm8750-llcc
323    then:
324      properties:
325        reg:
326          items:
327            - description: LLCC0 base register region
328            - description: LLCC1 base register region
329            - description: LLCC2 base register region
330            - description: LLCC3 base register region
331            - description: LLCC broadcast OR register region
332            - description: LLCC broadcast AND register region
333        reg-names:
334          items:
335            - const: llcc0_base
336            - const: llcc1_base
337            - const: llcc2_base
338            - const: llcc3_base
339            - const: llcc_broadcast_base
340            - const: llcc_broadcast_and_base
341
342additionalProperties: false
343
344examples:
345  - |
346    #include <dt-bindings/interrupt-controller/arm-gic.h>
347
348    soc {
349        #address-cells = <2>;
350        #size-cells = <2>;
351
352        system-cache-controller@1100000 {
353            compatible = "qcom,sdm845-llcc";
354            reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>,
355                <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>,
356                <0 0x01300000 0 0x50000>;
357            reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
358                "llcc3_base", "llcc_broadcast_base";
359            interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
360        };
361    };
362