xref: /linux/Documentation/devicetree/bindings/edac/altr,socfpga-ecc-manager.yaml (revision bbfd5594756011167b8f8de9a00e0c946afda1e6)
1*dd7af147SMatthew Gerlach# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*dd7af147SMatthew Gerlach# Copyright (C) 2025 Altera Corporation
3*dd7af147SMatthew Gerlach%YAML 1.2
4*dd7af147SMatthew Gerlach---
5*dd7af147SMatthew Gerlach$id: http://devicetree.org/schemas/edac/altr,socfpga-ecc-manager.yaml#
6*dd7af147SMatthew Gerlach$schema: http://devicetree.org/meta-schemas/core.yaml#
7*dd7af147SMatthew Gerlach
8*dd7af147SMatthew Gerlachtitle: Altera SoCFPGA ECC Manager
9*dd7af147SMatthew Gerlach
10*dd7af147SMatthew Gerlachmaintainers:
11*dd7af147SMatthew Gerlach  - Matthew Gerlach <matthew.gerlach@altera.com>
12*dd7af147SMatthew Gerlach
13*dd7af147SMatthew Gerlachdescription:
14*dd7af147SMatthew Gerlach  This binding describes the device tree nodes required for the Altera SoCFPGA
15*dd7af147SMatthew Gerlach  ECC Manager for the Cyclone5, Arria5, Arria10, Stratix10, and Agilex chip
16*dd7af147SMatthew Gerlach  families.
17*dd7af147SMatthew Gerlach
18*dd7af147SMatthew Gerlachproperties:
19*dd7af147SMatthew Gerlach
20*dd7af147SMatthew Gerlach  compatible:
21*dd7af147SMatthew Gerlach    oneOf:
22*dd7af147SMatthew Gerlach      - items:
23*dd7af147SMatthew Gerlach          - const: altr,socfpga-s10-ecc-manager
24*dd7af147SMatthew Gerlach          - const: altr,socfpga-a10-ecc-manager
25*dd7af147SMatthew Gerlach      - const: altr,socfpga-a10-ecc-manager
26*dd7af147SMatthew Gerlach      - const: altr,socfpga-ecc-manager
27*dd7af147SMatthew Gerlach
28*dd7af147SMatthew Gerlach  "#address-cells":
29*dd7af147SMatthew Gerlach    const: 1
30*dd7af147SMatthew Gerlach
31*dd7af147SMatthew Gerlach  "#size-cells":
32*dd7af147SMatthew Gerlach    const: 1
33*dd7af147SMatthew Gerlach
34*dd7af147SMatthew Gerlach  interrupts:
35*dd7af147SMatthew Gerlach    minItems: 1
36*dd7af147SMatthew Gerlach    maxItems: 2
37*dd7af147SMatthew Gerlach
38*dd7af147SMatthew Gerlach  interrupt-controller: true
39*dd7af147SMatthew Gerlach
40*dd7af147SMatthew Gerlach  "#interrupt-cells":
41*dd7af147SMatthew Gerlach    const: 2
42*dd7af147SMatthew Gerlach
43*dd7af147SMatthew Gerlach  ranges: true
44*dd7af147SMatthew Gerlach
45*dd7af147SMatthew Gerlach  altr,sysmgr-syscon:
46*dd7af147SMatthew Gerlach    $ref: /schemas/types.yaml#/definitions/phandle
47*dd7af147SMatthew Gerlach    description: phandle to Stratix10 System Manager Block with the ECC manager registers
48*dd7af147SMatthew Gerlach
49*dd7af147SMatthew Gerlach  sdramedac:
50*dd7af147SMatthew Gerlach    type: object
51*dd7af147SMatthew Gerlach    additionalProperties: false
52*dd7af147SMatthew Gerlach
53*dd7af147SMatthew Gerlach    properties:
54*dd7af147SMatthew Gerlach      compatible:
55*dd7af147SMatthew Gerlach        enum:
56*dd7af147SMatthew Gerlach          - altr,sdram-edac-a10
57*dd7af147SMatthew Gerlach          - altr,sdram-edac-s10
58*dd7af147SMatthew Gerlach
59*dd7af147SMatthew Gerlach      interrupts:
60*dd7af147SMatthew Gerlach        minItems: 1
61*dd7af147SMatthew Gerlach        maxItems: 2
62*dd7af147SMatthew Gerlach
63*dd7af147SMatthew Gerlach      altr,sdr-syscon:
64*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
65*dd7af147SMatthew Gerlach        description: phandle to SDRAM parent
66*dd7af147SMatthew Gerlach
67*dd7af147SMatthew Gerlach    required:
68*dd7af147SMatthew Gerlach      - compatible
69*dd7af147SMatthew Gerlach      - interrupts
70*dd7af147SMatthew Gerlach      - altr,sdr-syscon
71*dd7af147SMatthew Gerlach
72*dd7af147SMatthew GerlachpatternProperties:
73*dd7af147SMatthew Gerlach  "^ocram-ecc@[a-f0-9]+$":
74*dd7af147SMatthew Gerlach    type: object
75*dd7af147SMatthew Gerlach    additionalProperties: false
76*dd7af147SMatthew Gerlach
77*dd7af147SMatthew Gerlach    properties:
78*dd7af147SMatthew Gerlach      compatible:
79*dd7af147SMatthew Gerlach        oneOf:
80*dd7af147SMatthew Gerlach          - items:
81*dd7af147SMatthew Gerlach              - const: altr,socfpga-s10-ocram-ecc
82*dd7af147SMatthew Gerlach              - const: altr,socfpga-a10-ocram-ecc
83*dd7af147SMatthew Gerlach          - const: altr,socfpga-a10-ocram-ecc
84*dd7af147SMatthew Gerlach          - const: altr,socfpga-ocram-ecc
85*dd7af147SMatthew Gerlach
86*dd7af147SMatthew Gerlach      reg:
87*dd7af147SMatthew Gerlach        maxItems: 1
88*dd7af147SMatthew Gerlach
89*dd7af147SMatthew Gerlach      interrupts:
90*dd7af147SMatthew Gerlach        minItems: 1
91*dd7af147SMatthew Gerlach        maxItems: 2
92*dd7af147SMatthew Gerlach
93*dd7af147SMatthew Gerlach      iram:
94*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
95*dd7af147SMatthew Gerlach        description: phandle to OCRAM parent
96*dd7af147SMatthew Gerlach
97*dd7af147SMatthew Gerlach      altr,ecc-parent:
98*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
99*dd7af147SMatthew Gerlach        description: phandle to OCRAM parent
100*dd7af147SMatthew Gerlach
101*dd7af147SMatthew Gerlach    required:
102*dd7af147SMatthew Gerlach      - compatible
103*dd7af147SMatthew Gerlach      - reg
104*dd7af147SMatthew Gerlach      - interrupts
105*dd7af147SMatthew Gerlach
106*dd7af147SMatthew Gerlach  "^usb[0-9]-ecc@[a-f0-9]+$":
107*dd7af147SMatthew Gerlach    type: object
108*dd7af147SMatthew Gerlach    additionalProperties: false
109*dd7af147SMatthew Gerlach
110*dd7af147SMatthew Gerlach    properties:
111*dd7af147SMatthew Gerlach      compatible:
112*dd7af147SMatthew Gerlach        oneOf:
113*dd7af147SMatthew Gerlach          - items:
114*dd7af147SMatthew Gerlach              - const: altr,socfpga-s10-usb-ecc
115*dd7af147SMatthew Gerlach              - const: altr,socfpga-usb-ecc
116*dd7af147SMatthew Gerlach          - const: altr,socfpga-usb-ecc
117*dd7af147SMatthew Gerlach
118*dd7af147SMatthew Gerlach      reg:
119*dd7af147SMatthew Gerlach        maxItems: 1
120*dd7af147SMatthew Gerlach
121*dd7af147SMatthew Gerlach      interrupts:
122*dd7af147SMatthew Gerlach        minItems: 1
123*dd7af147SMatthew Gerlach        maxItems: 2
124*dd7af147SMatthew Gerlach
125*dd7af147SMatthew Gerlach      altr,ecc-parent:
126*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
127*dd7af147SMatthew Gerlach        description: phandle to USB parent
128*dd7af147SMatthew Gerlach
129*dd7af147SMatthew Gerlach    required:
130*dd7af147SMatthew Gerlach      - compatible
131*dd7af147SMatthew Gerlach      - reg
132*dd7af147SMatthew Gerlach      - interrupts
133*dd7af147SMatthew Gerlach      - altr,ecc-parent
134*dd7af147SMatthew Gerlach
135*dd7af147SMatthew Gerlach  "^emac[0-9]-[t,r]x-ecc@[a-f0-9]+$":
136*dd7af147SMatthew Gerlach    type: object
137*dd7af147SMatthew Gerlach    additionalProperties: false
138*dd7af147SMatthew Gerlach
139*dd7af147SMatthew Gerlach    properties:
140*dd7af147SMatthew Gerlach      compatible:
141*dd7af147SMatthew Gerlach        oneOf:
142*dd7af147SMatthew Gerlach          - items:
143*dd7af147SMatthew Gerlach              - const: altr,socfpga-s10-eth-mac-ecc
144*dd7af147SMatthew Gerlach              - const: altr,socfpga-eth-mac-ecc
145*dd7af147SMatthew Gerlach          - const: altr,socfpga-eth-mac-ecc
146*dd7af147SMatthew Gerlach
147*dd7af147SMatthew Gerlach      reg:
148*dd7af147SMatthew Gerlach        maxItems: 1
149*dd7af147SMatthew Gerlach
150*dd7af147SMatthew Gerlach      interrupts:
151*dd7af147SMatthew Gerlach        minItems: 1
152*dd7af147SMatthew Gerlach        maxItems: 2
153*dd7af147SMatthew Gerlach
154*dd7af147SMatthew Gerlach      altr,ecc-parent:
155*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
156*dd7af147SMatthew Gerlach        description: phandle to ethernet parent
157*dd7af147SMatthew Gerlach
158*dd7af147SMatthew Gerlach    required:
159*dd7af147SMatthew Gerlach      - compatible
160*dd7af147SMatthew Gerlach      - reg
161*dd7af147SMatthew Gerlach      - interrupts
162*dd7af147SMatthew Gerlach      - altr,ecc-parent
163*dd7af147SMatthew Gerlach
164*dd7af147SMatthew Gerlach  "^sdmmc[a-f]-ecc@[a-f0-9]+$":
165*dd7af147SMatthew Gerlach    type: object
166*dd7af147SMatthew Gerlach    additionalProperties: false
167*dd7af147SMatthew Gerlach
168*dd7af147SMatthew Gerlach    properties:
169*dd7af147SMatthew Gerlach      compatible:
170*dd7af147SMatthew Gerlach        oneOf:
171*dd7af147SMatthew Gerlach          - items:
172*dd7af147SMatthew Gerlach              - const: altr,socfpga-s10-sdmmc-ecc
173*dd7af147SMatthew Gerlach              - const: altr,socfpga-sdmmc-ecc
174*dd7af147SMatthew Gerlach          - const: altr,socfpga-sdmmc-ecc
175*dd7af147SMatthew Gerlach
176*dd7af147SMatthew Gerlach      reg:
177*dd7af147SMatthew Gerlach        maxItems: 1
178*dd7af147SMatthew Gerlach
179*dd7af147SMatthew Gerlach      interrupts:
180*dd7af147SMatthew Gerlach        minItems: 2
181*dd7af147SMatthew Gerlach        maxItems: 4
182*dd7af147SMatthew Gerlach
183*dd7af147SMatthew Gerlach      altr,ecc-parent:
184*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
185*dd7af147SMatthew Gerlach        description: phandle to SD/MMC parent
186*dd7af147SMatthew Gerlach
187*dd7af147SMatthew Gerlach    required:
188*dd7af147SMatthew Gerlach      - compatible
189*dd7af147SMatthew Gerlach      - reg
190*dd7af147SMatthew Gerlach      - interrupts
191*dd7af147SMatthew Gerlach      - altr,ecc-parent
192*dd7af147SMatthew Gerlach
193*dd7af147SMatthew Gerlach  "^l2-ecc@[a-f0-9]+$":
194*dd7af147SMatthew Gerlach    type: object
195*dd7af147SMatthew Gerlach    additionalProperties: false
196*dd7af147SMatthew Gerlach
197*dd7af147SMatthew Gerlach    properties:
198*dd7af147SMatthew Gerlach      compatible:
199*dd7af147SMatthew Gerlach        enum:
200*dd7af147SMatthew Gerlach          - altr,socfpga-a10-l2-ecc
201*dd7af147SMatthew Gerlach          - altr,socfpga-l2-ecc
202*dd7af147SMatthew Gerlach
203*dd7af147SMatthew Gerlach      reg:
204*dd7af147SMatthew Gerlach        maxItems: 1
205*dd7af147SMatthew Gerlach
206*dd7af147SMatthew Gerlach      interrupts:
207*dd7af147SMatthew Gerlach        maxItems: 2
208*dd7af147SMatthew Gerlach
209*dd7af147SMatthew Gerlach    required:
210*dd7af147SMatthew Gerlach      - compatible
211*dd7af147SMatthew Gerlach      - reg
212*dd7af147SMatthew Gerlach      - interrupts
213*dd7af147SMatthew Gerlach
214*dd7af147SMatthew Gerlach  "^dma-ecc@[a-f0-9]+$":
215*dd7af147SMatthew Gerlach    type: object
216*dd7af147SMatthew Gerlach    additionalProperties: false
217*dd7af147SMatthew Gerlach
218*dd7af147SMatthew Gerlach    properties:
219*dd7af147SMatthew Gerlach      compatible:
220*dd7af147SMatthew Gerlach        const: altr,socfpga-dma-ecc
221*dd7af147SMatthew Gerlach      reg:
222*dd7af147SMatthew Gerlach        maxItems: 1
223*dd7af147SMatthew Gerlach
224*dd7af147SMatthew Gerlach      interrupts:
225*dd7af147SMatthew Gerlach        maxItems: 2
226*dd7af147SMatthew Gerlach
227*dd7af147SMatthew Gerlach      altr,ecc-parent:
228*dd7af147SMatthew Gerlach        $ref: /schemas/types.yaml#/definitions/phandle
229*dd7af147SMatthew Gerlach        description: phandle to SD/MMC parent
230*dd7af147SMatthew Gerlach
231*dd7af147SMatthew Gerlach    required:
232*dd7af147SMatthew Gerlach      - compatible
233*dd7af147SMatthew Gerlach      - reg
234*dd7af147SMatthew Gerlach      - interrupts
235*dd7af147SMatthew Gerlach      - altr,ecc-parent
236*dd7af147SMatthew Gerlach
237*dd7af147SMatthew Gerlachif:
238*dd7af147SMatthew Gerlach  properties:
239*dd7af147SMatthew Gerlach    compatible:
240*dd7af147SMatthew Gerlach      contains:
241*dd7af147SMatthew Gerlach        const: altr,socfpga-ecc-manager
242*dd7af147SMatthew Gerlachthen:
243*dd7af147SMatthew Gerlach  required:
244*dd7af147SMatthew Gerlach    - compatible
245*dd7af147SMatthew Gerlach    - "#address-cells"
246*dd7af147SMatthew Gerlach    - "#size-cells"
247*dd7af147SMatthew Gerlach    - ranges
248*dd7af147SMatthew Gerlach
249*dd7af147SMatthew Gerlachelse:
250*dd7af147SMatthew Gerlach  required:
251*dd7af147SMatthew Gerlach    - compatible
252*dd7af147SMatthew Gerlach    - "#address-cells"
253*dd7af147SMatthew Gerlach    - "#size-cells"
254*dd7af147SMatthew Gerlach    - interrupts
255*dd7af147SMatthew Gerlach    - interrupt-controller
256*dd7af147SMatthew Gerlach    - "#interrupt-cells"
257*dd7af147SMatthew Gerlach    - ranges
258*dd7af147SMatthew Gerlach    - altr,sysmgr-syscon
259*dd7af147SMatthew Gerlach
260*dd7af147SMatthew GerlachadditionalProperties: false
261*dd7af147SMatthew Gerlach
262*dd7af147SMatthew Gerlachexamples:
263*dd7af147SMatthew Gerlach  - |
264*dd7af147SMatthew Gerlach    #include <dt-bindings/interrupt-controller/arm-gic.h>
265*dd7af147SMatthew Gerlach    #include <dt-bindings/interrupt-controller/irq.h>
266*dd7af147SMatthew Gerlach    eccmgr {
267*dd7af147SMatthew Gerlach        compatible = "altr,socfpga-s10-ecc-manager",
268*dd7af147SMatthew Gerlach                     "altr,socfpga-a10-ecc-manager";
269*dd7af147SMatthew Gerlach        altr,sysmgr-syscon = <&sysmgr>;
270*dd7af147SMatthew Gerlach        #address-cells = <1>;
271*dd7af147SMatthew Gerlach        #size-cells = <1>;
272*dd7af147SMatthew Gerlach        interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
273*dd7af147SMatthew Gerlach        interrupt-controller;
274*dd7af147SMatthew Gerlach        #interrupt-cells = <2>;
275*dd7af147SMatthew Gerlach        ranges;
276*dd7af147SMatthew Gerlach
277*dd7af147SMatthew Gerlach        sdramedac {
278*dd7af147SMatthew Gerlach            compatible = "altr,sdram-edac-s10";
279*dd7af147SMatthew Gerlach            altr,sdr-syscon = <&sdr>;
280*dd7af147SMatthew Gerlach            interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
281*dd7af147SMatthew Gerlach        };
282*dd7af147SMatthew Gerlach
283*dd7af147SMatthew Gerlach        ocram-ecc@ff8cc000 {
284*dd7af147SMatthew Gerlach            compatible = "altr,socfpga-s10-ocram-ecc",
285*dd7af147SMatthew Gerlach                         "altr,socfpga-a10-ocram-ecc";
286*dd7af147SMatthew Gerlach            reg = <0xff8cc000 0x100>;
287*dd7af147SMatthew Gerlach            altr,ecc-parent = <&ocram>;
288*dd7af147SMatthew Gerlach            interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
289*dd7af147SMatthew Gerlach        };
290*dd7af147SMatthew Gerlach
291*dd7af147SMatthew Gerlach        usb0-ecc@ff8c4000 {
292*dd7af147SMatthew Gerlach            compatible = "altr,socfpga-s10-usb-ecc",
293*dd7af147SMatthew Gerlach                         "altr,socfpga-usb-ecc";
294*dd7af147SMatthew Gerlach            reg = <0xff8c4000 0x100>;
295*dd7af147SMatthew Gerlach            altr,ecc-parent = <&usb0>;
296*dd7af147SMatthew Gerlach            interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
297*dd7af147SMatthew Gerlach        };
298*dd7af147SMatthew Gerlach
299*dd7af147SMatthew Gerlach        emac0-rx-ecc@ff8c0000 {
300*dd7af147SMatthew Gerlach            compatible = "altr,socfpga-s10-eth-mac-ecc",
301*dd7af147SMatthew Gerlach                         "altr,socfpga-eth-mac-ecc";
302*dd7af147SMatthew Gerlach            reg = <0xff8c0000 0x100>;
303*dd7af147SMatthew Gerlach            altr,ecc-parent = <&gmac0>;
304*dd7af147SMatthew Gerlach            interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
305*dd7af147SMatthew Gerlach        };
306*dd7af147SMatthew Gerlach
307*dd7af147SMatthew Gerlach        emac0-tx-ecc@ff8c0400 {
308*dd7af147SMatthew Gerlach            compatible = "altr,socfpga-s10-eth-mac-ecc",
309*dd7af147SMatthew Gerlach                         "altr,socfpga-eth-mac-ecc";
310*dd7af147SMatthew Gerlach            reg = <0xff8c0400 0x100>;
311*dd7af147SMatthew Gerlach            altr,ecc-parent = <&gmac0>;
312*dd7af147SMatthew Gerlach            interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
313*dd7af147SMatthew Gerlach        };
314*dd7af147SMatthew Gerlach
315*dd7af147SMatthew Gerlach        sdmmca-ecc@ff8c8c00 {
316*dd7af147SMatthew Gerlach            compatible = "altr,socfpga-s10-sdmmc-ecc",
317*dd7af147SMatthew Gerlach                         "altr,socfpga-sdmmc-ecc";
318*dd7af147SMatthew Gerlach            reg = <0xff8c8c00 0x100>;
319*dd7af147SMatthew Gerlach            altr,ecc-parent = <&mmc>;
320*dd7af147SMatthew Gerlach            interrupts = <14 IRQ_TYPE_LEVEL_HIGH>,
321*dd7af147SMatthew Gerlach                         <15 IRQ_TYPE_LEVEL_HIGH>;
322*dd7af147SMatthew Gerlach        };
323*dd7af147SMatthew Gerlach    };
324