This series adds support for the SCU (System Control Unit) interrupt
controllers on the Aspeed AST2700 SoC.
AST2700 follows the same multi-instance SCU interrupt controller design
as AST2600, with four independent interrupt domains (scu-ic0 to 3).
However, unlike previous SoCs that use a single register for both enable
and status bits, AST2700 splits them into separate IER (Interrupt Enable)
and ISR (Interrupt Status) registers.
To support this, the driver is refactored to use a variant-based init
structure, selected by compatible string. Register access is also
converted from regmap to MMIO (via `of_iomap()`), and a per-variant
IRQ handler is used depending on register layout.
v3:
- irq-aspeed-scu-ic.c
- update for bracket-rules.
- update TAB not spaces to align.
- remove stray TAB.
- update end up aligned.
- add missing _ier, _isr in SCU_VARIANT.
- add two different mask/unmask/ functions for split and combined.
v2:
- Refactor SCU IC driver to support variant-based initialization
- Add AST2700 compatible strings to YAML and header files
- Extend DT bindings in mfd and irqchip for AST2700
- Add IRQ handler logic for separate IER/ISR layout
Ryan Chen (4):
irqchip/aspeed-scu-ic: Refactor driver to support variant-based
initialization
dt-bindings: mfd: aspeed: Add AST2700 SCU compatibles
dt-bindings: interrupt-controller: aspeed: Add AST2700 SCU IC
compatibles
irqchip/aspeed-scu-ic: Add support AST2700 SCU interrupt controllers
.../aspeed,ast2500-scu-ic.yaml | 6 +-
.../bindings/mfd/aspeed,ast2x00-scu.yaml | 4 +
drivers/irqchip/irq-aspeed-scu-ic.c | 242 +++++++++++-------
.../interrupt-controller/aspeed-scu-ic.h | 14 +
4 files changed, 173 insertions(+), 93 deletions(-)
--
2.34.1