#include <linux/gpio/driver.h>
#include <linux/interrupt.h>
#include <linux/mfd/max77620.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#define GPIO_REG_ADDR(offset) …
struct max77620_gpio { … };
static irqreturn_t max77620_gpio_irqhandler(int irq, void *data)
{ … }
static void max77620_gpio_irq_mask(struct irq_data *data)
{ … }
static void max77620_gpio_irq_unmask(struct irq_data *data)
{ … }
static int max77620_gpio_set_irq_type(struct irq_data *data, unsigned int type)
{ … }
static void max77620_gpio_bus_lock(struct irq_data *data)
{ … }
static void max77620_gpio_bus_sync_unlock(struct irq_data *data)
{ … }
static const struct irq_chip max77620_gpio_irqchip = …;
static int max77620_gpio_dir_input(struct gpio_chip *gc, unsigned int offset)
{ … }
static int max77620_gpio_get(struct gpio_chip *gc, unsigned int offset)
{ … }
static int max77620_gpio_dir_output(struct gpio_chip *gc, unsigned int offset,
int value)
{ … }
static int max77620_gpio_set_debounce(struct max77620_gpio *mgpio,
unsigned int offset,
unsigned int debounce)
{ … }
static void max77620_gpio_set(struct gpio_chip *gc, unsigned int offset,
int value)
{ … }
static int max77620_gpio_set_config(struct gpio_chip *gc, unsigned int offset,
unsigned long config)
{ … }
static int max77620_gpio_irq_init_hw(struct gpio_chip *gc)
{ … }
static int max77620_gpio_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id max77620_gpio_devtype[] = …;
MODULE_DEVICE_TABLE(platform, max77620_gpio_devtype);
static struct platform_driver max77620_gpio_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;