#include <linux/bitfield.h>
#include <linux/bits.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/gpio/regmap.h>
#include <linux/i8254.h>
#include <linux/iio/iio.h>
#include <linux/iio/types.h>
#include <linux/isa.h>
#include <linux/kernel.h>
#include <linux/limits.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/mutex.h>
#include <linux/regmap.h>
#include <linux/types.h>
#define STX104_OUT_CHAN(chan) …
#define STX104_IN_CHAN(chan, diff) …
#define STX104_NUM_OUT_CHAN …
#define STX104_EXTENT …
static unsigned int base[max_num_isa_dev(STX104_EXTENT)];
static unsigned int num_stx104;
module_param_hw_array(base, uint, ioport, &num_stx104, 0);
MODULE_PARM_DESC(…) …;
#define STX104_AIO_BASE …
#define STX104_SOFTWARE_STROBE …
#define STX104_ADC_DATA …
#define STX104_ADC_CHANNEL …
#define STX104_DIO_REG …
#define STX104_DAC_BASE …
#define STX104_ADC_STATUS …
#define STX104_ADC_CONTROL …
#define STX104_ADC_CONFIGURATION …
#define STX104_I8254_BASE …
#define STX104_AIO_DATA_STRIDE …
#define STX104_DAC_OFFSET(_channel) …
#define STX104_FC …
#define STX104_LC …
#define STX104_SINGLE_CHANNEL(_channel) …
#define STX104_SD …
#define STX104_CNV …
#define STX104_DIFFERENTIAL …
#define STX104_ALSS …
#define STX104_SOFTWARE_TRIGGER …
#define STX104_GAIN …
#define STX104_ADBU …
#define STX104_RBK …
#define STX104_BIPOLAR …
#define STX104_GAIN_X1 …
#define STX104_GAIN_X2 …
#define STX104_GAIN_X4 …
#define STX104_GAIN_X8 …
struct stx104_iio { … };
static const struct regmap_range aio_ctl_wr_ranges[] = …;
static const struct regmap_range aio_ctl_rd_ranges[] = …;
static const struct regmap_range aio_ctl_volatile_ranges[] = …;
static const struct regmap_access_table aio_ctl_wr_table = …;
static const struct regmap_access_table aio_ctl_rd_table = …;
static const struct regmap_access_table aio_ctl_volatile_table = …;
static const struct regmap_config aio_ctl_regmap_config = …;
static const struct regmap_range aio_data_wr_ranges[] = …;
static const struct regmap_range aio_data_rd_ranges[] = …;
static const struct regmap_access_table aio_data_wr_table = …;
static const struct regmap_access_table aio_data_rd_table = …;
static const struct regmap_config aio_data_regmap_config = …;
static const struct regmap_config dio_regmap_config = …;
static const struct regmap_range pit_wr_ranges[] = …;
static const struct regmap_range pit_rd_ranges[] = …;
static const struct regmap_access_table pit_wr_table = …;
static const struct regmap_access_table pit_rd_table = …;
static const struct regmap_config pit_regmap_config = …;
static int stx104_read_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int *val, int *val2, long mask)
{ … }
static int stx104_write_raw(struct iio_dev *indio_dev,
struct iio_chan_spec const *chan, int val, int val2, long mask)
{ … }
static const struct iio_info stx104_info = …;
static const struct iio_chan_spec stx104_channels_sing[] = …;
static const struct iio_chan_spec stx104_channels_diff[] = …;
static int stx104_reg_mask_xlate(struct gpio_regmap *const gpio, const unsigned int base,
unsigned int offset, unsigned int *const reg,
unsigned int *const mask)
{ … }
#define STX104_NGPIO …
static const char *stx104_names[STX104_NGPIO] = …;
static int bank_select_i8254(struct regmap *map)
{ … }
static int stx104_init_hw(struct stx104_iio *const priv)
{ … }
static int stx104_probe(struct device *dev, unsigned int id)
{ … }
static struct isa_driver stx104_driver = …;
module_isa_driver(stx104_driver, num_stx104);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);