#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/irq.h>
#include <linux/reboot.h>
#include <linux/slab.h>
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/signal.h>
#include <linux/device.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>
#include <asm/irq.h>
#include <asm/io.h>
#include <soc/fsl/qe/qe.h>
#define NR_QE_IC_INTS …
#define QEIC_CICR …
#define QEIC_CIVEC …
#define QEIC_CIPXCC …
#define QEIC_CIPYCC …
#define QEIC_CIPWCC …
#define QEIC_CIPZCC …
#define QEIC_CIMR …
#define QEIC_CRIMR …
#define QEIC_CIPRTA …
#define QEIC_CIPRTB …
#define QEIC_CHIVEC …
struct qe_ic { … };
struct qe_ic_info { … };
static DEFINE_RAW_SPINLOCK(qe_ic_lock);
static struct qe_ic_info qe_ic_info[] = …;
static inline u32 qe_ic_read(__be32 __iomem *base, unsigned int reg)
{ … }
static inline void qe_ic_write(__be32 __iomem *base, unsigned int reg,
u32 value)
{ … }
static inline struct qe_ic *qe_ic_from_irq(unsigned int virq)
{ … }
static inline struct qe_ic *qe_ic_from_irq_data(struct irq_data *d)
{ … }
static void qe_ic_unmask_irq(struct irq_data *d)
{ … }
static void qe_ic_mask_irq(struct irq_data *d)
{ … }
static struct irq_chip qe_ic_irq_chip = …;
static int qe_ic_host_match(struct irq_domain *h, struct device_node *node,
enum irq_domain_bus_token bus_token)
{ … }
static int qe_ic_host_map(struct irq_domain *h, unsigned int virq,
irq_hw_number_t hw)
{ … }
static const struct irq_domain_ops qe_ic_host_ops = …;
static unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic)
{ … }
static unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
{ … }
static void qe_ic_cascade_low(struct irq_desc *desc)
{ … }
static void qe_ic_cascade_high(struct irq_desc *desc)
{ … }
static void qe_ic_cascade_muxed_mpic(struct irq_desc *desc)
{ … }
static int qe_ic_init(struct platform_device *pdev)
{ … }
static const struct of_device_id qe_ic_ids[] = …;
static struct platform_driver qe_ic_driver = …;
static int __init qe_ic_of_init(void)
{ … }
subsys_initcall(qe_ic_of_init);