Skip to content

Commit

Permalink
mfd: Set twl6030 irq_wake infrastructure up
Browse files Browse the repository at this point in the history
TWL6030 devices have an interrupt line which is connected to
application processor like OMAP. These devices support multiple features
such as MMC card detect, USB cable detect, RTC interrupt, etc. that must
wake up the application processor.

With this change, TWL6030 client drivers can make use of
irq_wake() if the wakeup is desirable on it's irq events.

Signed-off-by: Santosh Shilimkar <[email protected]>
Signed-off-by: Samuel Ortiz <[email protected]>
  • Loading branch information
Santosh Shilimkar authored and Samuel Ortiz committed Oct 24, 2011
1 parent 5da721c commit 49dcd07
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions drivers/mfd/twl6030-irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,13 @@ static inline void activate_irq(int irq)
#endif
}

int twl6030_irq_set_wake(struct irq_data *d, unsigned int on)
{
int twl_irq = (int)irq_get_chip_data(d->irq);

return irq_set_irq_wake(twl_irq, on);
}

/*----------------------------------------------------------------------*/

static unsigned twl6030_irq_next;
Expand Down Expand Up @@ -318,10 +325,12 @@ int twl6030_init_irq(int irq_num, unsigned irq_base, unsigned irq_end)
twl6030_irq_chip = dummy_irq_chip;
twl6030_irq_chip.name = "twl6030";
twl6030_irq_chip.irq_set_type = NULL;
twl6030_irq_chip.irq_set_wake = twl6030_irq_set_wake;

for (i = irq_base; i < irq_end; i++) {
irq_set_chip_and_handler(i, &twl6030_irq_chip,
handle_simple_irq);
irq_set_chip_data(i, (void *)irq_num);
activate_irq(i);
}

Expand Down

0 comments on commit 49dcd07

Please sign in to comment.