summaryrefslogtreecommitdiff
path: root/drivers/irqchip/irq-riscv-aplic-main.h
diff options
context:
space:
mode:
authorAnup Patel <apatel@ventanamicro.com>2024-03-07 19:33:05 +0530
committerThomas Gleixner <tglx@linutronix.de>2024-03-25 17:38:29 +0100
commitca8df97fe6798afbe395fc4a8e23bac0c7fbd248 (patch)
tree69249e22caf0efc1419b39a47b12b68f9c86a567 /drivers/irqchip/irq-riscv-aplic-main.h
parent2333df5ae51ead2188d07c99e841e159a664741e (diff)
irqchip/riscv-aplic: Add support for MSI-mode
The RISC-V advanced platform-level interrupt controller (APLIC) has two modes of operation: 1) Direct mode and 2) MSI mode. (For more details, refer https://github.com/riscv/riscv-aia) In APLIC MSI-mode, wired interrupts are forwared as message signaled interrupts (MSIs) to CPUs via IMSIC. Extend the existing APLIC irqchip driver to support MSI-mode for RISC-V platforms having both wired interrupts and MSIs. Signed-off-by: Anup Patel <apatel@ventanamicro.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Björn Töpel <bjorn@rivosinc.com> Reviewed-by: Björn Töpel <bjorn@rivosinc.com> Link: https://lore.kernel.org/r/20240307140307.646078-8-apatel@ventanamicro.com
Diffstat (limited to 'drivers/irqchip/irq-riscv-aplic-main.h')
-rw-r--r--drivers/irqchip/irq-riscv-aplic-main.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-riscv-aplic-main.h b/drivers/irqchip/irq-riscv-aplic-main.h
index 4cfbadf37ddc..4393927d8c80 100644
--- a/drivers/irqchip/irq-riscv-aplic-main.h
+++ b/drivers/irqchip/irq-riscv-aplic-main.h
@@ -40,5 +40,13 @@ int aplic_irqdomain_translate(struct irq_fwspec *fwspec, u32 gsi_base,
void aplic_init_hw_global(struct aplic_priv *priv, bool msi_mode);
int aplic_setup_priv(struct aplic_priv *priv, struct device *dev, void __iomem *regs);
int aplic_direct_setup(struct device *dev, void __iomem *regs);
+#ifdef CONFIG_RISCV_APLIC_MSI
+int aplic_msi_setup(struct device *dev, void __iomem *regs);
+#else
+static inline int aplic_msi_setup(struct device *dev, void __iomem *regs)
+{
+ return -ENODEV;
+}
+#endif
#endif