Overview of IIO

The Industrial I/O subsytem is intended to provide support for devices
that in some sense are analog to digital convertors (ADCs). As many
actual devices combine some ADCs with digital to analog convertors
(DACs) the intention is to add that functionality at a future date
(hence the name).

The aim is to fill the gap between the somewhat similar hwmon and
input subsystems.  Hwmon is very much directed at low sample rate
sensors used in applications such as fan speed control and temperature
measurement.  Input is, as it's name suggests focused on input
devices. In some cases there is considerable overlap between these and
IIO.

A typical device falling into this category would be connected via SPI
or I2C.

Functionality of IIO

* Basic device registration and handling. This is very similar to
hwmon with simple polled access to device channels via sysfs.

* Event chrdevs.  These are similar to input in that they provide a
route to user space for hardware triggered events. Such events include
threshold detectors, free-fall detectors and more complex action
detection.  The events themselves are currently very simple with
merely an event code and a timestamp.  Any data associated with the
event must be accessed via polling.

Note: A given device may have one or more event channel.  These events are
turned on or off (if possible) via sysfs interfaces.

* Hardware ring buffer support.  Some recent sensors have included
fifo / ring buffers on the sensor chip.  These greatly reduce the load
on the host CPU by buffering relatively large numbers of data samples
based on an internal sampling clock. Examples include VTI SCA3000
series and Analog Device ADXL345 accelerometers.  Each ring buffer
typically has an event chrdev (similar to the more general ones above)
to pass on events such as buffer 50% full and an access chrdev via
which the raw data it self may be read back.

* Trigger and software ring buffer support. In many data analysis
applications it it useful to be able to capture data based on some
external signal (trigger).  These triggers might be a data ready
signal, a gpio line connected to some external system or an on
processor periodic interrupt.  A single trigger many initialize data
capture or reading from a number of sensors.  These triggers are
used in iio to fill software ring buffers acting in a very similar
fashion to the hardware buffers described above.

Other documentation:

userspace.txt - overview of ring buffer reading from userspace

device.txt - elemennts of a typical device driver.

trigger.txt - elements of a typical trigger driver.

ring.txt - additional elements required for ring buffer support



