On 10/11/2022 08:02, Marc Zyngier wrote:
On Wed, 09 Nov 2022 16:53:28 +0000, Richard Fitzgerald rf@opensource.cirrus.com wrote:
The Cirrus Logic CS48L31/32/33 audio codecs contain a programmable interrupt controller with a variety of interrupt sources, including GPIOs that can be used as interrupt inputs.
This driver provides the handling for the interrupt controller. As the codec is accessed via regmap, the generic regmap_irq functionality is used to do most of the work.
I cannot spot a shred of interrupt controller code in there. This
It is providing support for handling an interrupt controller so that other drivers can bind to those interrupts. It's just that regmap provides a lot of generic implementation for SPI-connected interrupt controllers so we don't need to open-code all that in the irqchip driver.
belongs IMO to the MFD code.
We did once put interrupt support in MFD for an older product line but the MFD maintainer doesn't like the MFD being a dumping-ground for random other functionality that have their own subsystems.
It is also a direct copy of the existing irq-madera.c code, duplicated for no obvious reason.
It's not a duplicate. The register map of this device is different (different addressing, 32-bit registers not 16-bit)
M.