An IIO device is represented in the kernel as an instance of struct iio_dev, and described by a struct iio_info structure. All of the important IIO structures are defined in include/linux/iio/iio.h.
IIO data structures
iio_dev structure
This structure represents the IIO device, describing the device and the driver. It tells us about:
- How many channels are available on the device?
- What modes can the device operate in: one-shot, triggered buffer?
- What hooks are available for this driver?
struct iio_dev { [...] int modes; int currentmode; struct device dev; struct iio_buffer *buffer; int scan_bytes; const unsigned long *available_scan_masks; const unsigned long *active_scan_mask; bool...