linux/drivers/irqchip/irq-lan966x-oic.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Driver for the Microchip LAN966x outbound interrupt controller
 *
 * Copyright (c) 2024 Technology Inc. and its subsidiaries.
 *
 * Authors:
 *	Horatiu Vultur <[email protected]>
 *	Clément Léger <[email protected]>
 *	Herve Codina <[email protected]>
 */

#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

/* Interrupt sticky status */
#define LAN966X_OIC_INTR_STICKY
#define LAN966X_OIC_INTR_STICKY1
#define LAN966X_OIC_INTR_STICKY2

/* Interrupt enable */
#define LAN966X_OIC_INTR_ENA
#define LAN966X_OIC_INTR_ENA1
#define LAN966X_OIC_INTR_ENA2

/* Atomic clear of interrupt enable */
#define LAN966X_OIC_INTR_ENA_CLR
#define LAN966X_OIC_INTR_ENA_CLR1
#define LAN966X_OIC_INTR_ENA_CLR2

/* Atomic set of interrupt */
#define LAN966X_OIC_INTR_ENA_SET
#define LAN966X_OIC_INTR_ENA_SET1
#define LAN966X_OIC_INTR_ENA_SET2

/* Mapping of source to destination interrupts (_n = 0..8) */
#define LAN966X_OIC_DST_INTR_MAP(_n)
#define LAN966X_OIC_DST_INTR_MAP1(_n)
#define LAN966X_OIC_DST_INTR_MAP2(_n)

/* Currently active interrupt sources per destination (_n = 0..8) */
#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();