23 #include <linux/module.h>
28 #include <linux/kernel.h>
29 #include <linux/slab.h>
56 static irqreturn_t l3_interrupt_handler(
int irq,
void *_l3)
81 err_src =
__ffs(err_reg);
84 l3_targ_base = base + *(l3_targ[
i] + err_src);
93 l3_targ_inst_name[
i][err_src];
94 WARN(
true,
"L3 standard error: TARGET:%s at address 0x%x\n",
100 writel(clear, l3_targ_base +
106 l3_targ_inst_name[
i][err_src];
108 if (masterid == l3_masters[k].
id)
112 WARN(
true,
"L3 custom error: MASTER:%s TARGET:%s\n",
113 master_name, target_name);
116 writel(clear, l3_targ_base +
141 platform_set_drvdata(pdev, l3);
144 dev_err(&pdev->
dev,
"couldn't find resource 0\n");
158 dev_err(&pdev->
dev,
"couldn't find resource 1\n");
172 dev_err(&pdev->
dev,
"couldn't find resource 2\n");
189 l3_interrupt_handler,
192 pr_crit(
"L3: request_irq failed to register for 0x%x\n",
199 l3_interrupt_handler,
202 pr_crit(
"L3: request_irq failed to register for 0x%x\n",
224 struct omap4_l3 *l3 = platform_get_drvdata(pdev);
236 #if defined(CONFIG_OF)
238 {.compatible =
"ti,omap4-l3-noc", },
243 #define l3_noc_match NULL
247 .probe = omap4_l3_probe,
250 .name =
"omap_l3_noc",
256 static int __init omap4_l3_init(
void)
262 static void __exit omap4_l3_exit(
void)