Lines Matching refs:irq

24 int pcf50633_register_irq(struct pcf50633 *pcf, int irq,  in pcf50633_register_irq()  argument
27 if (irq < 0 || irq >= PCF50633_NUM_IRQ || !handler) in pcf50633_register_irq()
30 if (WARN_ON(pcf->irq_handler[irq].handler)) in pcf50633_register_irq()
34 pcf->irq_handler[irq].handler = handler; in pcf50633_register_irq()
35 pcf->irq_handler[irq].data = data; in pcf50633_register_irq()
42 int pcf50633_free_irq(struct pcf50633 *pcf, int irq) in pcf50633_free_irq() argument
44 if (irq < 0 || irq >= PCF50633_NUM_IRQ) in pcf50633_free_irq()
48 pcf->irq_handler[irq].handler = NULL; in pcf50633_free_irq()
55 static int __pcf50633_irq_mask_set(struct pcf50633 *pcf, int irq, u8 mask) in __pcf50633_irq_mask_set() argument
60 idx = irq >> 3; in __pcf50633_irq_mask_set()
62 bit = 1 << (irq & 0x07); in __pcf50633_irq_mask_set()
78 int pcf50633_irq_mask(struct pcf50633 *pcf, int irq) in pcf50633_irq_mask() argument
80 dev_dbg(pcf->dev, "Masking IRQ %d\n", irq); in pcf50633_irq_mask()
82 return __pcf50633_irq_mask_set(pcf, irq, 1); in pcf50633_irq_mask()
86 int pcf50633_irq_unmask(struct pcf50633 *pcf, int irq) in pcf50633_irq_unmask() argument
88 dev_dbg(pcf->dev, "Unmasking IRQ %d\n", irq); in pcf50633_irq_unmask()
90 return __pcf50633_irq_mask_set(pcf, irq, 0); in pcf50633_irq_unmask()
94 int pcf50633_irq_mask_get(struct pcf50633 *pcf, int irq) in pcf50633_irq_mask_get() argument
98 reg = irq >> 3; in pcf50633_irq_mask_get()
99 bits = 1 << (irq & 0x07); in pcf50633_irq_mask_get()
105 static void pcf50633_irq_call_handler(struct pcf50633 *pcf, int irq) in pcf50633_irq_call_handler() argument
107 if (pcf->irq_handler[irq].handler) in pcf50633_irq_call_handler()
108 pcf->irq_handler[irq].handler(irq, pcf->irq_handler[irq].data); in pcf50633_irq_call_handler()
114 static irqreturn_t pcf50633_irq(int irq, void *data) in pcf50633_irq() argument
237 disable_irq(pcf->irq); in pcf50633_irq_suspend()
276 enable_irq(pcf->irq); in pcf50633_irq_resume()
283 int pcf50633_irq_init(struct pcf50633 *pcf, int irq) in pcf50633_irq_init() argument
287 pcf->irq = irq; in pcf50633_irq_init()
297 ret = request_threaded_irq(irq, NULL, pcf50633_irq, in pcf50633_irq_init()
304 if (enable_irq_wake(irq) < 0) in pcf50633_irq_init()
306 "in this hardware revision", irq); in pcf50633_irq_init()
313 free_irq(pcf->irq, pcf); in pcf50633_irq_free()