Lines Matching full:l3

3  * OMAP3XXX L3 Interconnect Driver
129 * @l3: struct omap3_l3 *
139 static irqreturn_t omap3_l3_block_irq(struct omap3_l3 *l3, in omap3_l3_block_irq() argument
158 struct omap3_l3 *l3 = _l3; in omap3_l3_app_irq() local
167 int_type = irq == l3->app_irq ? L3_APPLICATION_ERROR : L3_DEBUG_ERROR; in omap3_l3_app_irq()
169 status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_0); in omap3_l3_app_irq()
171 status = omap3_l3_readll(l3->rt, L3_SI_FLAG_STATUS_1); in omap3_l3_app_irq()
176 base = l3->rt + omap3_l3_bases[int_type][err_source]; in omap3_l3_app_irq()
180 ret |= omap3_l3_block_irq(l3, error, error_addr); in omap3_l3_app_irq()
205 .compatible = "ti,omap3-l3-smx",
214 struct omap3_l3 *l3; in omap3_l3_probe() local
218 l3 = kzalloc(sizeof(*l3), GFP_KERNEL); in omap3_l3_probe()
219 if (!l3) in omap3_l3_probe()
222 platform_set_drvdata(pdev, l3); in omap3_l3_probe()
230 l3->rt = ioremap(res->start, resource_size(res)); in omap3_l3_probe()
231 if (!l3->rt) { in omap3_l3_probe()
237 l3->debug_irq = platform_get_irq(pdev, 0); in omap3_l3_probe()
238 ret = request_irq(l3->debug_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING, in omap3_l3_probe()
239 "l3-debug-irq", l3); in omap3_l3_probe()
245 l3->app_irq = platform_get_irq(pdev, 1); in omap3_l3_probe()
246 ret = request_irq(l3->app_irq, omap3_l3_app_irq, IRQF_TRIGGER_RISING, in omap3_l3_probe()
247 "l3-app-irq", l3); in omap3_l3_probe()
256 free_irq(l3->debug_irq, l3); in omap3_l3_probe()
258 iounmap(l3->rt); in omap3_l3_probe()
260 kfree(l3); in omap3_l3_probe()
266 struct omap3_l3 *l3 = platform_get_drvdata(pdev); in omap3_l3_remove() local
268 free_irq(l3->app_irq, l3); in omap3_l3_remove()
269 free_irq(l3->debug_irq, l3); in omap3_l3_remove()
270 iounmap(l3->rt); in omap3_l3_remove()
271 kfree(l3); in omap3_l3_remove()
298 MODULE_DESCRIPTION("OMAP3XXX L3 Interconnect Driver");