xref: /openbmc/linux/Documentation/devicetree/bindings/edac/socfpga-eccmgr.txt (revision c39f2d9db0fd81ea20bb5cce9b3f082ca63753e2)
1f8eb0edeSThor ThayerAltera SoCFPGA ECC Manager
2f8eb0edeSThor ThayerThis driver uses the EDAC framework to implement the SOCFPGA ECC Manager.
3f8eb0edeSThor ThayerThe ECC Manager counts and corrects single bit errors and counts/handles
4f8eb0edeSThor Thayerdouble bit errors which are uncorrectable.
5f8eb0edeSThor Thayer
6f8eb0edeSThor ThayerCyclone5 and Arria5 ECC Manager
7f8eb0edeSThor ThayerRequired Properties:
8f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-ecc-manager"
9f8eb0edeSThor Thayer- #address-cells: must be 1
10f8eb0edeSThor Thayer- #size-cells: must be 1
11f8eb0edeSThor Thayer- ranges : standard definition, should translate from local addresses
12f8eb0edeSThor Thayer
13f8eb0edeSThor ThayerSubcomponents:
14f8eb0edeSThor Thayer
15f8eb0edeSThor ThayerL2 Cache ECC
16f8eb0edeSThor ThayerRequired Properties:
17f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-l2-ecc"
18f8eb0edeSThor Thayer- reg : Address and size for ECC error interrupt clear registers.
19f8eb0edeSThor Thayer- interrupts : Should be single bit error interrupt, then double bit error
20f8eb0edeSThor Thayer	interrupt. Note the rising edge type.
21f8eb0edeSThor Thayer
22f8eb0edeSThor ThayerOn Chip RAM ECC
23f8eb0edeSThor ThayerRequired Properties:
24f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-ocram-ecc"
25f8eb0edeSThor Thayer- reg : Address and size for ECC error interrupt clear registers.
26f8eb0edeSThor Thayer- iram : phandle to On-Chip RAM definition.
27f8eb0edeSThor Thayer- interrupts : Should be single bit error interrupt, then double bit error
28f8eb0edeSThor Thayer	interrupt. Note the rising edge type.
29f8eb0edeSThor Thayer
30f8eb0edeSThor ThayerExample:
31f8eb0edeSThor Thayer
32f8eb0edeSThor Thayer	eccmgr: eccmgr@ffd08140 {
33f8eb0edeSThor Thayer		compatible = "altr,socfpga-ecc-manager";
34f8eb0edeSThor Thayer		#address-cells = <1>;
35f8eb0edeSThor Thayer		#size-cells = <1>;
36f8eb0edeSThor Thayer		ranges;
37f8eb0edeSThor Thayer
38f8eb0edeSThor Thayer		l2-ecc@ffd08140 {
39f8eb0edeSThor Thayer			compatible = "altr,socfpga-l2-ecc";
40f8eb0edeSThor Thayer			reg = <0xffd08140 0x4>;
41f8eb0edeSThor Thayer			interrupts = <0 36 1>, <0 37 1>;
42f8eb0edeSThor Thayer		};
43f8eb0edeSThor Thayer
44f8eb0edeSThor Thayer		ocram-ecc@ffd08144 {
45f8eb0edeSThor Thayer			compatible = "altr,socfpga-ocram-ecc";
46f8eb0edeSThor Thayer			reg = <0xffd08144 0x4>;
47f8eb0edeSThor Thayer			iram = <&ocram>;
48f8eb0edeSThor Thayer			interrupts = <0 178 1>, <0 179 1>;
49f8eb0edeSThor Thayer		};
50f8eb0edeSThor Thayer	};
51f8eb0edeSThor Thayer
52f8eb0edeSThor ThayerArria10 SoCFPGA ECC Manager
53f8eb0edeSThor ThayerThe Arria10 SoC ECC Manager handles the IRQs for each peripheral
54f8eb0edeSThor Thayerin a shared register instead of individual IRQs like the Cyclone5
55f8eb0edeSThor Thayerand Arria5. Therefore the device tree is different as well.
56f8eb0edeSThor Thayer
57f8eb0edeSThor ThayerRequired Properties:
58f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-a10-ecc-manager"
59f8eb0edeSThor Thayer- altr,sysgr-syscon : phandle to Arria10 System Manager Block
60f8eb0edeSThor Thayer	containing the ECC manager registers.
61f8eb0edeSThor Thayer- #address-cells: must be 1
62f8eb0edeSThor Thayer- #size-cells: must be 1
63f8eb0edeSThor Thayer- interrupts : Should be single bit error interrupt, then double bit error
64f8eb0edeSThor Thayer	interrupt.
65f8eb0edeSThor Thayer- interrupt-controller : boolean indicator that ECC Manager is an interrupt controller
66f8eb0edeSThor Thayer- #interrupt-cells : must be set to 2.
67f8eb0edeSThor Thayer- ranges : standard definition, should translate from local addresses
68f8eb0edeSThor Thayer
69f8eb0edeSThor ThayerSubcomponents:
70f8eb0edeSThor Thayer
71f8eb0edeSThor ThayerL2 Cache ECC
72f8eb0edeSThor ThayerRequired Properties:
73f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-a10-l2-ecc"
74f8eb0edeSThor Thayer- reg : Address and size for ECC error interrupt clear registers.
75f8eb0edeSThor Thayer- interrupts : Should be single bit error interrupt, then double bit error
76f8eb0edeSThor Thayer	interrupt, in this order.
77f8eb0edeSThor Thayer
78f8eb0edeSThor ThayerOn-Chip RAM ECC
79f8eb0edeSThor ThayerRequired Properties:
80f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-a10-ocram-ecc"
81f8eb0edeSThor Thayer- reg        : Address and size for ECC block registers.
82f8eb0edeSThor Thayer- interrupts : Should be single bit error interrupt, then double bit error
83f8eb0edeSThor Thayer	interrupt, in this order.
84f8eb0edeSThor Thayer
85f8eb0edeSThor ThayerEthernet FIFO ECC
86f8eb0edeSThor ThayerRequired Properties:
87f8eb0edeSThor Thayer- compatible      : Should be "altr,socfpga-eth-mac-ecc"
88f8eb0edeSThor Thayer- reg             : Address and size for ECC block registers.
89f8eb0edeSThor Thayer- altr,ecc-parent : phandle to parent Ethernet node.
90f8eb0edeSThor Thayer- interrupts      : Should be single bit error interrupt, then double bit error
91f8eb0edeSThor Thayer	interrupt, in this order.
92f8eb0edeSThor Thayer
93f8eb0edeSThor ThayerNAND FIFO ECC
94f8eb0edeSThor ThayerRequired Properties:
95f8eb0edeSThor Thayer- compatible      : Should be "altr,socfpga-nand-ecc"
96f8eb0edeSThor Thayer- reg             : Address and size for ECC block registers.
97f8eb0edeSThor Thayer- altr,ecc-parent : phandle to parent NAND node.
98f8eb0edeSThor Thayer- interrupts      : Should be single bit error interrupt, then double bit error
99f8eb0edeSThor Thayer	interrupt, in this order.
100f8eb0edeSThor Thayer
101f8eb0edeSThor ThayerDMA FIFO ECC
102f8eb0edeSThor ThayerRequired Properties:
103f8eb0edeSThor Thayer- compatible      : Should be "altr,socfpga-dma-ecc"
104f8eb0edeSThor Thayer- reg             : Address and size for ECC block registers.
105f8eb0edeSThor Thayer- altr,ecc-parent : phandle to parent DMA node.
106f8eb0edeSThor Thayer- interrupts      : Should be single bit error interrupt, then double bit error
107f8eb0edeSThor Thayer	interrupt, in this order.
108f8eb0edeSThor Thayer
109f8eb0edeSThor ThayerUSB FIFO ECC
110f8eb0edeSThor ThayerRequired Properties:
111f8eb0edeSThor Thayer- compatible      : Should be "altr,socfpga-usb-ecc"
112f8eb0edeSThor Thayer- reg             : Address and size for ECC block registers.
113f8eb0edeSThor Thayer- altr,ecc-parent : phandle to parent USB node.
114f8eb0edeSThor Thayer- interrupts      : Should be single bit error interrupt, then double bit error
115f8eb0edeSThor Thayer	interrupt, in this order.
116f8eb0edeSThor Thayer
117f8eb0edeSThor ThayerQSPI FIFO ECC
118f8eb0edeSThor ThayerRequired Properties:
119f8eb0edeSThor Thayer- compatible      : Should be "altr,socfpga-qspi-ecc"
120f8eb0edeSThor Thayer- reg             : Address and size for ECC block registers.
121f8eb0edeSThor Thayer- altr,ecc-parent : phandle to parent QSPI node.
122f8eb0edeSThor Thayer- interrupts      : Should be single bit error interrupt, then double bit error
123f8eb0edeSThor Thayer	interrupt, in this order.
124f8eb0edeSThor Thayer
125f8eb0edeSThor ThayerSDMMC FIFO ECC
126f8eb0edeSThor ThayerRequired Properties:
127f8eb0edeSThor Thayer- compatible      : Should be "altr,socfpga-sdmmc-ecc"
128f8eb0edeSThor Thayer- reg             : Address and size for ECC block registers.
129f8eb0edeSThor Thayer- altr,ecc-parent : phandle to parent SD/MMC node.
130f8eb0edeSThor Thayer- interrupts      : Should be single bit error interrupt, then double bit error
131f8eb0edeSThor Thayer	interrupt, in this order for port A, and then single bit error interrupt,
132f8eb0edeSThor Thayer	then double bit error interrupt in this order for port B.
133f8eb0edeSThor Thayer
134f8eb0edeSThor ThayerExample:
135f8eb0edeSThor Thayer
136f8eb0edeSThor Thayer	eccmgr: eccmgr@ffd06000 {
137f8eb0edeSThor Thayer		compatible = "altr,socfpga-a10-ecc-manager";
138f8eb0edeSThor Thayer		altr,sysmgr-syscon = <&sysmgr>;
139f8eb0edeSThor Thayer		#address-cells = <1>;
140f8eb0edeSThor Thayer		#size-cells = <1>;
141f8eb0edeSThor Thayer		interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
142f8eb0edeSThor Thayer			     <0 0 IRQ_TYPE_LEVEL_HIGH>;
143f8eb0edeSThor Thayer		interrupt-controller;
144f8eb0edeSThor Thayer		#interrupt-cells = <2>;
145f8eb0edeSThor Thayer		ranges;
146f8eb0edeSThor Thayer
147f8eb0edeSThor Thayer		l2-ecc@ffd06010 {
148f8eb0edeSThor Thayer			compatible = "altr,socfpga-a10-l2-ecc";
149f8eb0edeSThor Thayer			reg = <0xffd06010 0x4>;
150f8eb0edeSThor Thayer			interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
151f8eb0edeSThor Thayer				     <32 IRQ_TYPE_LEVEL_HIGH>;
152f8eb0edeSThor Thayer		};
153f8eb0edeSThor Thayer
154f8eb0edeSThor Thayer		ocram-ecc@ff8c3000 {
155f8eb0edeSThor Thayer			compatible = "altr,socfpga-a10-ocram-ecc";
156f8eb0edeSThor Thayer			reg = <0xff8c3000 0x90>;
157f8eb0edeSThor Thayer			interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
158f8eb0edeSThor Thayer				     <33 IRQ_TYPE_LEVEL_HIGH> ;
159f8eb0edeSThor Thayer		};
160f8eb0edeSThor Thayer
161f8eb0edeSThor Thayer		emac0-rx-ecc@ff8c0800 {
162f8eb0edeSThor Thayer			compatible = "altr,socfpga-eth-mac-ecc";
163f8eb0edeSThor Thayer			reg = <0xff8c0800 0x400>;
164f8eb0edeSThor Thayer			altr,ecc-parent = <&gmac0>;
165f8eb0edeSThor Thayer			interrupts = <4 IRQ_TYPE_LEVEL_HIGH>,
166f8eb0edeSThor Thayer				     <36 IRQ_TYPE_LEVEL_HIGH>;
167f8eb0edeSThor Thayer		};
168f8eb0edeSThor Thayer
169f8eb0edeSThor Thayer		emac0-tx-ecc@ff8c0c00 {
170f8eb0edeSThor Thayer			compatible = "altr,socfpga-eth-mac-ecc";
171f8eb0edeSThor Thayer			reg = <0xff8c0c00 0x400>;
172f8eb0edeSThor Thayer			altr,ecc-parent = <&gmac0>;
173f8eb0edeSThor Thayer			interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
174f8eb0edeSThor Thayer				     <37 IRQ_TYPE_LEVEL_HIGH>;
175f8eb0edeSThor Thayer		};
176f8eb0edeSThor Thayer
177f8eb0edeSThor Thayer		nand-buf-ecc@ff8c2000 {
178f8eb0edeSThor Thayer			compatible = "altr,socfpga-nand-ecc";
179f8eb0edeSThor Thayer			reg = <0xff8c2000 0x400>;
180f8eb0edeSThor Thayer			altr,ecc-parent = <&nand>;
181f8eb0edeSThor Thayer			interrupts = <11 IRQ_TYPE_LEVEL_HIGH>,
182f8eb0edeSThor Thayer				     <43 IRQ_TYPE_LEVEL_HIGH>;
183f8eb0edeSThor Thayer		};
184f8eb0edeSThor Thayer
185f8eb0edeSThor Thayer		nand-rd-ecc@ff8c2400 {
186f8eb0edeSThor Thayer			compatible = "altr,socfpga-nand-ecc";
187f8eb0edeSThor Thayer			reg = <0xff8c2400 0x400>;
188f8eb0edeSThor Thayer			altr,ecc-parent = <&nand>;
189f8eb0edeSThor Thayer			interrupts = <13 IRQ_TYPE_LEVEL_HIGH>,
190f8eb0edeSThor Thayer				     <45 IRQ_TYPE_LEVEL_HIGH>;
191f8eb0edeSThor Thayer		};
192f8eb0edeSThor Thayer
193f8eb0edeSThor Thayer		nand-wr-ecc@ff8c2800 {
194f8eb0edeSThor Thayer			compatible = "altr,socfpga-nand-ecc";
195f8eb0edeSThor Thayer			reg = <0xff8c2800 0x400>;
196f8eb0edeSThor Thayer			altr,ecc-parent = <&nand>;
197f8eb0edeSThor Thayer			interrupts = <12 IRQ_TYPE_LEVEL_HIGH>,
198f8eb0edeSThor Thayer				     <44 IRQ_TYPE_LEVEL_HIGH>;
199f8eb0edeSThor Thayer		};
200f8eb0edeSThor Thayer
201f8eb0edeSThor Thayer		dma-ecc@ff8c8000 {
202f8eb0edeSThor Thayer			compatible = "altr,socfpga-dma-ecc";
203f8eb0edeSThor Thayer			reg = <0xff8c8000 0x400>;
204f8eb0edeSThor Thayer			altr,ecc-parent = <&pdma>;
205f8eb0edeSThor Thayer			interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
206f8eb0edeSThor Thayer				     <42 IRQ_TYPE_LEVEL_HIGH>;
207f8eb0edeSThor Thayer
208f8eb0edeSThor Thayer		usb0-ecc@ff8c8800 {
209f8eb0edeSThor Thayer			compatible = "altr,socfpga-usb-ecc";
210f8eb0edeSThor Thayer			reg = <0xff8c8800 0x400>;
211f8eb0edeSThor Thayer			altr,ecc-parent = <&usb0>;
212f8eb0edeSThor Thayer			interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
213f8eb0edeSThor Thayer				     <34 IRQ_TYPE_LEVEL_HIGH>;
214f8eb0edeSThor Thayer		};
215f8eb0edeSThor Thayer
216f8eb0edeSThor Thayer		qspi-ecc@ff8c8400 {
217f8eb0edeSThor Thayer			compatible = "altr,socfpga-qspi-ecc";
218f8eb0edeSThor Thayer			reg = <0xff8c8400 0x400>;
219f8eb0edeSThor Thayer			altr,ecc-parent = <&qspi>;
220f8eb0edeSThor Thayer			interrupts = <14 IRQ_TYPE_LEVEL_HIGH>,
221f8eb0edeSThor Thayer				     <46 IRQ_TYPE_LEVEL_HIGH>;
222f8eb0edeSThor Thayer		};
223f8eb0edeSThor Thayer
224f8eb0edeSThor Thayer		sdmmc-ecc@ff8c2c00 {
225f8eb0edeSThor Thayer			compatible = "altr,socfpga-sdmmc-ecc";
226f8eb0edeSThor Thayer			reg = <0xff8c2c00 0x400>;
227f8eb0edeSThor Thayer			altr,ecc-parent = <&mmc>;
228f8eb0edeSThor Thayer			interrupts = <15 IRQ_TYPE_LEVEL_HIGH>,
229f8eb0edeSThor Thayer				     <47 IRQ_TYPE_LEVEL_HIGH>,
230f8eb0edeSThor Thayer				     <16 IRQ_TYPE_LEVEL_HIGH>,
231f8eb0edeSThor Thayer				     <48 IRQ_TYPE_LEVEL_HIGH>;
232f8eb0edeSThor Thayer		};
233f8eb0edeSThor Thayer	};
234f8eb0edeSThor Thayer
235b9c8172eSThor ThayerStratix10 SoCFPGA ECC Manager (ARM64)
236f8eb0edeSThor ThayerThe Stratix10 SoC ECC Manager handles the IRQs for each peripheral
237b9c8172eSThor Thayerin a shared register similar to the Arria10. However, Stratix10 ECC
238b9c8172eSThor Thayerrequires access to registers that can only be read from Secure Monitor
239b9c8172eSThor Thayerwith SMC calls. Therefore the device tree is slightly different. Note
240b9c8172eSThor Thayerthat only 1 interrupt is sent in Stratix10 because the double bit errors
241b9c8172eSThor Thayerare treated as SErrors in ARM64 instead of IRQs in ARM32.
242f8eb0edeSThor Thayer
243f8eb0edeSThor ThayerRequired Properties:
244f8eb0edeSThor Thayer- compatible : Should be "altr,socfpga-s10-ecc-manager"
245b9c8172eSThor Thayer- altr,sysgr-syscon : phandle to Stratix10 System Manager Block
246b9c8172eSThor Thayer	              containing the ECC manager registers.
247b9c8172eSThor Thayer- interrupts : Should be single bit error interrupt.
248f8eb0edeSThor Thayer- interrupt-controller : boolean indicator that ECC Manager is an interrupt controller
249f8eb0edeSThor Thayer- #interrupt-cells : must be set to 2.
250b9c8172eSThor Thayer- #address-cells: must be 1
251b9c8172eSThor Thayer- #size-cells: must be 1
252b9c8172eSThor Thayer- ranges : standard definition, should translate from local addresses
253f8eb0edeSThor Thayer
254f8eb0edeSThor ThayerSubcomponents:
255f8eb0edeSThor Thayer
256f8eb0edeSThor ThayerSDRAM ECC
257f8eb0edeSThor ThayerRequired Properties:
258f8eb0edeSThor Thayer- compatible : Should be "altr,sdram-edac-s10"
259b9c8172eSThor Thayer- interrupts : Should be single bit error interrupt.
260f8eb0edeSThor Thayer
261*71eec083SThor ThayerOn-Chip RAM ECC
262*71eec083SThor ThayerRequired Properties:
263*71eec083SThor Thayer- compatible      : Should be "altr,socfpga-s10-ocram-ecc"
264*71eec083SThor Thayer- reg             : Address and size for ECC block registers.
265*71eec083SThor Thayer- altr,ecc-parent : phandle to parent OCRAM node.
266*71eec083SThor Thayer- interrupts      : Should be single bit error interrupt.
267*71eec083SThor Thayer
268*71eec083SThor ThayerEthernet FIFO ECC
269*71eec083SThor ThayerRequired Properties:
270*71eec083SThor Thayer- compatible      : Should be "altr,socfpga-s10-eth-mac-ecc"
271*71eec083SThor Thayer- reg             : Address and size for ECC block registers.
272*71eec083SThor Thayer- altr,ecc-parent : phandle to parent Ethernet node.
273*71eec083SThor Thayer- interrupts      : Should be single bit error interrupt.
274*71eec083SThor Thayer
275*71eec083SThor ThayerNAND FIFO ECC
276*71eec083SThor ThayerRequired Properties:
277*71eec083SThor Thayer- compatible      : Should be "altr,socfpga-s10-nand-ecc"
278*71eec083SThor Thayer- reg             : Address and size for ECC block registers.
279*71eec083SThor Thayer- altr,ecc-parent : phandle to parent NAND node.
280*71eec083SThor Thayer- interrupts      : Should be single bit error interrupt.
281*71eec083SThor Thayer
282*71eec083SThor ThayerDMA FIFO ECC
283*71eec083SThor ThayerRequired Properties:
284*71eec083SThor Thayer- compatible      : Should be "altr,socfpga-s10-dma-ecc"
285*71eec083SThor Thayer- reg             : Address and size for ECC block registers.
286*71eec083SThor Thayer- altr,ecc-parent : phandle to parent DMA node.
287*71eec083SThor Thayer- interrupts      : Should be single bit error interrupt.
288*71eec083SThor Thayer
289*71eec083SThor ThayerUSB FIFO ECC
290*71eec083SThor ThayerRequired Properties:
291*71eec083SThor Thayer- compatible      : Should be "altr,socfpga-s10-usb-ecc"
292*71eec083SThor Thayer- reg             : Address and size for ECC block registers.
293*71eec083SThor Thayer- altr,ecc-parent : phandle to parent USB node.
294*71eec083SThor Thayer- interrupts      : Should be single bit error interrupt.
295*71eec083SThor Thayer
296*71eec083SThor ThayerSDMMC FIFO ECC
297*71eec083SThor ThayerRequired Properties:
298*71eec083SThor Thayer- compatible      : Should be "altr,socfpga-s10-sdmmc-ecc"
299*71eec083SThor Thayer- reg             : Address and size for ECC block registers.
300*71eec083SThor Thayer- altr,ecc-parent : phandle to parent SD/MMC node.
301*71eec083SThor Thayer- interrupts      : Should be single bit error interrupt for port A
302*71eec083SThor Thayer		    and then single bit error interrupt for port B.
303*71eec083SThor Thayer
304f8eb0edeSThor ThayerExample:
305f8eb0edeSThor Thayer
306f8eb0edeSThor Thayer	eccmgr {
307f8eb0edeSThor Thayer		compatible = "altr,socfpga-s10-ecc-manager";
308b9c8172eSThor Thayer		altr,sysmgr-syscon = <&sysmgr>;
309b9c8172eSThor Thayer		#address-cells = <1>;
310b9c8172eSThor Thayer		#size-cells = <1>;
311b9c8172eSThor Thayer		interrupts = <0 15 4>;
312f8eb0edeSThor Thayer		interrupt-controller;
313f8eb0edeSThor Thayer		#interrupt-cells = <2>;
314b9c8172eSThor Thayer		ranges;
315f8eb0edeSThor Thayer
316f8eb0edeSThor Thayer		sdramedac {
317f8eb0edeSThor Thayer			compatible = "altr,sdram-edac-s10";
318b9c8172eSThor Thayer			interrupts = <16 IRQ_TYPE_LEVEL_HIGH>;
319f8eb0edeSThor Thayer		};
320*71eec083SThor Thayer
321*71eec083SThor Thayer		ocram-ecc@ff8cc000 {
322*71eec083SThor Thayer			compatible = "altr,socfpga-s10-ocram-ecc";
323*71eec083SThor Thayer			reg = <ff8cc000 0x100>;
324*71eec083SThor Thayer			altr,ecc-parent = <&ocram>;
325*71eec083SThor Thayer			interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
326*71eec083SThor Thayer		};
327*71eec083SThor Thayer
328*71eec083SThor Thayer		emac0-rx-ecc@ff8c0000 {
329*71eec083SThor Thayer			compatible = "altr,socfpga-s10-eth-mac-ecc";
330*71eec083SThor Thayer			reg = <0xff8c0000 0x100>;
331*71eec083SThor Thayer			altr,ecc-parent = <&gmac0>;
332*71eec083SThor Thayer			interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
333*71eec083SThor Thayer		};
334*71eec083SThor Thayer
335*71eec083SThor Thayer		emac0-tx-ecc@ff8c0400 {
336*71eec083SThor Thayer			compatible = "altr,socfpga-s10-eth-mac-ecc";
337*71eec083SThor Thayer			reg = <0xff8c0400 0x100>;
338*71eec083SThor Thayer			altr,ecc-parent = <&gmac0>;
339*71eec083SThor Thayer			interrupts = <5 IRQ_TYPE_LEVEL_HIGH>'
340*71eec083SThor Thayer		};
341*71eec083SThor Thayer
342*71eec083SThor Thayer		nand-buf-ecc@ff8c8000 {
343*71eec083SThor Thayer			compatible = "altr,socfpga-s10-nand-ecc";
344*71eec083SThor Thayer			reg = <0xff8c8000 0x100>;
345*71eec083SThor Thayer			altr,ecc-parent = <&nand>;
346*71eec083SThor Thayer			interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
347*71eec083SThor Thayer		};
348*71eec083SThor Thayer
349*71eec083SThor Thayer		nand-rd-ecc@ff8c8400 {
350*71eec083SThor Thayer			compatible = "altr,socfpga-s10-nand-ecc";
351*71eec083SThor Thayer			reg = <0xff8c8400 0x100>;
352*71eec083SThor Thayer			altr,ecc-parent = <&nand>;
353*71eec083SThor Thayer			interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
354*71eec083SThor Thayer		};
355*71eec083SThor Thayer
356*71eec083SThor Thayer		nand-wr-ecc@ff8c8800 {
357*71eec083SThor Thayer			compatible = "altr,socfpga-s10-nand-ecc";
358*71eec083SThor Thayer			reg = <0xff8c8800 0x100>;
359*71eec083SThor Thayer			altr,ecc-parent = <&nand>;
360*71eec083SThor Thayer			interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
361*71eec083SThor Thayer		};
362*71eec083SThor Thayer
363*71eec083SThor Thayer		dma-ecc@ff8c9000 {
364*71eec083SThor Thayer			compatible = "altr,socfpga-s10-dma-ecc";
365*71eec083SThor Thayer			reg = <0xff8c9000 0x100>;
366*71eec083SThor Thayer			altr,ecc-parent = <&pdma>;
367*71eec083SThor Thayer			interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
368*71eec083SThor Thayer
369*71eec083SThor Thayer		usb0-ecc@ff8c4000 {
370*71eec083SThor Thayer			compatible = "altr,socfpga-s10-usb-ecc";
371*71eec083SThor Thayer			reg = <0xff8c4000 0x100>;
372*71eec083SThor Thayer			altr,ecc-parent = <&usb0>;
373*71eec083SThor Thayer			interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
374*71eec083SThor Thayer		};
375*71eec083SThor Thayer
376*71eec083SThor Thayer		sdmmc-ecc@ff8c8c00 {
377*71eec083SThor Thayer			compatible = "altr,socfpga-s10-sdmmc-ecc";
378*71eec083SThor Thayer			reg = <0xff8c8c00 0x100>;
379*71eec083SThor Thayer			altr,ecc-parent = <&mmc>;
380*71eec083SThor Thayer			interrupts = <14 IRQ_TYPE_LEVEL_HIGH>,
381*71eec083SThor Thayer				     <15 IRQ_TYPE_LEVEL_HIGH>;
382*71eec083SThor Thayer		};
383f8eb0edeSThor Thayer	};
384