This series extends the Amazon Annapurna Labs Fabric Interrupt Controller
(FIC) driver to support newer hardware revisions and configurations found
on later Annapurna Labs SoCs, plus a couple of smaller fixes.
FIC v2 and later add two interrupt groups alongside the existing legacy
group - an "error" group and a "fatal" group - each described by its own
device tree node and matched by a distinct compatible string. On some
platforms several FIC instances also share a single parent GIC SPI, which
the driver did not previously support.
The series is organised as follows:
1. Use the full node name in log messages and raise the successful-init
message to pr_info, so each FIC instance is identifiable at boot.
2. Request the parent interrupt as shared (IRQF_SHARED) instead of a
chained handler, so multiple FIC instances can share one GIC SPI.
3. Extend the binding with the amazon,al-fic-error and amazon,al-fic-fatal
compatibles for the new groups.
4. Add FIC v2 support: version detection, the error/fatal groups, and a
mask_cache workaround for a v2 erratum where the error and fatal mask
registers always read back as 0.
5. Add FIC v3 support. v3 shares v2's group layout but fixes the mask
read-back erratum, so the v2 workaround is deliberately not applied.
6. Add an irq_set_affinity callback so drivers that call
irq_set_affinity() (which fails with -EINVAL when the irqchip has no
such callback) can probe when routed through a FIC instance.
Eliav Farber (6):
irqchip/al-fic: use full node name and raise init log level
irqchip/al-fic: switch to shared parent interrupt
dt-bindings: interrupt-controller: amazon,al-fic: add error/fatal
groups
irqchip/al-fic: add support for FIC v2
irqchip/al-fic: add support for FIC v3
irqchip/al-fic: add irq_set_affinity callback
.../interrupt-controller/amazon,al-fic.yaml | 5 +-
drivers/irqchip/irq-al-fic.c | 176 +++++++++++++++---
2 files changed, 150 insertions(+), 31 deletions(-)
base-commit: 6828157ab3e96cd1c957b78d995c5e508a2eb2c2
--
2.47.3