irqchip: Add Loongson Extended I/O interrupt controller support
authorHuacai Chen <chenhuacai@loongson.cn>
Wed, 20 Jul 2022 10:51:30 +0000 (18:51 +0800)
committerMarc Zyngier <maz@kernel.org>
Wed, 20 Jul 2022 11:09:21 +0000 (12:09 +0100)
commitdd281e1a1a937ee2f13bd0db5be78e5f5b811ca7
tree1bb0730b67f2b9fe4556eed87417e0f2cda0728c
parent0858ed035a85c3ae79553200d2d818797cf849f5
irqchip: Add Loongson Extended I/O interrupt controller support

EIOINTC stands for "Extended I/O Interrupts" that described in Section
11.2 of "Loongson 3A5000 Processor Reference Manual". For more
information please refer Documentation/loongarch/irq-chip-model.rst.

Loongson-3A5000 has 4 cores per NUMA node, and each NUMA node has an
EIOINTC; while Loongson-3C5000 has 16 cores per NUMA node, and each NUMA
node has 4 EIOINTCs. In other words, 16 cores of one NUMA node in
Loongson-3C5000 are organized in 4 groups, each group connects to an
EIOINTC. We call the "group" here as an EIOINTC node, so each EIOINTC
node always includes 4 cores (both in Loongson-3A5000 and Loongson-
3C5000).

Co-developed-by: Jianmin Lv <lvjianmin@loongson.cn>
Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/1658314292-35346-12-git-send-email-lvjianmin@loongson.cn
arch/loongarch/include/asm/irq.h
drivers/irqchip/Kconfig
drivers/irqchip/Makefile
drivers/irqchip/irq-loongson-eiointc.c [new file with mode: 0644]
include/linux/cpuhotplug.h