diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2013-08-20 03:07:25 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2013-08-20 03:07:25 +0200 |
commit | a849212f6e04dff5f977439d91c4642f2cdda775 (patch) | |
tree | 028a67efe151bc604f981149e490fd56c1f5bbbf /include/linux | |
parent | 38c4faaea4ca71c69584ef71cca8d0735d5361c1 (diff) | |
parent | 68622bdfefb969fd7cf710545d7e758a732ab01d (diff) | |
download | lwn-a849212f6e04dff5f977439d91c4642f2cdda775.tar.gz lwn-a849212f6e04dff5f977439d91c4642f2cdda775.zip |
Merge tag 'regmap-irq-ack-mask' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
regmap: Support for acknowledging masked IRQs
Some devices need interrupts to be clear when they are masked otherwise
the interrupt is not deasserted by the mask being set - add support for
this to regmap-irq from Philipp Zabel.
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/regmap.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/regmap.h b/include/linux/regmap.h index 75981d0b57dc..a3c68aad2381 100644 --- a/include/linux/regmap.h +++ b/include/linux/regmap.h @@ -470,6 +470,9 @@ struct regmap_irq { * @ack_base: Base ack address. If zero then the chip is clear on read. * @wake_base: Base address for wake enables. If zero unsupported. * @irq_reg_stride: Stride to use for chips where registers are not contiguous. + * @init_ack_masked: Ack all masked interrupts once during initalization. + * @mask_invert: Inverted mask register: cleared bits are masked out. + * @wake_invert: Inverted wake register: cleared bits are wake enabled. * @runtime_pm: Hold a runtime PM lock on the device when accessing it. * * @num_regs: Number of registers in each control bank. @@ -485,9 +488,10 @@ struct regmap_irq_chip { unsigned int ack_base; unsigned int wake_base; unsigned int irq_reg_stride; - unsigned int mask_invert; - unsigned int wake_invert; - bool runtime_pm; + bool init_ack_masked:1; + bool mask_invert:1; + bool wake_invert:1; + bool runtime_pm:1; int num_regs; |