The Realtek Otto switch series consists of multiple devices.
- RTL838x: single core (Realtek proprietary IRQ controller)
- RTL839x: multi core (Realtek proprietary IRQ controller)
- RTL930x: multi core (Realtek proprietary IRQ controller)
- RTL931x: multi core (MIPS GIC controller)
The proprietary interrupt controller supports hardware interrupt
routing. To be precise:
- The hardware knows up to 32 different interrupts.
- These can be assigned dynamically to the normal MIPS
interrupts (2-6).
For this each of the 32 hardware interrupts has a routing
register. If properly set up, important interrupts (like
timers) can be prioritized.
Until now all interrupts are always routed to the low priority
MIPS interrupt 2. This series extends the driver by registering
multiple domains for the different MIPS interrupts and adding
the possibility for hardware devices to map a desired parent
interrupt.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
---
Markus Stockhausen (7):
dt-bindings: interrupt-controller: realtek,rtl-intc: Allow 2 interrupt
cells
irqchip/irq-realtek-rtl: Use helper for parent setup
irqchip/irq-realtek-rtl: Add interrupt data structure
irqchip/irq-realtek-rtl: Add mask for interrupt handling
irqchip/irq-realtek-rtl: Add a select function
irqchip/irq-realtek-rtl: Allow shuffled interrupt order
irqchip/irq-realtek-rtl: Activate multiple parents
.../realtek,rtl-intc.yaml | 5 +-
drivers/irqchip/irq-realtek-rtl.c | 152 +++++++++++++-----
2 files changed, 113 insertions(+), 44 deletions(-)
--
2.54.0