xref: /freebsd/sys/contrib/device-tree/Bindings/cache/qcom,llcc.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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
24fac71e4eSEmmanuel Vadot      - qcom,sc7180-llcc
25fac71e4eSEmmanuel Vadot      - qcom,sc7280-llcc
26fac71e4eSEmmanuel Vadot      - qcom,sc8180x-llcc
27fac71e4eSEmmanuel Vadot      - qcom,sc8280xp-llcc
28fac71e4eSEmmanuel Vadot      - qcom,sdm845-llcc
29fac71e4eSEmmanuel Vadot      - qcom,sm6350-llcc
30fac71e4eSEmmanuel Vadot      - qcom,sm7150-llcc
31fac71e4eSEmmanuel Vadot      - qcom,sm8150-llcc
32fac71e4eSEmmanuel Vadot      - qcom,sm8250-llcc
33fac71e4eSEmmanuel Vadot      - qcom,sm8350-llcc
34fac71e4eSEmmanuel Vadot      - qcom,sm8450-llcc
35fac71e4eSEmmanuel Vadot      - qcom,sm8550-llcc
36*8d13bc63SEmmanuel Vadot      - qcom,sm8650-llcc
37*8d13bc63SEmmanuel Vadot      - qcom,x1e80100-llcc
38fac71e4eSEmmanuel Vadot
39fac71e4eSEmmanuel Vadot  reg:
40fac71e4eSEmmanuel Vadot    minItems: 2
41fac71e4eSEmmanuel Vadot    maxItems: 9
42fac71e4eSEmmanuel Vadot
43fac71e4eSEmmanuel Vadot  reg-names:
44fac71e4eSEmmanuel Vadot    minItems: 2
45fac71e4eSEmmanuel Vadot    maxItems: 9
46fac71e4eSEmmanuel Vadot
47fac71e4eSEmmanuel Vadot  interrupts:
48fac71e4eSEmmanuel Vadot    maxItems: 1
49fac71e4eSEmmanuel Vadot
5084943d6fSEmmanuel Vadot  nvmem-cells:
5184943d6fSEmmanuel Vadot    items:
5284943d6fSEmmanuel Vadot      - description: Reference to an nvmem node for multi channel DDR
5384943d6fSEmmanuel Vadot
5484943d6fSEmmanuel Vadot  nvmem-cell-names:
5584943d6fSEmmanuel Vadot    items:
5684943d6fSEmmanuel Vadot      - const: multi-chan-ddr
5784943d6fSEmmanuel Vadot
58fac71e4eSEmmanuel Vadotrequired:
59fac71e4eSEmmanuel Vadot  - compatible
60fac71e4eSEmmanuel Vadot  - reg
61fac71e4eSEmmanuel Vadot  - reg-names
62fac71e4eSEmmanuel Vadot
63fac71e4eSEmmanuel VadotallOf:
64fac71e4eSEmmanuel Vadot  - if:
65fac71e4eSEmmanuel Vadot      properties:
66fac71e4eSEmmanuel Vadot        compatible:
67fac71e4eSEmmanuel Vadot          contains:
68fac71e4eSEmmanuel Vadot            enum:
69*8d13bc63SEmmanuel Vadot              - qcom,qdu1000-llcc
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:
88fac71e4eSEmmanuel Vadot              - qcom,sc7280-llcc
89fac71e4eSEmmanuel Vadot    then:
90fac71e4eSEmmanuel Vadot      properties:
91fac71e4eSEmmanuel Vadot        reg:
92fac71e4eSEmmanuel Vadot          items:
93fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
94fac71e4eSEmmanuel Vadot            - description: LLCC1 base register region
95fac71e4eSEmmanuel Vadot            - description: LLCC broadcast base register region
96fac71e4eSEmmanuel Vadot        reg-names:
97fac71e4eSEmmanuel Vadot          items:
98fac71e4eSEmmanuel Vadot            - const: llcc0_base
99fac71e4eSEmmanuel Vadot            - const: llcc1_base
100fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
101fac71e4eSEmmanuel Vadot
102fac71e4eSEmmanuel Vadot  - if:
103fac71e4eSEmmanuel Vadot      properties:
104fac71e4eSEmmanuel Vadot        compatible:
105fac71e4eSEmmanuel Vadot          contains:
106fac71e4eSEmmanuel Vadot            enum:
107fac71e4eSEmmanuel Vadot              - qcom,sc8180x-llcc
108fac71e4eSEmmanuel Vadot              - qcom,sc8280xp-llcc
109*8d13bc63SEmmanuel Vadot              - qcom,x1e80100-llcc
110fac71e4eSEmmanuel Vadot    then:
111fac71e4eSEmmanuel Vadot      properties:
112fac71e4eSEmmanuel Vadot        reg:
113fac71e4eSEmmanuel Vadot          items:
114fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
115fac71e4eSEmmanuel Vadot            - description: LLCC1 base register region
116fac71e4eSEmmanuel Vadot            - description: LLCC2 base register region
117fac71e4eSEmmanuel Vadot            - description: LLCC3 base register region
118fac71e4eSEmmanuel Vadot            - description: LLCC4 base register region
119fac71e4eSEmmanuel Vadot            - description: LLCC5 base register region
120fac71e4eSEmmanuel Vadot            - description: LLCC6 base register region
121fac71e4eSEmmanuel Vadot            - description: LLCC7 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: llcc2_base
128fac71e4eSEmmanuel Vadot            - const: llcc3_base
129fac71e4eSEmmanuel Vadot            - const: llcc4_base
130fac71e4eSEmmanuel Vadot            - const: llcc5_base
131fac71e4eSEmmanuel Vadot            - const: llcc6_base
132fac71e4eSEmmanuel Vadot            - const: llcc7_base
133fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
134fac71e4eSEmmanuel Vadot
135fac71e4eSEmmanuel Vadot  - if:
136fac71e4eSEmmanuel Vadot      properties:
137fac71e4eSEmmanuel Vadot        compatible:
138fac71e4eSEmmanuel Vadot          contains:
139fac71e4eSEmmanuel Vadot            enum:
140fac71e4eSEmmanuel Vadot              - qcom,sdm845-llcc
141fac71e4eSEmmanuel Vadot              - qcom,sm8150-llcc
142fac71e4eSEmmanuel Vadot              - qcom,sm8250-llcc
143fac71e4eSEmmanuel Vadot              - qcom,sm8350-llcc
144fac71e4eSEmmanuel Vadot              - qcom,sm8450-llcc
145fac71e4eSEmmanuel Vadot              - qcom,sm8550-llcc
146fac71e4eSEmmanuel Vadot    then:
147fac71e4eSEmmanuel Vadot      properties:
148fac71e4eSEmmanuel Vadot        reg:
149fac71e4eSEmmanuel Vadot          items:
150fac71e4eSEmmanuel Vadot            - description: LLCC0 base register region
151fac71e4eSEmmanuel Vadot            - description: LLCC1 base register region
152fac71e4eSEmmanuel Vadot            - description: LLCC2 base register region
153fac71e4eSEmmanuel Vadot            - description: LLCC3 base register region
154fac71e4eSEmmanuel Vadot            - description: LLCC broadcast base register region
155fac71e4eSEmmanuel Vadot        reg-names:
156fac71e4eSEmmanuel Vadot          items:
157fac71e4eSEmmanuel Vadot            - const: llcc0_base
158fac71e4eSEmmanuel Vadot            - const: llcc1_base
159fac71e4eSEmmanuel Vadot            - const: llcc2_base
160fac71e4eSEmmanuel Vadot            - const: llcc3_base
161fac71e4eSEmmanuel Vadot            - const: llcc_broadcast_base
162fac71e4eSEmmanuel Vadot
163fac71e4eSEmmanuel VadotadditionalProperties: false
164fac71e4eSEmmanuel Vadot
165fac71e4eSEmmanuel Vadotexamples:
166fac71e4eSEmmanuel Vadot  - |
167fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
168fac71e4eSEmmanuel Vadot
169fac71e4eSEmmanuel Vadot    soc {
170fac71e4eSEmmanuel Vadot        #address-cells = <2>;
171fac71e4eSEmmanuel Vadot        #size-cells = <2>;
172fac71e4eSEmmanuel Vadot
173fac71e4eSEmmanuel Vadot        system-cache-controller@1100000 {
174fac71e4eSEmmanuel Vadot            compatible = "qcom,sdm845-llcc";
175fac71e4eSEmmanuel Vadot            reg = <0 0x01100000 0 0x50000>, <0 0x01180000 0 0x50000>,
176fac71e4eSEmmanuel Vadot                <0 0x01200000 0 0x50000>, <0 0x01280000 0 0x50000>,
177fac71e4eSEmmanuel Vadot                <0 0x01300000 0 0x50000>;
178fac71e4eSEmmanuel Vadot            reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
179fac71e4eSEmmanuel Vadot                "llcc3_base", "llcc_broadcast_base";
180fac71e4eSEmmanuel Vadot            interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
181fac71e4eSEmmanuel Vadot        };
182fac71e4eSEmmanuel Vadot    };
183