[PATCH V2 00/10] irqchip: Add LoongArch-related irqchip drivers

From: Huacai Chen
Date: Mon Aug 16 2021 - 03:53:14 EST

LoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V.
LoongArch includes a reduced 32-bit version (LA32R), a standard 32-bit
version (LA32S) and a 64-bit version (LA64). LoongArch use ACPI as its
boot protocol LoongArch-specific interrupt controllers (similar to APIC)
are already added in the next revision of ACPI Specification (current
revision is 6.4).

This patchset adds some irqchip drivers for LoongArch, it is preparing
to add LoongArch support in mainline kernel, we can see a snapshot here:

Cross-compile tool chain to build kernel:

Loongson and LoongArch documentations:

LoongArch-specific interrupt controllers:

V1 -> V2:
1, Remove queued patches;
2, Move common logic of DT/ACPI probing to common functions;
3, Split .suspend()/.resume() functions to separate patches.

Huacai Chen:
irqchip: Adjust Kconfig for Loongson.
irqchip/loongson-pch-pic: Add ACPI init support.
irqchip/loongson-pch-pic: Add suspend/resume support.
irqchip/loongson-pch-msi: Add ACPI init support.
irqchip/loongson-htvec: Add ACPI init support.
irqchip/loongson-htvec: Add suspend/resume support.
irqchip/loongson-liointc: Add ACPI init support.
irqchip: Add LoongArch CPU interrupt controller support.
irqchip: Add Loongson Extended I/O interrupt controller.
irqchip: Add Loongson PCH LPC controller support.

Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
drivers/irqchip/Kconfig | 37 +++-
drivers/irqchip/Makefile | 3 +
drivers/irqchip/irq-loongarch-cpu.c | 76 ++++++++
drivers/irqchip/irq-loongson-eiointc.c | 326 +++++++++++++++++++++++++++++++++
drivers/irqchip/irq-loongson-htvec.c | 147 +++++++++++----
drivers/irqchip/irq-loongson-liointc.c | 197 ++++++++++++--------
drivers/irqchip/irq-loongson-pch-lpc.c | 205 +++++++++++++++++++++
drivers/irqchip/irq-loongson-pch-msi.c | 126 ++++++++-----
drivers/irqchip/irq-loongson-pch-pic.c | 157 +++++++++++++---
include/linux/cpuhotplug.h | 1 +
10 files changed, 1087 insertions(+), 188 deletions(-)
create mode 100644 drivers/irqchip/irq-loongarch-cpu.c
create mode 100644 drivers/irqchip/irq-loongson-eiointc.c
create mode 100644 drivers/irqchip/irq-loongson-pch-lpc.c