#include <linux/errno.h>
#include <linux/gpio/driver.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/of_irq.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#define DRV_NAME …
#define SDV_NUM_PUB_GPIOS …
#define PCI_DEVICE_ID_SDV_GPIO …
#define GPIO_BAR …
#define GPOUTR …
#define GPOER …
#define GPINR …
#define GPSTR …
#define GPIT1R0 …
#define GPIO_INT …
#define GPIT1R1 …
#define GPMUXCTL …
struct sdv_gpio_chip_data { … };
static int sdv_gpio_pub_set_type(struct irq_data *d, unsigned int type)
{ … }
static irqreturn_t sdv_gpio_pub_irq_handler(int irq, void *data)
{ … }
static int sdv_xlate(struct irq_domain *h, struct device_node *node,
const u32 *intspec, u32 intsize, irq_hw_number_t *out_hwirq,
u32 *out_type)
{ … }
static const struct irq_domain_ops irq_domain_sdv_ops = …;
static int sdv_register_irqsupport(struct sdv_gpio_chip_data *sd,
struct pci_dev *pdev)
{ … }
static int sdv_gpio_probe(struct pci_dev *pdev,
const struct pci_device_id *pci_id)
{ … }
static const struct pci_device_id sdv_gpio_pci_ids[] = …;
static struct pci_driver sdv_gpio_driver = …;
builtin_pci_driver(…) …;