#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/sysfs.h>
#include <linux/spi/spi.h>
#include <linux/regulator/consumer.h>
#include <linux/gpio/consumer.h>
#include <linux/err.h>
#include <linux/module.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>
#include <linux/iio/buffer.h>
#include <linux/iio/trigger_consumer.h>
#include <linux/iio/triggered_buffer.h>
struct ad7476_state;
struct ad7476_chip_info { … };
struct ad7476_state { … };
enum ad7476_supported_device_ids { … };
static void ad7091_convst(struct ad7476_state *st)
{ … }
static irqreturn_t ad7476_trigger_handler(int irq, void *p)
{ … }
static void ad7091_reset(struct ad7476_state *st)
{ … }
static int ad7476_scan_direct(struct ad7476_state *st)
{ … }
static int ad7476_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan,
int *val,
int *val2,
long m)
{ … }
#define _AD7476_CHAN(bits, _shift, _info_mask_sep) …
#define ADC081S_CHAN(bits) …
#define AD7476_CHAN(bits) …
#define AD7940_CHAN(bits) …
#define AD7091R_CHAN(bits) …
#define AD7091R_CONVST_CHAN(bits) …
#define ADS786X_CHAN(bits) …
static const struct ad7476_chip_info ad7476_chip_info_tbl[] = …;
static const struct iio_info ad7476_info = …;
static void ad7476_reg_disable(void *data)
{ … }
static int ad7476_probe(struct spi_device *spi)
{ … }
static const struct spi_device_id ad7476_id[] = …;
MODULE_DEVICE_TABLE(spi, ad7476_id);
static struct spi_driver ad7476_driver = …;
module_spi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;