diff options
| author | Courtney Cavin <courtney.cavin@sonymobile.com> | 2015-07-30 13:53:54 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-08-05 15:27:09 -0400 |
| commit | 60be42306f838d9231398bdb7d4ff3451ae13601 (patch) | |
| tree | 18f61a90bc4694cac6ab5e43b5d1364fefde6229 /drivers/spmi | |
| parent | a9fce374815d8ab94a3e6259802a944e2cc21408 (diff) | |
spmi: pmic-arb: add support for irq_get_irqchip_state
Reviewed-by: Andy Gross <agross@codeaurora.org>
Signed-off-by: Courtney Cavin <courtney.cavin@sonymobile.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Tested-by: Tim Bird <tim.bird@sonymobile.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/spmi')
| -rw-r--r-- | drivers/spmi/spmi-pmic-arb.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index d7119db49cfe..a4d8c043a710 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c | |||
| @@ -575,6 +575,22 @@ static int qpnpint_irq_set_type(struct irq_data *d, unsigned int flow_type) | |||
| 575 | return 0; | 575 | return 0; |
| 576 | } | 576 | } |
| 577 | 577 | ||
| 578 | static int qpnpint_get_irqchip_state(struct irq_data *d, | ||
| 579 | enum irqchip_irq_state which, | ||
| 580 | bool *state) | ||
| 581 | { | ||
| 582 | u8 irq = d->hwirq >> 8; | ||
| 583 | u8 status = 0; | ||
| 584 | |||
| 585 | if (which != IRQCHIP_STATE_LINE_LEVEL) | ||
| 586 | return -EINVAL; | ||
| 587 | |||
| 588 | qpnpint_spmi_read(d, QPNPINT_REG_RT_STS, &status, 1); | ||
| 589 | *state = !!(status & BIT(irq)); | ||
| 590 | |||
| 591 | return 0; | ||
| 592 | } | ||
| 593 | |||
| 578 | static struct irq_chip pmic_arb_irqchip = { | 594 | static struct irq_chip pmic_arb_irqchip = { |
| 579 | .name = "pmic_arb", | 595 | .name = "pmic_arb", |
| 580 | .irq_enable = qpnpint_irq_enable, | 596 | .irq_enable = qpnpint_irq_enable, |
| @@ -582,6 +598,7 @@ static struct irq_chip pmic_arb_irqchip = { | |||
| 582 | .irq_mask = qpnpint_irq_mask, | 598 | .irq_mask = qpnpint_irq_mask, |
| 583 | .irq_unmask = qpnpint_irq_unmask, | 599 | .irq_unmask = qpnpint_irq_unmask, |
| 584 | .irq_set_type = qpnpint_irq_set_type, | 600 | .irq_set_type = qpnpint_irq_set_type, |
| 601 | .irq_get_irqchip_state = qpnpint_get_irqchip_state, | ||
| 585 | .flags = IRQCHIP_MASK_ON_SUSPEND | 602 | .flags = IRQCHIP_MASK_ON_SUSPEND |
| 586 | | IRQCHIP_SKIP_SET_WAKE, | 603 | | IRQCHIP_SKIP_SET_WAKE, |
| 587 | }; | 604 | }; |
