aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorCharles Keepax <ckeepax@opensource.wolfsonmicro.com>2014-09-01 10:29:11 -0400
committerLee Jones <lee.jones@linaro.org>2014-09-26 03:15:54 -0400
commitc38715fed8f51a8fba4a15f86732ad885f073d78 (patch)
tree5b9c911da4f71c4d65ef84bd36c1cdb28413ad72 /drivers/mfd
parentdc5193cc4a1e0103fe852acb21c588ea544697c6 (diff)
mfd: arizona: Propagate irq_wake through to parent IRQ
If one of the internal Arizona IRQs is set as a wake source this needs to be propogated back to the actual IRQ line that the Arizona device is attached to. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/arizona-irq.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index 9133d519b020..5e2f450a6176 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -152,10 +152,18 @@ static void arizona_irq_disable(struct irq_data *data)
152{ 152{
153} 153}
154 154
155static int arizona_irq_set_wake(struct irq_data *data, unsigned int on)
156{
157 struct arizona *arizona = irq_data_get_irq_chip_data(data);
158
159 return irq_set_irq_wake(arizona->irq, on);
160}
161
155static struct irq_chip arizona_irq_chip = { 162static struct irq_chip arizona_irq_chip = {
156 .name = "arizona", 163 .name = "arizona",
157 .irq_disable = arizona_irq_disable, 164 .irq_disable = arizona_irq_disable,
158 .irq_enable = arizona_irq_enable, 165 .irq_enable = arizona_irq_enable,
166 .irq_set_wake = arizona_irq_set_wake,
159}; 167};
160 168
161static int arizona_irq_map(struct irq_domain *h, unsigned int virq, 169static int arizona_irq_map(struct irq_domain *h, unsigned int virq,