#include <linux/bits.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/iio/iio.h>
#include <linux/iio/types.h>
#include <linux/isa.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/regmap.h>
#include <linux/types.h>
#define CIO_DAC_NUM_CHAN …
#define CIO_DAC_CHAN(chan) …
#define CIO_DAC_EXTENT …
static unsigned int base[max_num_isa_dev(CIO_DAC_EXTENT)];
static unsigned int num_cio_dac;
module_param_hw_array(base, uint, ioport, &num_cio_dac, 0);
MODULE_PARM_DESC(…) …;
#define CIO_DAC_BASE …
#define CIO_DAC_CHANNEL_STRIDE …
static bool cio_dac_precious_reg(struct device *dev, unsigned int reg)
{ … }
static const struct regmap_config cio_dac_regmap_config = …;
struct cio_dac_iio { … };
static int cio_dac_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int *val, int *val2, long mask)
{ … }
static int cio_dac_write_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int val, int val2, long mask)
{ … }
static const struct iio_info cio_dac_info = …;
static const struct iio_chan_spec cio_dac_channels[CIO_DAC_NUM_CHAN] = …;
static int cio_dac_probe(struct device *dev, unsigned int id)
{ … }
static struct isa_driver cio_dac_driver = …;
module_isa_driver(cio_dac_driver, num_cio_dac);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;