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