#include <linux/irqdomain.h>
#include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/of_address.h>
#include <linux/io.h>
#include <linux/jump_label.h>
#include <linux/bug.h>
#include <linux/of_irq.h>
#define ISR …
#define IPR …
#define IER …
#define IAR …
#define SIE …
#define CIE …
#define IVR …
#define MER …
#define MER_ME …
#define MER_HIE …
#define SPURIOUS_IRQ …
static DEFINE_STATIC_KEY_FALSE(xintc_is_be);
struct xintc_irq_chip { … };
static struct xintc_irq_chip *primary_intc;
static void xintc_write(struct xintc_irq_chip *irqc, int reg, u32 data)
{ … }
static u32 xintc_read(struct xintc_irq_chip *irqc, int reg)
{ … }
static void intc_enable_or_unmask(struct irq_data *d)
{ … }
static void intc_disable_or_mask(struct irq_data *d)
{ … }
static void intc_ack(struct irq_data *d)
{ … }
static void intc_mask_ack(struct irq_data *d)
{ … }
static struct irq_chip intc_dev = …;
static int xintc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw)
{ … }
static const struct irq_domain_ops xintc_irq_domain_ops = …;
static void xil_intc_irq_handler(struct irq_desc *desc)
{ … }
static void xil_intc_handle_irq(struct pt_regs *regs)
{ … }
static int __init xilinx_intc_of_init(struct device_node *intc,
struct device_node *parent)
{ … }
IRQCHIP_DECLARE(xilinx_intc_xps, "xlnx,xps-intc-1.00.a", xilinx_intc_of_init);
IRQCHIP_DECLARE(xilinx_intc_opb, "xlnx,opb-intc-1.00.c", xilinx_intc_of_init);