aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/twl6030-irq.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
index 776402566c9e..f94a04ca1d37 100644
--- a/drivers/mfd/twl6030-irq.c
+++ b/drivers/mfd/twl6030-irq.c
@@ -187,6 +187,13 @@ static inline void activate_irq(int irq)
187#endif 187#endif
188} 188}
189 189
190int twl6030_irq_set_wake(struct irq_data *d, unsigned int on)
191{
192 int twl_irq = (int)irq_get_chip_data(d->irq);
193
194 return irq_set_irq_wake(twl_irq, on);
195}
196
190/*----------------------------------------------------------------------*/ 197/*----------------------------------------------------------------------*/
191 198
192static unsigned twl6030_irq_next; 199static unsigned twl6030_irq_next;
@@ -318,10 +325,12 @@ int twl6030_init_irq(int irq_num, unsigned irq_base, unsigned irq_end)
318 twl6030_irq_chip = dummy_irq_chip; 325 twl6030_irq_chip = dummy_irq_chip;
319 twl6030_irq_chip.name = "twl6030"; 326 twl6030_irq_chip.name = "twl6030";
320 twl6030_irq_chip.irq_set_type = NULL; 327 twl6030_irq_chip.irq_set_type = NULL;
328 twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake;
321 329
322 for (i = irq_base; i < irq_end; i++) { 330 for (i = irq_base; i < irq_end; i++) {
323 irq_set_chip_and_handler(i, &twl6030_irq_chip, 331 irq_set_chip_and_handler(i, &twl6030_irq_chip,
324 handle_simple_irq); 332 handle_simple_irq);
333 irq_set_chip_data(i, (void *)irq_num);
325 activate_irq(i); 334 activate_irq(i);
326 } 335 }
327 336