#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/gpio/driver.h>
#include <linux/mfd/da9055/core.h>
#include <linux/mfd/da9055/reg.h>
#include <linux/mfd/da9055/pdata.h>
#define DA9055_VDD_IO …
#define DA9055_PUSH_PULL …
#define DA9055_ACT_LOW …
#define DA9055_GPI …
#define DA9055_PORT_MASK …
#define DA9055_PORT_SHIFT(offset) …
#define DA9055_INPUT …
#define DA9055_OUTPUT …
#define DA9055_IRQ_GPI0 …
struct da9055_gpio { … };
static int da9055_gpio_get(struct gpio_chip *gc, unsigned offset)
{ … }
static void da9055_gpio_set(struct gpio_chip *gc, unsigned offset, int value)
{ … }
static int da9055_gpio_direction_input(struct gpio_chip *gc, unsigned offset)
{ … }
static int da9055_gpio_direction_output(struct gpio_chip *gc,
unsigned offset, int value)
{ … }
static int da9055_gpio_to_irq(struct gpio_chip *gc, u32 offset)
{ … }
static const struct gpio_chip reference_gp = …;
static int da9055_gpio_probe(struct platform_device *pdev)
{ … }
static struct platform_driver da9055_gpio_driver = …;
static int __init da9055_gpio_init(void)
{ … }
subsys_initcall(da9055_gpio_init);
static void __exit da9055_gpio_exit(void)
{ … }
module_exit(da9055_gpio_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;