Merge tag 'fscache-next-20210829' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / riscv / sifive-l2-cache.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 # Copyright (C) 2020 SiFive, Inc.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/riscv/sifive-l2-cache.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: SiFive L2 Cache Controller
9
10 maintainers:
11   - Sagar Kadam <sagar.kadam@sifive.com>
12   - Yash Shah <yash.shah@sifive.com>
13   - Paul Walmsley  <paul.walmsley@sifive.com>
14
15 description:
16   The SiFive Level 2 Cache Controller is used to provide access to fast copies
17   of memory for masters in a Core Complex. The Level 2 Cache Controller also
18   acts as directory-based coherency manager.
19   All the properties in ePAPR/DeviceTree specification applies for this platform.
20
21 allOf:
22   - $ref: /schemas/cache-controller.yaml#
23
24 select:
25   properties:
26     compatible:
27       contains:
28         enum:
29           - sifive,fu540-c000-ccache
30           - sifive,fu740-c000-ccache
31
32   required:
33     - compatible
34
35 properties:
36   compatible:
37     items:
38       - enum:
39           - sifive,fu540-c000-ccache
40           - sifive,fu740-c000-ccache
41       - const: cache
42
43   cache-block-size:
44     const: 64
45
46   cache-level:
47     const: 2
48
49   cache-sets:
50     const: 1024
51
52   cache-size:
53     const: 2097152
54
55   cache-unified: true
56
57   interrupts:
58     minItems: 3
59     items:
60       - description: DirError interrupt
61       - description: DataError interrupt
62       - description: DataFail interrupt
63       - description: DirFail interrupt
64
65   reg:
66     maxItems: 1
67
68   next-level-cache: true
69
70   memory-region:
71     maxItems: 1
72     description: |
73       The reference to the reserved-memory for the L2 Loosely Integrated Memory region.
74       The reserved memory node should be defined as per the bindings in reserved-memory.txt.
75
76 if:
77   properties:
78     compatible:
79       contains:
80         const: sifive,fu540-c000-ccache
81
82 then:
83   properties:
84     interrupts:
85       description: |
86         Must contain entries for DirError, DataError and DataFail signals.
87       maxItems: 3
88
89 else:
90   properties:
91     interrupts:
92       description: |
93         Must contain entries for DirError, DataError, DataFail, DirFail signals.
94       minItems: 4
95
96 additionalProperties: false
97
98 required:
99   - compatible
100   - cache-block-size
101   - cache-level
102   - cache-sets
103   - cache-size
104   - cache-unified
105   - interrupts
106   - reg
107
108 examples:
109   - |
110     cache-controller@2010000 {
111         compatible = "sifive,fu540-c000-ccache", "cache";
112         cache-block-size = <64>;
113         cache-level = <2>;
114         cache-sets = <1024>;
115         cache-size = <2097152>;
116         cache-unified;
117         reg = <0x2010000 0x1000>;
118         interrupt-parent = <&plic0>;
119         interrupts = <1>,
120                      <2>,
121                      <3>;
122         next-level-cache = <&L25>;
123         memory-region = <&l2_lim>;
124     };