Lines Matching full:l3

3  * OMAP3XXX L3 Interconnect Driver
130 * @l3: struct omap3_l3 *
140 static irqreturn_t omap3_l3_block_irq(struct omap3_l3 *l3, in omap3_l3_block_irq() argument
159 struct omap3_l3 *l3 = _l3; in omap3_l3_app_irq() local
168 int_type = irq == l3->app_irq ? L3_APPLICATION_ERROR : L3_DEBUG_ERROR; in omap3_l3_app_irq()
170 status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_0); in omap3_l3_app_irq()
179 status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_1); in omap3_l3_app_irq()
186 base = l3->rt + omap3_l3_bases[int_type][err_source]; in omap3_l3_app_irq()
190 ret |= omap3_l3_block_irq(l3, error, error_addr); in omap3_l3_app_irq()
207 .compatible = "ti,omap3-l3-smx",
216 struct omap3_l3 *l3; in omap3_l3_probe() local
220 l3 = kzalloc(sizeof(*l3), GFP_KERNEL); in omap3_l3_probe()
221 if (!l3) in omap3_l3_probe()
224 platform_set_drvdata(pdev, l3); in omap3_l3_probe()
232 l3->rt = ioremap(res->start, resource_size(res)); in omap3_l3_probe()
233 if (!l3->rt) { in omap3_l3_probe()
239 l3->debug_irq = platform_get_irq(pdev, 0); in omap3_l3_probe()
240 ret = request_irq(l3->debug_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING, in omap3_l3_probe()
241 "l3-debug-irq", l3); in omap3_l3_probe()
247 l3->app_irq = platform_get_irq(pdev, 1); in omap3_l3_probe()
248 ret = request_irq(l3->app_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING, in omap3_l3_probe()
249 "l3-app-irq", l3); in omap3_l3_probe()
258 free_irq(l3->debug_irq, l3); in omap3_l3_probe()
260 iounmap(l3->rt); in omap3_l3_probe()
262 kfree(l3); in omap3_l3_probe()
268 struct omap3_l3 *l3 = platform_get_drvdata(pdev); in omap3_l3_remove() local
270 free_irq(l3->app_irq, l3); in omap3_l3_remove()
271 free_irq(l3->debug_irq, l3); in omap3_l3_remove()
272 iounmap(l3->rt); in omap3_l3_remove()
273 kfree(l3); in omap3_l3_remove()
302 MODULE_DESCRIPTION("OMAP3XXX L3 Interconnect Driver");