#include <linux/gpio/driver.h>
#include <linux/clk.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#define CDNS_GPIO_BYPASS_MODE …
#define CDNS_GPIO_DIRECTION_MODE …
#define CDNS_GPIO_OUTPUT_EN …
#define CDNS_GPIO_OUTPUT_VALUE …
#define CDNS_GPIO_INPUT_VALUE …
#define CDNS_GPIO_IRQ_MASK …
#define CDNS_GPIO_IRQ_EN …
#define CDNS_GPIO_IRQ_DIS …
#define CDNS_GPIO_IRQ_STATUS …
#define CDNS_GPIO_IRQ_TYPE …
#define CDNS_GPIO_IRQ_VALUE …
#define CDNS_GPIO_IRQ_ANY_EDGE …
struct cdns_gpio_chip { … };
static int cdns_gpio_request(struct gpio_chip *chip, unsigned int offset)
{ … }
static void cdns_gpio_free(struct gpio_chip *chip, unsigned int offset)
{ … }
static void cdns_gpio_irq_mask(struct irq_data *d)
{ … }
static void cdns_gpio_irq_unmask(struct irq_data *d)
{ … }
static int cdns_gpio_irq_set_type(struct irq_data *d, unsigned int type)
{ … }
static void cdns_gpio_irq_handler(struct irq_desc *desc)
{ … }
static const struct irq_chip cdns_gpio_irqchip = …;
static int cdns_gpio_probe(struct platform_device *pdev)
{ … }
static void cdns_gpio_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id cdns_of_ids[] = …;
MODULE_DEVICE_TABLE(of, cdns_of_ids);
static struct platform_driver cdns_gpio_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;