#include <linux/bitops.h> #include <linux/device.h> #include <linux/errno.h> #include <linux/iio/iio.h> #include <linux/iio/types.h> #include <linux/io.h> #include <linux/ioport.h> #include <linux/isa.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/types.h> #define QUAD8_EXTENT 32 static unsigned int base[max_num_isa_dev(QUAD8_EXTENT)]; static unsigned int num_quad8; module_param_array(base, uint, &num_quad8, 0); MODULE_PARM_DESC(base, "ACCES 104-QUAD-8 base addresses"); #define QUAD8_NUM_COUNTERS 8 /** * struct quad8_iio - IIO device private data structure * @preset: array of preset values * @count_mode: array of count mode configurations * @quadrature_mode: array of quadrature mode configurations * @quadrature_scale: array of quadrature mode scale configurations * @ab_enable: array of A and B inputs enable configurations * @preset_enable: array of set_to_preset_on_index attribute configurations * @synchronous_mode: array of index function synchronous mode configurations
#include <linux/moduleparam.h> #include <linux/spinlock.h> #define STX104_NUM_CHAN 2 #define STX104_CHAN(chan) { \ .type = IIO_VOLTAGE, \ .channel = chan, \ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ .indexed = 1, \ .output = 1 \ } #define STX104_EXTENT 16 static unsigned int base[max_num_isa_dev(STX104_EXTENT)]; static unsigned int num_stx104; module_param_array(base, uint, &num_stx104, 0); MODULE_PARM_DESC(base, "Apex Embedded Systems STX104 base addresses"); /** * struct stx104_iio - IIO device private data structure * @chan_out_states: channels' output states * @base: base port address of the IIO device */ struct stx104_iio { unsigned chan_out_states[STX104_NUM_CHAN]; unsigned base; }; /**