regmap: irq: Add support to call client specific pre/post interrupt service
authorLaxman Dewangan <ldewangan@nvidia.com>
Fri, 20 May 2016 15:10:26 +0000 (20:40 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 2 Jun 2016 23:41:15 +0000 (00:41 +0100)
commitccc12561926c0bef9a40865db93b926a0927e93f
tree2034ef3c4af60b796092465a89cec69ff859f0a2
parent1a695a905c18548062509178b98bc91e67510864
regmap: irq: Add support to call client specific pre/post interrupt service

Regmap irq implements the generic interrupt service routine which
is common for most of devices. Some devices, like MAX77620, MAX20024
needs the special handling before and after servicing the interrupt
as generic. For the example, MAX77620 programming guidelines for
interrupt servicing says:
1. When interrupt occurs from PMIC, mask the PMIC interrupt by setting
   GLBLM.
2. Read IRQTOP and service the interrupt accordingly.
3. Once all interrupts has been checked and serviced, the interrupt
   service routine un-masks the hardware interrupt line by clearing
   GLBLM.

The step (2) is implemented in regmap irq as generic routine. For
step (1) and (3), add callbacks from regmap irq to client driver
to handle chip specific configurations.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regmap-irq.c
include/linux/regmap.h