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