#include <linux/device.h>
#include <linux/gpio/driver.h>
#include <linux/mfd/adp5585.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/types.h>
#define ADP5585_GPIO_MAX …
struct adp5585_gpio_dev { … };
static int adp5585_gpio_get_direction(struct gpio_chip *chip, unsigned int off)
{ … }
static int adp5585_gpio_direction_input(struct gpio_chip *chip, unsigned int off)
{ … }
static int adp5585_gpio_direction_output(struct gpio_chip *chip, unsigned int off, int val)
{ … }
static int adp5585_gpio_get_value(struct gpio_chip *chip, unsigned int off)
{ … }
static void adp5585_gpio_set_value(struct gpio_chip *chip, unsigned int off, int val)
{ … }
static int adp5585_gpio_set_bias(struct adp5585_gpio_dev *adp5585_gpio,
unsigned int off, unsigned int bias)
{ … }
static int adp5585_gpio_set_drive(struct adp5585_gpio_dev *adp5585_gpio,
unsigned int off, enum pin_config_param drive)
{ … }
static int adp5585_gpio_set_debounce(struct adp5585_gpio_dev *adp5585_gpio,
unsigned int off, unsigned int debounce)
{ … }
static int adp5585_gpio_set_config(struct gpio_chip *chip, unsigned int off,
unsigned long config)
{ … }
static int adp5585_gpio_probe(struct platform_device *pdev)
{ … }
static const struct platform_device_id adp5585_gpio_id_table[] = …;
MODULE_DEVICE_TABLE(platform, adp5585_gpio_id_table);
static struct platform_driver adp5585_gpio_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;