16 #include <linux/types.h>
17 #include <linux/kernel.h>
18 #include <linux/ctype.h>
27 #define SR_CLR_SB_ECC_INTR 0x0
28 #define SR_CLR_DB_ECC_INTR 0x4
41 if (irq == drvdata->
sb_irq) {
45 if (irq == drvdata->
db_irq) {
61 1,
"L", 1, 2,
NULL, 0, 0);
67 platform_set_drvdata(pdev, dci);
74 dev_err(&pdev->
dev,
"Unable to get mem resource\n");
80 resource_size(r), dev_name(&pdev->
dev))) {
81 dev_err(&pdev->
dev,
"Error while requesting mem region\n");
94 res = devm_request_irq(&pdev->
dev, drvdata->
db_irq,
95 highbank_l2_err_handler,
96 0, dev_name(&pdev->
dev), dci);
101 res = devm_request_irq(&pdev->
dev, drvdata->
sb_irq,
102 highbank_l2_err_handler,
103 0, dev_name(&pdev->
dev), dci);
130 static const struct of_device_id hb_l2_err_of_match[] = {
131 { .compatible =
"calxeda,hb-sregs-l2-ecc", },
137 .probe = highbank_l2_err_probe,
138 .remove = highbank_l2_err_remove,
140 .name =
"hb_l2_edac",
141 .of_match_table = hb_l2_err_of_match,