#include <linux/gpio/driver.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/property.h>
#define SLG7XL45106_GPO_REG …
struct pca9570_chip_data { … };
struct pca9570 { … };
static int pca9570_read(struct pca9570 *gpio, u8 *value)
{ … }
static int pca9570_write(struct pca9570 *gpio, u8 value)
{ … }
static int pca9570_get_direction(struct gpio_chip *chip,
unsigned offset)
{ … }
static int pca9570_get(struct gpio_chip *chip, unsigned offset)
{ … }
static void pca9570_set(struct gpio_chip *chip, unsigned offset, int value)
{ … }
static int pca9570_probe(struct i2c_client *client)
{ … }
static const struct pca9570_chip_data pca9570_gpio = …;
static const struct pca9570_chip_data pca9571_gpio = …;
static const struct pca9570_chip_data slg7xl45106_gpio = …;
static const struct i2c_device_id pca9570_id_table[] = …;
MODULE_DEVICE_TABLE(i2c, pca9570_id_table);
static const struct of_device_id pca9570_of_match_table[] = …;
MODULE_DEVICE_TABLE(of, pca9570_of_match_table);
static struct i2c_driver pca9570_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;