#include <linux/bitops.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/gpio/driver.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/irq.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/pinctrl/consumer.h>
#define VF610_GPIO_PER_PORT …
struct fsl_gpio_soc_data { … };
struct vf610_gpio_port { … };
#define GPIO_PDOR …
#define GPIO_PSOR …
#define GPIO_PCOR …
#define GPIO_PTOR …
#define GPIO_PDIR …
#define GPIO_PDDR …
#define PORT_PCR(n) …
#define PORT_PCR_IRQC_OFFSET …
#define PORT_ISFR …
#define PORT_DFER …
#define PORT_DFCR …
#define PORT_DFWR …
#define PORT_INT_OFF …
#define PORT_INT_LOGIC_ZERO …
#define PORT_INT_RISING_EDGE …
#define PORT_INT_FALLING_EDGE …
#define PORT_INT_EITHER_EDGE …
#define PORT_INT_LOGIC_ONE …
#define IMX8ULP_GPIO_BASE_OFF …
#define IMX8ULP_BASE_OFF …
static const struct fsl_gpio_soc_data vf610_data = …;
static const struct fsl_gpio_soc_data imx_data = …;
static const struct fsl_gpio_soc_data imx8ulp_data = …;
static const struct of_device_id vf610_gpio_dt_ids[] = …;
static inline void vf610_gpio_writel(u32 val, void __iomem *reg)
{ … }
static inline u32 vf610_gpio_readl(void __iomem *reg)
{ … }
static int vf610_gpio_get(struct gpio_chip *gc, unsigned int gpio)
{ … }
static void vf610_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
{ … }
static int vf610_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
{ … }
static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
int value)
{ … }
static void vf610_gpio_irq_handler(struct irq_desc *desc)
{ … }
static void vf610_gpio_irq_ack(struct irq_data *d)
{ … }
static int vf610_gpio_irq_set_type(struct irq_data *d, u32 type)
{ … }
static void vf610_gpio_irq_mask(struct irq_data *d)
{ … }
static void vf610_gpio_irq_unmask(struct irq_data *d)
{ … }
static int vf610_gpio_irq_set_wake(struct irq_data *d, u32 enable)
{ … }
static const struct irq_chip vf610_irqchip = …;
static void vf610_gpio_disable_clk(void *data)
{ … }
static int vf610_gpio_probe(struct platform_device *pdev)
{ … }
static struct platform_driver vf610_gpio_driver = …;
builtin_platform_driver(…) …;