mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 11:19:37 +00:00
![Peter Meerwald](/assets/img/avatar_default.png)
typos in comments, fix ring_sw module description Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Acked-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
57 lines
2.4 KiB
Text
57 lines
2.4 KiB
Text
Overview of IIO
|
|
|
|
The Industrial I/O subsystem is intended to provide support for devices
|
|
that in some sense are analog to digital converters (ADCs). As many
|
|
actual devices combine some ADCs with digital to analog converters
|
|
(DACs) that functionality is also supported.
|
|
|
|
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 its 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 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 buffer supports
|
|
polling to establish when data is available.
|
|
|
|
* Trigger and software 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 may initialize data
|
|
capture or reading from a number of sensors. These triggers are
|
|
used in IIO to fill software buffers acting in a very similar
|
|
fashion to the hardware buffers described above.
|
|
|
|
Other documentation:
|
|
|
|
device.txt - elements of a typical device driver.
|
|
|
|
trigger.txt - elements of a typical trigger driver.
|
|
|
|
ring.txt - additional elements required for buffer support.
|
|
|
|
sysfs-bus-iio - abi documentation file.
|