#include <linux/interrupt.h>
#include <linux/irqchip/chained_irq.h>
#include <linux/irqchip.h>
#include <linux/irq.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
struct lan966x_oic_chip_regs { … };
struct lan966x_oic_data { … };
#define LAN966X_OIC_NR_IRQ …
#define LAN966X_OIC_INTR_STICKY …
#define LAN966X_OIC_INTR_STICKY1 …
#define LAN966X_OIC_INTR_STICKY2 …
#define LAN966X_OIC_INTR_ENA …
#define LAN966X_OIC_INTR_ENA1 …
#define LAN966X_OIC_INTR_ENA2 …
#define LAN966X_OIC_INTR_ENA_CLR …
#define LAN966X_OIC_INTR_ENA_CLR1 …
#define LAN966X_OIC_INTR_ENA_CLR2 …
#define LAN966X_OIC_INTR_ENA_SET …
#define LAN966X_OIC_INTR_ENA_SET1 …
#define LAN966X_OIC_INTR_ENA_SET2 …
#define LAN966X_OIC_DST_INTR_MAP(_n) …
#define LAN966X_OIC_DST_INTR_MAP1(_n) …
#define LAN966X_OIC_DST_INTR_MAP2(_n) …
#define LAN966X_OIC_DST_INTR_IDENT(_n) …
#define LAN966X_OIC_DST_INTR_IDENT1(_n) …
#define LAN966X_OIC_DST_INTR_IDENT2(_n) …
static unsigned int lan966x_oic_irq_startup(struct irq_data *data)
{ … }
static void lan966x_oic_irq_shutdown(struct irq_data *data)
{ … }
static int lan966x_oic_irq_set_type(struct irq_data *data,
unsigned int flow_type)
{ … }
static void lan966x_oic_irq_handler_domain(struct irq_domain *d, u32 first_irq)
{ … }
static void lan966x_oic_irq_handler(struct irq_desc *desc)
{ … }
static struct lan966x_oic_chip_regs lan966x_oic_chip_regs[3] = …;
static int lan966x_oic_chip_init(struct irq_chip_generic *gc)
{ … }
static void lan966x_oic_chip_exit(struct irq_chip_generic *gc)
{ … }
static int lan966x_oic_domain_init(struct irq_domain *d)
{ … }
static void lan966x_oic_domain_exit(struct irq_domain *d)
{ … }
static int lan966x_oic_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id lan966x_oic_of_match[] = …;
MODULE_DEVICE_TABLE(of, lan966x_oic_of_match);
static struct platform_driver lan966x_oic_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;