• Home
  • Raw
  • Download

Lines Matching refs:irq

19 int pcf50633_register_irq(struct pcf50633 *pcf, int irq,  in pcf50633_register_irq()  argument
22 if (irq < 0 || irq >= PCF50633_NUM_IRQ || !handler) in pcf50633_register_irq()
25 if (WARN_ON(pcf->irq_handler[irq].handler)) in pcf50633_register_irq()
29 pcf->irq_handler[irq].handler = handler; in pcf50633_register_irq()
30 pcf->irq_handler[irq].data = data; in pcf50633_register_irq()
37 int pcf50633_free_irq(struct pcf50633 *pcf, int irq) in pcf50633_free_irq() argument
39 if (irq < 0 || irq >= PCF50633_NUM_IRQ) in pcf50633_free_irq()
43 pcf->irq_handler[irq].handler = NULL; in pcf50633_free_irq()
50 static int __pcf50633_irq_mask_set(struct pcf50633 *pcf, int irq, u8 mask) in __pcf50633_irq_mask_set() argument
55 idx = irq >> 3; in __pcf50633_irq_mask_set()
57 bit = 1 << (irq & 0x07); in __pcf50633_irq_mask_set()
73 int pcf50633_irq_mask(struct pcf50633 *pcf, int irq) in pcf50633_irq_mask() argument
75 dev_dbg(pcf->dev, "Masking IRQ %d\n", irq); in pcf50633_irq_mask()
77 return __pcf50633_irq_mask_set(pcf, irq, 1); in pcf50633_irq_mask()
81 int pcf50633_irq_unmask(struct pcf50633 *pcf, int irq) in pcf50633_irq_unmask() argument
83 dev_dbg(pcf->dev, "Unmasking IRQ %d\n", irq); in pcf50633_irq_unmask()
85 return __pcf50633_irq_mask_set(pcf, irq, 0); in pcf50633_irq_unmask()
89 int pcf50633_irq_mask_get(struct pcf50633 *pcf, int irq) in pcf50633_irq_mask_get() argument
93 reg = irq >> 3; in pcf50633_irq_mask_get()
94 bits = 1 << (irq & 0x07); in pcf50633_irq_mask_get()
100 static void pcf50633_irq_call_handler(struct pcf50633 *pcf, int irq) in pcf50633_irq_call_handler() argument
102 if (pcf->irq_handler[irq].handler) in pcf50633_irq_call_handler()
103 pcf->irq_handler[irq].handler(irq, pcf->irq_handler[irq].data); in pcf50633_irq_call_handler()
109 static irqreturn_t pcf50633_irq(int irq, void *data) in pcf50633_irq() argument
232 disable_irq(pcf->irq); in pcf50633_irq_suspend()
271 enable_irq(pcf->irq); in pcf50633_irq_resume()
278 int pcf50633_irq_init(struct pcf50633 *pcf, int irq) in pcf50633_irq_init() argument
282 pcf->irq = irq; in pcf50633_irq_init()
292 ret = request_threaded_irq(irq, NULL, pcf50633_irq, in pcf50633_irq_init()
299 if (enable_irq_wake(irq) < 0) in pcf50633_irq_init()
301 "in this hardware revision", irq); in pcf50633_irq_init()
308 free_irq(pcf->irq, pcf); in pcf50633_irq_free()