#include <linux/bitops.h>
#include <linux/gpio/consumer.h>
#include <linux/gpio/driver.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/property.h>
#include <linux/slab.h>
#include <linux/spi/spi.h>
#define GEN_74X164_NUMBER_GPIOS …
struct gen_74x164_chip { … };
static int __gen_74x164_write_config(struct gen_74x164_chip *chip)
{ … }
static int gen_74x164_get_value(struct gpio_chip *gc, unsigned offset)
{ … }
static void gen_74x164_set_value(struct gpio_chip *gc,
unsigned offset, int val)
{ … }
static void gen_74x164_set_multiple(struct gpio_chip *gc, unsigned long *mask,
unsigned long *bits)
{ … }
static int gen_74x164_direction_output(struct gpio_chip *gc,
unsigned offset, int val)
{ … }
static int gen_74x164_probe(struct spi_device *spi)
{ … }
static void gen_74x164_remove(struct spi_device *spi)
{ … }
static const struct spi_device_id gen_74x164_spi_ids[] = …;
MODULE_DEVICE_TABLE(spi, gen_74x164_spi_ids);
static const struct of_device_id gen_74x164_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, gen_74x164_dt_ids);
static struct spi_driver gen_74x164_driver = …;
module_spi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;