linux/drivers/staging/iio/Documentation/overview.txt
<<
>>
Prefs
   1Overview of IIO
   2
   3The Industrial I/O subsystem is intended to provide support for devices
   4that in some sense are analog to digital converters (ADCs). As many
   5actual devices combine some ADCs with digital to analog converters
   6(DACs) that functionality is also supported.
   7
   8The aim is to fill the gap between the somewhat similar hwmon and
   9input subsystems.  Hwmon is very much directed at low sample rate
  10sensors used in applications such as fan speed control and temperature
  11measurement.  Input is, as its name suggests focused on input
  12devices. In some cases there is considerable overlap between these and
  13IIO.
  14
  15A typical device falling into this category would be connected via SPI
  16or I2C.
  17
  18Functionality of IIO
  19
  20* Basic device registration and handling. This is very similar to
  21hwmon with simple polled access to device channels via sysfs.
  22
  23* Event chrdevs.  These are similar to input in that they provide a
  24route to user space for hardware triggered events. Such events include
  25threshold detectors, free-fall detectors and more complex action
  26detection.  The events themselves are currently very simple with
  27merely an event code and a timestamp.  Any data associated with the
  28event must be accessed via polling.
  29
  30Note: A given device may have one or more event channel.  These events are
  31turned on or off (if possible) via sysfs interfaces.
  32
  33* Hardware buffer support.  Some recent sensors have included
  34fifo / ring buffers on the sensor chip.  These greatly reduce the load
  35on the host CPU by buffering relatively large numbers of data samples
  36based on an internal sampling clock. Examples include VTI SCA3000
  37series and Analog Device ADXL345 accelerometers.  Each buffer supports
  38polling to establish when data is available.
  39
  40* Trigger and software buffer support. In many data analysis
  41applications it it useful to be able to capture data based on some
  42external signal (trigger).  These triggers might be a data ready
  43signal, a gpio line connected to some external system or an on
  44processor periodic interrupt.  A single trigger may initialize data
  45capture or reading from a number of sensors.  These triggers are
  46used in IIO to fill software buffers acting in a very similar
  47fashion to the hardware buffers described above.
  48
  49Other documentation:
  50
  51device.txt - elements of a typical device driver.
  52
  53trigger.txt - elements of a typical trigger driver.
  54
  55ring.txt - additional elements required for buffer support.
  56
  57sysfs-bus-iio - abi documentation file.
  58