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