xref: /freebsd-src/sys/contrib/device-tree/Bindings/cache/qcom,llcc.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/cache/qcom,llcc.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: Last Level Cache Controller
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - Bjorn Andersson <andersson@kernel.org>
11fac71e4eSEmmanuel Vadot
12fac71e4eSEmmanuel Vadotdescription: |
13fac71e4eSEmmanuel Vadot  LLCC (Last Level Cache Controller) provides last level of cache memory in SoC,
14fac71e4eSEmmanuel Vadot  that can be shared by multiple clients. Clients here are different cores in the
15fac71e4eSEmmanuel Vadot  SoC, the idea is to minimize the local caches at the clients and migrate to
16fac71e4eSEmmanuel Vadot  common pool of memory. Cache memory is divided into partitions called slices
17fac71e4eSEmmanuel Vadot  which are assigned to clients. Clients can query the slice details, activate
18fac71e4eSEmmanuel Vadot  and deactivate them.
19fac71e4eSEmmanuel Vadot
20fac71e4eSEmmanuel Vadotproperties:
21fac71e4eSEmmanuel Vadot  compatible:
22fac71e4eSEmmanuel Vadot    enum:
2384943d6fSEmmanuel Vadot      - qcom,qdu1000-llcc
24*0e8011faSEmmanuel Vadot      - qcom,sa8775p-llcc
25fac71e4eSEmmanuel Vadot      - qcom,sc7180-llcc
26fac71e4eSEmmanuel Vadot      - qcom,sc7280-llcc
27fac71e4eSEmmanuel Vadot      - qcom,sc8180x-llcc
28fac71e4eSEmmanuel Vadot      - qcom,sc8280xp-llcc
29fac71e4eSEmmanuel Vadot      - qcom,sdm845-llcc
30fac71e4eSEmmanuel Vadot      - qcom,sm6350-llcc
31fac71e4eSEmmanuel Vadot      - qcom,sm7150-llcc
32fac71e4eSEmmanuel Vadot      - qcom,sm8150-llcc
33fac71e4eSEmmanuel Vadot      - qcom,sm8250-llcc
34fac71e4eSEmmanuel Vadot      - qcom,sm8350-llcc
35fac71e4eSEmmanuel Vadot      - qcom,sm8450-llcc
36fac71e4eSEmmanuel Vadot      - qcom,sm8550-llcc
378d13bc63SEmmanuel Vadot      - qcom,sm8650-llcc
388d13bc63SEmmanuel Vadot      - qcom,x1e80100-llcc
39fac71e4eSEmmanuel Vadot
40fac71e4eSEmmanuel Vadot  reg:
41fac71e4eSEmmanuel Vadot    minItems: 2
42fac71e4eSEmmanuel Vadot    maxItems: 9
43fac71e4eSEmmanuel Vadot
44fac71e4eSEmmanuel Vadot  reg-names:
45fac71e4eSEmmanuel Vadot    minItems: 2
46fac71e4eSEmmanuel Vadot    maxItems: 9
47fac71e4eSEmmanuel Vadot
48fac71e4eSEmmanuel Vadot  interrupts:
49fac71e4eSEmmanuel Vadot    maxItems: 1
50fac71e4eSEmmanuel Vadot
5184943d6fSEmmanuel Vadot  nvmem-cells:
5284943d6fSEmmanuel Vadot    items:
5384943d6fSEmmanuel Vadot      - description: Reference to an nvmem node for multi channel DDR
5484943d6fSEmmanuel Vadot
5584943d6fSEmmanuel Vadot  nvmem-cell-names:
5684943d6fSEmmanuel Vadot    items:
5784943d6fSEmmanuel Vadot      - const: multi-chan-ddr
5884943d6fSEmmanuel Vadot
59fac71e4eSEmmanuel Vadotrequired:
60fac71e4eSEmmanuel Vadot  - compatible
61fac71e4eSEmmanuel Vadot  - reg
62fac71e4eSEmmanuel Vadot  - reg-names
63fac71e4eSEmmanuel Vadot
64fac71e4eSEmmanuel VadotallOf:
65fac71e4eSEmmanuel Vadot  - if:
66fac71e4eSEmmanuel Vadot      properties:
67fac71e4eSEmmanuel Vadot        compatible:
68fac71e4eSEmmanuel Vadot          contains:
69fac71e4eSEmmanuel Vadot            enum:
70fac71e4eSEmmanuel Vadot              - qcom,sc7180-llcc
71fac71e4eSEmmanuel Vadot              - qcom,sm6350-llcc
72fac71e4eSEmmanuel Vadot    then:
73fac71e4eSEmmanuel Vadot      properties:
74fac71e4eSEmmanuel Vadot        reg:
75fac71e4eSEmmanuel Vadot          items:
76fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
77fac71e4eSEmmanuel Vadot            - description: LLCC broadcast base register region
78fac71e4eSEmmanuel Vadot        reg-names:
79fac71e4eSEmmanuel Vadot          items:
80fac71e4eSEmmanuel Vadot            - const: llcc0_base
81fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
82fac71e4eSEmmanuel Vadot
83fac71e4eSEmmanuel Vadot  - if:
84fac71e4eSEmmanuel Vadot      properties:
85fac71e4eSEmmanuel Vadot        compatible:
86fac71e4eSEmmanuel Vadot          contains:
87fac71e4eSEmmanuel Vadot            enum:
88*0e8011faSEmmanuel Vadot              - qcom,sa8775p-llcc
89*0e8011faSEmmanuel Vadot    then:
90*0e8011faSEmmanuel Vadot      properties:
91*0e8011faSEmmanuel Vadot        reg:
92*0e8011faSEmmanuel Vadot          items:
93*0e8011faSEmmanuel Vadot            - description: LLCC0 base register region
94*0e8011faSEmmanuel Vadot            - description: LLCC1 base register region
95*0e8011faSEmmanuel Vadot            - description: LLCC2 base register region
96*0e8011faSEmmanuel Vadot            - description: LLCC3 base register region
97*0e8011faSEmmanuel Vadot            - description: LLCC4 base register region
98*0e8011faSEmmanuel Vadot            - description: LLCC5 base register region
99*0e8011faSEmmanuel Vadot            - description: LLCC broadcast base register region
100*0e8011faSEmmanuel Vadot        reg-names:
101*0e8011faSEmmanuel Vadot          items:
102*0e8011faSEmmanuel Vadot            - const: llcc0_base
103*0e8011faSEmmanuel Vadot            - const: llcc1_base
104*0e8011faSEmmanuel Vadot            - const: llcc2_base
105*0e8011faSEmmanuel Vadot            - const: llcc3_base
106*0e8011faSEmmanuel Vadot            - const: llcc4_base
107*0e8011faSEmmanuel Vadot            - const: llcc5_base
108*0e8011faSEmmanuel Vadot            - const: llcc_broadcast_base
109*0e8011faSEmmanuel Vadot
110*0e8011faSEmmanuel Vadot  - if:
111*0e8011faSEmmanuel Vadot      properties:
112*0e8011faSEmmanuel Vadot        compatible:
113*0e8011faSEmmanuel Vadot          contains:
114*0e8011faSEmmanuel Vadot            enum:
115fac71e4eSEmmanuel Vadot              - qcom,sc7280-llcc
116fac71e4eSEmmanuel Vadot    then:
117fac71e4eSEmmanuel Vadot      properties:
118fac71e4eSEmmanuel Vadot        reg:
119fac71e4eSEmmanuel Vadot          items:
120fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
121fac71e4eSEmmanuel Vadot            - description: LLCC1 base register region
122fac71e4eSEmmanuel Vadot            - description: LLCC broadcast base register region
123fac71e4eSEmmanuel Vadot        reg-names:
124fac71e4eSEmmanuel Vadot          items:
125fac71e4eSEmmanuel Vadot            - const: llcc0_base
126fac71e4eSEmmanuel Vadot            - const: llcc1_base
127fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
128fac71e4eSEmmanuel Vadot
129fac71e4eSEmmanuel Vadot  - if:
130fac71e4eSEmmanuel Vadot      properties:
131fac71e4eSEmmanuel Vadot        compatible:
132fac71e4eSEmmanuel Vadot          contains:
133fac71e4eSEmmanuel Vadot            enum:
1347d0873ebSEmmanuel Vadot              - qcom,qdu1000-llcc
135fac71e4eSEmmanuel Vadot              - qcom,sc8180x-llcc
136fac71e4eSEmmanuel Vadot              - qcom,sc8280xp-llcc
1378d13bc63SEmmanuel Vadot              - qcom,x1e80100-llcc
138fac71e4eSEmmanuel Vadot    then:
139fac71e4eSEmmanuel Vadot      properties:
140fac71e4eSEmmanuel Vadot        reg:
141fac71e4eSEmmanuel Vadot          items:
142fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
143fac71e4eSEmmanuel Vadot            - description: LLCC1 base register region
144fac71e4eSEmmanuel Vadot            - description: LLCC2 base register region
145fac71e4eSEmmanuel Vadot            - description: LLCC3 base register region
146fac71e4eSEmmanuel Vadot            - description: LLCC4 base register region
147fac71e4eSEmmanuel Vadot            - description: LLCC5 base register region
148fac71e4eSEmmanuel Vadot            - description: LLCC6 base register region
149fac71e4eSEmmanuel Vadot            - description: LLCC7 base register region
150fac71e4eSEmmanuel Vadot            - description: LLCC broadcast base register region
151fac71e4eSEmmanuel Vadot        reg-names:
152fac71e4eSEmmanuel Vadot          items:
153fac71e4eSEmmanuel Vadot            - const: llcc0_base
154fac71e4eSEmmanuel Vadot            - const: llcc1_base
155fac71e4eSEmmanuel Vadot            - const: llcc2_base
156fac71e4eSEmmanuel Vadot            - const: llcc3_base
157fac71e4eSEmmanuel Vadot            - const: llcc4_base
158fac71e4eSEmmanuel Vadot            - const: llcc5_base
159fac71e4eSEmmanuel Vadot            - const: llcc6_base
160fac71e4eSEmmanuel Vadot            - const: llcc7_base
161fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
162fac71e4eSEmmanuel Vadot
163fac71e4eSEmmanuel Vadot  - if:
164fac71e4eSEmmanuel Vadot      properties:
165fac71e4eSEmmanuel Vadot        compatible:
166fac71e4eSEmmanuel Vadot          contains:
167fac71e4eSEmmanuel Vadot            enum:
168fac71e4eSEmmanuel Vadot              - qcom,sdm845-llcc
169fac71e4eSEmmanuel Vadot              - qcom,sm8150-llcc
170fac71e4eSEmmanuel Vadot              - qcom,sm8250-llcc
171fac71e4eSEmmanuel Vadot              - qcom,sm8350-llcc
172fac71e4eSEmmanuel Vadot    then:
173fac71e4eSEmmanuel Vadot      properties:
174fac71e4eSEmmanuel Vadot        reg:
175fac71e4eSEmmanuel Vadot          items:
176fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
177fac71e4eSEmmanuel Vadot            - description: LLCC1 base register region
178fac71e4eSEmmanuel Vadot            - description: LLCC2 base register region
179fac71e4eSEmmanuel Vadot            - description: LLCC3 base register region
180fac71e4eSEmmanuel Vadot            - description: LLCC broadcast base register region
181fac71e4eSEmmanuel Vadot        reg-names:
182fac71e4eSEmmanuel Vadot          items:
183fac71e4eSEmmanuel Vadot            - const: llcc0_base
184fac71e4eSEmmanuel Vadot            - const: llcc1_base
185fac71e4eSEmmanuel Vadot            - const: llcc2_base
186fac71e4eSEmmanuel Vadot            - const: llcc3_base
187fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
188fac71e4eSEmmanuel Vadot
189*0e8011faSEmmanuel Vadot  - if:
190*0e8011faSEmmanuel Vadot      properties:
191*0e8011faSEmmanuel Vadot        compatible:
192*0e8011faSEmmanuel Vadot          contains:
193*0e8011faSEmmanuel Vadot            enum:
194*0e8011faSEmmanuel Vadot              - qcom,sm8450-llcc
195*0e8011faSEmmanuel Vadot              - qcom,sm8550-llcc
196*0e8011faSEmmanuel Vadot              - qcom,sm8650-llcc
197*0e8011faSEmmanuel Vadot    then:
198*0e8011faSEmmanuel Vadot      properties:
199*0e8011faSEmmanuel Vadot        reg:
200*0e8011faSEmmanuel Vadot          items:
201*0e8011faSEmmanuel Vadot            - description: LLCC0 base register region
202*0e8011faSEmmanuel Vadot            - description: LLCC1 base register region
203*0e8011faSEmmanuel Vadot            - description: LLCC2 base register region
204*0e8011faSEmmanuel Vadot            - description: LLCC3 base register region
205*0e8011faSEmmanuel Vadot            - description: LLCC broadcast OR register region
206*0e8011faSEmmanuel Vadot            - description: LLCC broadcast AND register region
207*0e8011faSEmmanuel Vadot        reg-names:
208*0e8011faSEmmanuel Vadot          items:
209*0e8011faSEmmanuel Vadot            - const: llcc0_base
210*0e8011faSEmmanuel Vadot            - const: llcc1_base
211*0e8011faSEmmanuel Vadot            - const: llcc2_base
212*0e8011faSEmmanuel Vadot            - const: llcc3_base
213*0e8011faSEmmanuel Vadot            - const: llcc_broadcast_base
214*0e8011faSEmmanuel Vadot            - const: llcc_broadcast_and_base
215*0e8011faSEmmanuel Vadot
216fac71e4eSEmmanuel VadotadditionalProperties: false
217fac71e4eSEmmanuel Vadot
218fac71e4eSEmmanuel Vadotexamples:
219fac71e4eSEmmanuel Vadot  - |
220fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
221fac71e4eSEmmanuel Vadot
222fac71e4eSEmmanuel Vadot    soc {
223fac71e4eSEmmanuel Vadot        #address-cells = <2>;
224fac71e4eSEmmanuel Vadot        #size-cells = <2>;
225fac71e4eSEmmanuel Vadot
226fac71e4eSEmmanuel Vadot        system-cache-controller@1100000 {
227fac71e4eSEmmanuel Vadot            compatible = "qcom,sdm845-llcc";
228fac71e4eSEmmanuel Vadot            reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>,
229fac71e4eSEmmanuel Vadot                <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>,
230fac71e4eSEmmanuel Vadot                <0 0x01300000 0 0x50000>;
231fac71e4eSEmmanuel Vadot            reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
232fac71e4eSEmmanuel Vadot                "llcc3_base", "llcc_broadcast_base";
233fac71e4eSEmmanuel Vadot            interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
234fac71e4eSEmmanuel Vadot        };
235fac71e4eSEmmanuel Vadot    };
236