/* SPDX-License-Identifier: GPL-2.0 */ /* * This file contains declarations and inline functions for interfacing * with the IRQ handling routines in irq.c. */ #ifndef _ASM_SW64_IRQ_IMPL_H #define _ASM_SW64_IRQ_IMPL_H #include #include #include #define SW64_PCIE0_INT_BASE 17 #define SW64_PCIE0_MSI_BASE 21 #define SW64_PCIE1_INT_BASE 277 #define SW64_PCIE1_MSI_BASE 281 #define RTC_IRQ 8 #define SWI2C_IRQ 14 enum sw64_irq_type { INT_IPI = 1, INT_PC0 = 2, INT_PC1 = 3, INT_INTx = 5, INT_MSI = 6, INT_MT = 7, INT_RTC = 9, INT_FAULT = 10, INT_VT_SERIAL = 12, INT_DEV = 17, INT_NMI = 18, INT_LEGACY = 31, }; extern struct irqaction timer_irqaction; extern void init_rtc_irq(irq_handler_t handler); extern void handle_irq(int irq); extern void handle_ipi(struct pt_regs *); extern void __init sw64_init_irq(void); extern irqreturn_t timer_interrupt(int irq, void *dev); extern void handle_chip_irq(unsigned long type, unsigned long vector, unsigned long irq_arg, struct pt_regs *regs); #endif