Lines Matching +full:interrupt +full:- +full:map +full:- +full:mask

2  * Interrupt handling for GE FPGA based PIC
17 #include <linux/interrupt.h>
38 /* Interrupt Controller Interface Registers */
57 * Interrupt Controller Handling
59 * The interrupt controller handles interrupts for most on board interrupts,
67 * 12 RO Real Time Clock Interrupt Status
68 * 11 RO Temperature Interrupt Status
69 * 10 RO Temperature Critical Interrupt Status
70 * 9 RO Ethernet PHY1 Interrupt Status
71 * 8 RO Ethernet PHY3 Interrupt Status
72 * 7 RO PEX8548 Interrupt Status
74 * 5 RO Watchdog 0 Interrupt Status
75 * 4 RO Watchdog 1 Interrupt Status
76 * 3 RO AXIS Message FIFO A Interrupt Status
77 * 2 RO AXIS Message FIFO B Interrupt Status
78 * 1 RO AXIS Message FIFO C Interrupt Status
79 * 0 RO AXIS Message FIFO D Interrupt Status
83 * interrupt could generate interrupts on both output lines!
100 * See if we actually have an interrupt, call generic handling code if in gef_pic_cascade()
108 chip->irq_eoi(&desc->irq_data); in gef_pic_cascade()
115 u32 mask; in gef_pic_mask() local
118 mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); in gef_pic_mask()
119 mask &= ~(1 << hwirq); in gef_pic_mask()
120 out_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0), mask); in gef_pic_mask()
126 /* Don't think we actually have to do anything to ack an interrupt, in gef_pic_mask_ack()
127 * we just need to clear down the devices interrupt and it will go away in gef_pic_mask_ack()
136 u32 mask; in gef_pic_unmask() local
139 mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); in gef_pic_unmask()
140 mask |= (1 << hwirq); in gef_pic_unmask()
141 out_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0), mask); in gef_pic_unmask()
153 /* When an interrupt is being configured, this call allows some flexibilty
181 .map = gef_pic_host_map,
193 /* Map the devices registers into memory */ in gef_pic_init()
207 /* Map controller */ in gef_pic_init()
210 printk(KERN_ERR "SBC610: failed to map cascade interrupt"); in gef_pic_init()
225 * This is called when we receive an interrupt with apparently comes from this
226 * chip - check, returning the highest interrupt generated or return 0.
230 u32 cause, mask, active; in gef_pic_get_irq() local
236 mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); in gef_pic_get_irq()
238 active = cause & mask; in gef_pic_get_irq()
241 for (hwirq = GEF_PIC_NUM_IRQS - 1; hwirq > -1; hwirq--) { in gef_pic_get_irq()