[PATCH 0/1] regmap-irq: support chips with separate mask bits for irq edges

From: Bartosz Golaszewski
Date: Tue Dec 04 2018 - 13:16:00 EST


From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>

I'm working on an MFD driver (and its accompanying drivers in various
subsystems) for a simple low-power PMIC which exposes a single GPIO
line. It has a couple of interrupts all bunched together in two
registers and all of them but the one for GPIO are controlled by
single mask bits. The GPIO interrupt is configured with two separate
bits - one for rising edge and one for falling edge interrupts.

Since the device is relatively simple I would really like to avoid
having to write the entire irq_chip boiler code if regmap_irq_chip
would be perfect in this case.

We already have the type mask fields in struct regmap_irq. This
patch proposes a simple change that reuses them. If the mask_base
and type_base offsets are the same, the enable callback will
use the bits written to the type buffer by the set_type callback
to only enable the requested edge interrupt.

Bartosz Golaszewski (1):
regmap: irq: handle HW using separate mask bits for edges

drivers/base/regmap/regmap-irq.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

--
2.19.1