162306a36Sopenharmony_ci* APM X-Gene SoC EDAC node 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciEDAC node is defined to describe on-chip error detection and correction. 462306a36Sopenharmony_ciThe follow error types are supported: 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci memory controller - Memory controller 762306a36Sopenharmony_ci PMD (L1/L2) - Processor module unit (PMD) L1/L2 cache 862306a36Sopenharmony_ci L3 - L3 cache controller 962306a36Sopenharmony_ci SoC - SoC IP's such as Ethernet, SATA, and etc 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciThe following section describes the EDAC DT node binding. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciRequired properties: 1462306a36Sopenharmony_ci- compatible : Shall be "apm,xgene-edac". 1562306a36Sopenharmony_ci- regmap-csw : Regmap of the CPU switch fabric (CSW) resource. 1662306a36Sopenharmony_ci- regmap-mcba : Regmap of the MCB-A (memory bridge) resource. 1762306a36Sopenharmony_ci- regmap-mcbb : Regmap of the MCB-B (memory bridge) resource. 1862306a36Sopenharmony_ci- regmap-efuse : Regmap of the PMD efuse resource. 1962306a36Sopenharmony_ci- regmap-rb : Regmap of the register bus resource. This property 2062306a36Sopenharmony_ci is optional only for compatibility. If the RB 2162306a36Sopenharmony_ci error conditions are not cleared, it will 2262306a36Sopenharmony_ci continuously generate interrupt. 2362306a36Sopenharmony_ci- reg : First resource shall be the CPU bus (PCP) resource. 2462306a36Sopenharmony_ci- interrupts : Interrupt-specifier for MCU, PMD, L3, or SoC error 2562306a36Sopenharmony_ci IRQ(s). 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciRequired properties for memory controller subnode: 2862306a36Sopenharmony_ci- compatible : Shall be "apm,xgene-edac-mc". 2962306a36Sopenharmony_ci- reg : First resource shall be the memory controller unit 3062306a36Sopenharmony_ci (MCU) resource. 3162306a36Sopenharmony_ci- memory-controller : Instance number of the memory controller. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ciRequired properties for PMD subnode: 3462306a36Sopenharmony_ci- compatible : Shall be "apm,xgene-edac-pmd" or 3562306a36Sopenharmony_ci "apm,xgene-edac-pmd-v2". 3662306a36Sopenharmony_ci- reg : First resource shall be the PMD resource. 3762306a36Sopenharmony_ci- pmd-controller : Instance number of the PMD controller. 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciRequired properties for L3 subnode: 4062306a36Sopenharmony_ci- compatible : Shall be "apm,xgene-edac-l3" or 4162306a36Sopenharmony_ci "apm,xgene-edac-l3-v2". 4262306a36Sopenharmony_ci- reg : First resource shall be the L3 EDAC resource. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciRequired properties for SoC subnode: 4562306a36Sopenharmony_ci- compatible : Shall be "apm,xgene-edac-soc-v1" for revision 1 or 4662306a36Sopenharmony_ci "apm,xgene-edac-l3-soc" for general value reporting 4762306a36Sopenharmony_ci only. 4862306a36Sopenharmony_ci- reg : First resource shall be the SoC EDAC resource. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciExample: 5162306a36Sopenharmony_ci csw: csw@7e200000 { 5262306a36Sopenharmony_ci compatible = "apm,xgene-csw", "syscon"; 5362306a36Sopenharmony_ci reg = <0x0 0x7e200000 0x0 0x1000>; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci mcba: mcba@7e700000 { 5762306a36Sopenharmony_ci compatible = "apm,xgene-mcb", "syscon"; 5862306a36Sopenharmony_ci reg = <0x0 0x7e700000 0x0 0x1000>; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci mcbb: mcbb@7e720000 { 6262306a36Sopenharmony_ci compatible = "apm,xgene-mcb", "syscon"; 6362306a36Sopenharmony_ci reg = <0x0 0x7e720000 0x0 0x1000>; 6462306a36Sopenharmony_ci }; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci efuse: efuse@1054a000 { 6762306a36Sopenharmony_ci compatible = "apm,xgene-efuse", "syscon"; 6862306a36Sopenharmony_ci reg = <0x0 0x1054a000 0x0 0x20>; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci rb: rb@7e000000 { 7262306a36Sopenharmony_ci compatible = "apm,xgene-rb", "syscon"; 7362306a36Sopenharmony_ci reg = <0x0 0x7e000000 0x0 0x10>; 7462306a36Sopenharmony_ci }; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci edac@78800000 { 7762306a36Sopenharmony_ci compatible = "apm,xgene-edac"; 7862306a36Sopenharmony_ci #address-cells = <2>; 7962306a36Sopenharmony_ci #size-cells = <2>; 8062306a36Sopenharmony_ci ranges; 8162306a36Sopenharmony_ci regmap-csw = <&csw>; 8262306a36Sopenharmony_ci regmap-mcba = <&mcba>; 8362306a36Sopenharmony_ci regmap-mcbb = <&mcbb>; 8462306a36Sopenharmony_ci regmap-efuse = <&efuse>; 8562306a36Sopenharmony_ci regmap-rb = <&rb>; 8662306a36Sopenharmony_ci reg = <0x0 0x78800000 0x0 0x100>; 8762306a36Sopenharmony_ci interrupts = <0x0 0x20 0x4>, 8862306a36Sopenharmony_ci <0x0 0x21 0x4>, 8962306a36Sopenharmony_ci <0x0 0x27 0x4>; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci edacmc@7e800000 { 9262306a36Sopenharmony_ci compatible = "apm,xgene-edac-mc"; 9362306a36Sopenharmony_ci reg = <0x0 0x7e800000 0x0 0x1000>; 9462306a36Sopenharmony_ci memory-controller = <0>; 9562306a36Sopenharmony_ci }; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci edacpmd@7c000000 { 9862306a36Sopenharmony_ci compatible = "apm,xgene-edac-pmd"; 9962306a36Sopenharmony_ci reg = <0x0 0x7c000000 0x0 0x200000>; 10062306a36Sopenharmony_ci pmd-controller = <0>; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci edacl3@7e600000 { 10462306a36Sopenharmony_ci compatible = "apm,xgene-edac-l3"; 10562306a36Sopenharmony_ci reg = <0x0 0x7e600000 0x0 0x1000>; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci edacsoc@7e930000 { 10962306a36Sopenharmony_ci compatible = "apm,xgene-edac-soc-v1"; 11062306a36Sopenharmony_ci reg = <0x0 0x7e930000 0x0 0x1000>; 11162306a36Sopenharmony_ci }; 11262306a36Sopenharmony_ci }; 113