summaryrefslogtreecommitdiff
path: root/include/linux/regmap.h
diff options
context:
space:
mode:
authorAidan MacDonald <aidanmacdonald.0x0@gmail.com>2022-06-24 00:14:12 +0300
committerMark Brown <broonie@kernel.org>2022-06-29 20:13:09 +0300
commit610fdd668e6af48fcae7908161d14eee3a95ec92 (patch)
tree2385b94eab55b6d3c215a43d401778f48b0e08dd /include/linux/regmap.h
parentcffc2be30288786e242bceb9fedde4dfe6ce442d (diff)
downloadlinux-610fdd668e6af48fcae7908161d14eee3a95ec92.tar.xz
regmap-irq: Remove an unnecessary restriction on type_in_mask
Check types_supported instead of checking type_rising/falling_val when using type_in_mask interrupts. This makes the intent clearer and allows a type_in_mask irq to support level or edge triggers, rather than only edge triggers. Update the documentation and comments to reflect the new behavior. This shouldn't affect existing drivers, because if they didn't set types_supported properly the type buffer wouldn't be updated. Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com> Link: https://lore.kernel.org/r/20220623211420.918875-5-aidanmacdonald.0x0@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/linux/regmap.h')
-rw-r--r--include/linux/regmap.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index 58db2206f193..b404c59b3b20 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -1484,9 +1484,11 @@ struct regmap_irq_sub_irq_map {
* @clear_ack: Use this to set 1 and 0 or vice-versa to clear interrupts.
* @wake_invert: Inverted wake register: cleared bits are wake enabled.
* @type_invert: Invert the type flags.
- * @type_in_mask: Use the mask registers for controlling irq type. For
- * interrupts defining type_rising/falling_mask use mask_base
- * for edge configuration and never update bits in type_base.
+ * @type_in_mask: Use the mask registers for controlling irq type. Use this if
+ * the hardware provides separate bits for rising/falling edge
+ * or low/high level interrupts and they should be combined into
+ * a single logical interrupt. Use &struct regmap_irq_type data
+ * to define the mask bit for each irq type.
* @clear_on_unmask: For chips with interrupts cleared on read: read the status
* registers before unmasking interrupts to clear any bits
* set when they were masked.