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

2  * Interrupt handling for GE FPGA based PIC
18 #include <linux/interrupt.h>
40 /* Interrupt Controller Interface Registers */
59 * Interrupt Controller Handling
61 * The interrupt controller handles interrupts for most on board interrupts,
69 * 12 RO Real Time Clock Interrupt Status
70 * 11 RO Temperature Interrupt Status
71 * 10 RO Temperature Critical Interrupt Status
72 * 9 RO Ethernet PHY1 Interrupt Status
73 * 8 RO Ethernet PHY3 Interrupt Status
74 * 7 RO PEX8548 Interrupt Status
76 * 5 RO Watchdog 0 Interrupt Status
77 * 4 RO Watchdog 1 Interrupt Status
78 * 3 RO AXIS Message FIFO A Interrupt Status
79 * 2 RO AXIS Message FIFO B Interrupt Status
80 * 1 RO AXIS Message FIFO C Interrupt Status
81 * 0 RO AXIS Message FIFO D Interrupt Status
85 * interrupt could generate interrupts on both output lines!
102 * See if we actually have an interrupt, call generic handling code if in gef_pic_cascade()
110 chip->irq_eoi(&desc->irq_data); in gef_pic_cascade()
117 u32 mask; in gef_pic_mask() local
120 mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); in gef_pic_mask()
121 mask &= ~(1 << hwirq); in gef_pic_mask()
122 out_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0), mask); in gef_pic_mask()
128 /* Don't think we actually have to do anything to ack an interrupt, in gef_pic_mask_ack()
129 * we just need to clear down the devices interrupt and it will go away in gef_pic_mask_ack()
138 u32 mask; in gef_pic_unmask() local
141 mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); in gef_pic_unmask()
142 mask |= (1 << hwirq); in gef_pic_unmask()
143 out_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0), mask); in gef_pic_unmask()
155 /* When an interrupt is being configured, this call allows some flexibility
183 .map = gef_pic_host_map,
195 /* Map the devices registers into memory */ in gef_pic_init()
209 /* Map controller */ in gef_pic_init()
212 printk(KERN_ERR "SBC610: failed to map cascade interrupt"); in gef_pic_init()
227 * This is called when we receive an interrupt with apparently comes from this
228 * chip - check, returning the highest interrupt generated or return 0.
232 u32 cause, mask, active; in gef_pic_get_irq() local
238 mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); in gef_pic_get_irq()
240 active = cause & mask; in gef_pic_get_irq()
243 for (hwirq = GEF_PIC_NUM_IRQS - 1; hwirq > -1; hwirq--) { in gef_pic_get_irq()