#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/platform_device.h>
#include <linux/usb.h>
#include <linux/iio/iio.h>
#include <linux/mfd/viperboard.h>
#define VPRBRD_ADC_CMD_GET …
struct vprbrd_adc_msg { … } __packed;
struct vprbrd_adc { … };
#define VPRBRD_ADC_CHANNEL(_index) …
static struct iio_chan_spec const vprbrd_adc_iio_channels[] = …;
static int vprbrd_iio_read_raw(struct iio_dev *iio_dev,
struct iio_chan_spec const *chan,
int *val,
int *val2,
long info)
{ … }
static const struct iio_info vprbrd_adc_iio_info = …;
static int vprbrd_adc_probe(struct platform_device *pdev)
{ … }
static struct platform_driver vprbrd_adc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;