#include <linux/fs.h>
#include <linux/gpio/driver.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/syscalls.h>
#include <linux/uaccess.h>
#include <linux/mfd/da9052/da9052.h>
#include <linux/mfd/da9052/pdata.h>
#include <linux/mfd/da9052/reg.h>
#define DA9052_INPUT …
#define DA9052_OUTPUT_OPENDRAIN …
#define DA9052_OUTPUT_PUSHPULL …
#define DA9052_SUPPLY_VDD_IO1 …
#define DA9052_DEBOUNCING_OFF …
#define DA9052_DEBOUNCING_ON …
#define DA9052_OUTPUT_LOWLEVEL …
#define DA9052_ACTIVE_LOW …
#define DA9052_ACTIVE_HIGH …
#define DA9052_GPIO_MAX_PORTS_PER_REGISTER …
#define DA9052_GPIO_SHIFT_COUNT(no) …
#define DA9052_GPIO_MASK_UPPER_NIBBLE …
#define DA9052_GPIO_MASK_LOWER_NIBBLE …
#define DA9052_GPIO_NIBBLE_SHIFT …
#define DA9052_IRQ_GPI0 …
#define DA9052_GPIO_ODD_SHIFT …
#define DA9052_GPIO_EVEN_SHIFT …
struct da9052_gpio { … };
static unsigned char da9052_gpio_port_odd(unsigned offset)
{ … }
static int da9052_gpio_get(struct gpio_chip *gc, unsigned offset)
{ … }
static void da9052_gpio_set(struct gpio_chip *gc, unsigned offset, int value)
{ … }
static int da9052_gpio_direction_input(struct gpio_chip *gc, unsigned offset)
{ … }
static int da9052_gpio_direction_output(struct gpio_chip *gc,
unsigned offset, int value)
{ … }
static int da9052_gpio_to_irq(struct gpio_chip *gc, u32 offset)
{ … }
static const struct gpio_chip reference_gp = …;
static int da9052_gpio_probe(struct platform_device *pdev)
{ … }
static struct platform_driver da9052_gpio_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;