return of_machine_is_compatible("altr,socfpga-arria10");
 }
 
-static int socfpga_is_s10(void)
-{
-       return of_machine_is_compatible("altr,socfpga-stratix10");
-}
-
 static __init int __maybe_unused
 altr_init_a10_ecc_block(struct device_node *np, u32 irq_mask,
                        u32 ecc_ctrl_en_mask, bool dual_port)
        int irq;
        struct device_node *child, *np;
 
-       if (!socfpga_is_a10() && !socfpga_is_s10())
-               return -ENODEV;
-
        np = of_find_compatible_node(NULL, NULL,
                                     "altr,socfpga-a10-ecc-manager");
        if (!np) {
                if (!of_device_is_available(child))
                        continue;
 
-               if (of_device_is_compatible(child, "altr,socfpga-a10-l2-ecc") || 
-                   of_device_is_compatible(child, "altr,socfpga-a10-ocram-ecc") ||
-                   of_device_is_compatible(child, "altr,socfpga-eth-mac-ecc") ||
-                   of_device_is_compatible(child, "altr,socfpga-nand-ecc") ||
-                   of_device_is_compatible(child, "altr,socfpga-dma-ecc") ||
-                   of_device_is_compatible(child, "altr,socfpga-usb-ecc") ||
-                   of_device_is_compatible(child, "altr,socfpga-qspi-ecc") ||
-#ifdef CONFIG_EDAC_ALTERA_SDRAM
-                   of_device_is_compatible(child, "altr,sdram-edac-s10") ||
-#endif
-                   of_device_is_compatible(child, "altr,socfpga-sdmmc-ecc"))
-
+               if (of_match_node(altr_edac_a10_device_of_match, child))
                        altr_edac_a10_device_add(edac, child);
 
 #ifdef CONFIG_EDAC_ALTERA_SDRAM