Lines Matching +full:edge +full:- +full:sensitive

1 // SPDX-License-Identifier: GPL-2.0
42 #define LEON_IMASK(cpu) (&leon3_irqctrl_regs->mask[cpu])
43 #define LEON_IACK (&leon3_irqctrl_regs->iclear)
51 return LEON3_BYPASS_LOAD_PA(&leon3_irqctrl_regs->intid[cpu]) & 0x1f; in leon_eirq_get()
63 if ((eirq & 0x10) && p && p->irq) /* bit4 tells if IRQ happened */ in leon_handle_ext_irq()
64 generic_handle_irq(p->irq); in leon_handle_ext_irq()
81 * Unmask the Extended IRQ, the IRQs routed through the Ext-IRQ in leon_eirq_setup()
82 * controller have a mask-bit of their own, so this is safe. in leon_eirq_setup()
126 mask = (unsigned long)data->chip_data; in leon_set_affinity()
149 mask = (unsigned long)data->chip_data; in leon_unmask_irq()
162 mask = (unsigned long)data->chip_data; in leon_mask_irq()
172 irq_link(data->irq); in leon_startup_irq()
180 irq_unlink(data->irq); in leon_shutdown_irq()
183 /* Used by external level sensitive IRQ handlers on the LEON: ACK IRQ ctrl */
186 unsigned long mask = (unsigned long)data->chip_data; in leon_eoi_irq()
203 * Build a LEON IRQ for the edge triggered LEON IRQ controller:
204 * Edge (normal) IRQ - handle_simple_irq, ack=DON'T-CARE, never ack
205 * Level IRQ (PCI|Level-GPIO) - handle_fasteoi_irq, ack=1, ack after ISR
206 * Per-CPU Edge - handle_percpu_irq, ack=0
229 if (!desc || !desc->handle_irq || desc->handle_irq == handle_bad_irq) { in leon_build_device_irq()
242 return leon_build_device_irq(real_irq, handle_simple_irq, "edge", 0); in _leon_build_device_irq()
264 rld = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].rld); in leon_cycles_offset()
265 val = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].val); in leon_cycles_offset()
266 ctrl = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl); in leon_cycles_offset()
268 val = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].val); in leon_cycles_offset()
269 off = 2 * rld - val; in leon_cycles_offset()
271 off = rld - val; in leon_cycles_offset()
293 if (ce->event_handler) in leon_percpu_timer_ce_interrupt()
294 ce->event_handler(ce); in leon_percpu_timer_ce_interrupt()
334 amba_system_id = *(unsigned long *)pp->value; in leon_init_timers()
346 leon3_irqctrl_regs = *(struct leon3_irqctrl_regs_map **)pp->value; in leon_init_timers()
362 ampopts = *(int *)pp->value; in leon_init_timers()
371 /* Select Timer-Instance on Timer Core. Default is zero */ in leon_init_timers()
377 pp->value; in leon_init_timers()
380 leon3_gptimer_irq = *(unsigned int *)pp->value; in leon_init_timers()
385 ctrl = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl); in leon_init_timers()
386 LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl, in leon_init_timers()
388 ctrl = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl); in leon_init_timers()
395 LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].val, 0); in leon_init_timers()
396 LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].rld, in leon_init_timers()
397 (((1000000 / HZ) - 1))); in leon_init_timers()
399 &leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl, 0); in leon_init_timers()
406 * same IRQ Controller, and for non-SMP only one IRQCTRL is in leon_init_timers()
410 icsel = LEON3_BYPASS_LOAD_PA(&leon3_irqctrl_regs->icsel[boot_cpu_id/8]); in leon_init_timers()
411 icsel = (icsel >> ((7 - (boot_cpu_id&0x7)) * 4)) & 0xf; in leon_init_timers()
414 /* Mask all IRQs on boot-cpu IRQ controller */ in leon_init_timers()
415 LEON3_BYPASS_STORE_PA(&leon3_irqctrl_regs->mask[boot_cpu_id], 0); in leon_init_timers()
418 eirq = (LEON3_BYPASS_LOAD_PA(&leon3_irqctrl_regs->mpstatus) in leon_init_timers()
434 local_ops->cache_all(); in leon_init_timers()
439 config = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->config); in leon_init_timers()
446 /* Install per-cpu IRQ handler for broadcasted ticker */ in leon_init_timers()
448 "per-cpu", 0); in leon_init_timers()
459 LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl, in leon_init_timers()
475 ctrl = LEON3_BYPASS_LOAD_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl); in leon_clear_clock_irq()
476 LEON3_BYPASS_STORE_PA(&leon3_gptimer_regs->e[leon3_gptimer_idx].ctrl, in leon_clear_clock_irq()