This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
software:linux:docs:iio:iio [03 Mar 2011 10:37] – [Pointers] Michael Hennerich | software:linux:docs:iio:iio [23 Feb 2017 13:26] – Fix typo Lars-Peter Clausen | ||
---|---|---|---|
Line 4: | Line 4: | ||
===== IIO Overview ===== | ===== IIO Overview ===== | ||
- | * The Industrial I/O subsystem is intended to provide support for devices that in some sense are analog to digital | + | * The Industrial I/O subsystem is intended to provide support for devices that in some sense are analog to digital |
* Devices that fall into this category are: | * Devices that fall into this category are: | ||
* ADCs | * ADCs | ||
Line 11: | Line 11: | ||
* IMUs | * IMUs | ||
* Capacitance to Digital Converters (CDCs) | * Capacitance to Digital Converters (CDCs) | ||
- | * Pressure, | + | * Pressure |
+ | * Color, Light and Proximity | ||
+ | * Temperature Sensors | ||
+ | * Magnetometers | ||
+ | * DACs | ||
+ | * DDS (Direct Digital Synthesis) | ||
+ | * PLLs (Phase Locked Loops) | ||
+ | * Variable/ | ||
* The overall aim is to fill the gap between the somewhat similar hwmon and input subsystems. | * The overall 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. | * 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 human interaction | + | * Input is, as it's name suggests focused on human interaction input devices.: |
* Keyboard | * Keyboard | ||
* Mouse | * Mouse | ||
Line 24: | Line 31: | ||
* A typical device falling into the IIO category would be connected via SPI or I2C. | * A typical device falling into the IIO category would be connected via SPI or I2C. | ||
- | * However typical DMA operated devices such as ones connected to a high speed synchronous serial (McBSP, SPORT) or high speed synchronous parallel (EPI, PPI) peripherals are also subject to this subsystem. | + | * However typical DMA operated devices such as ones connected to a high speed synchronous serial (McBSP, SPORT) or high speed synchronous parallel (EPI, PPI) or FPGA peripherals are also subject to this subsystem. |
* Since latter ones unlike SPI or I2C are not generally abstracted by Linux bus drivers they are subject to processor platform dependent implementations. | * Since latter ones unlike SPI or I2C are not generally abstracted by Linux bus drivers they are subject to processor platform dependent implementations. | ||
Line 33: | Line 40: | ||
* Basic device registration and handling | * Basic device registration and handling | ||
- | * This is very simple polled | + | * Polled |
* Event chrdevs | * 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. | * 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. | ||
- | <note> | + | <WRAP round help> |
A given device may have one or more event channel. | A given device may have one or more event channel. | ||
- | </note> | + | </WRAP> |
* Hardware ring buffer support | * Hardware ring buffer support | ||
Line 45: | Line 52: | ||
* These greatly reduce the load on the host CPU by buffering relatively large numbers of data samples based on an internal sampling clock. | * These greatly reduce the load on the host CPU by buffering relatively large numbers of data samples based on an internal sampling clock. | ||
* 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. | * 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 | + | * Trigger and software ring buffer |
==== Trigger and software ring buffer support ==== | ==== Trigger and software ring buffer support ==== | ||
Line 62: | Line 69: | ||
{{page> | {{page> | ||
- | ==== IIO Ring Buffer ==== | + | |
+ | ==== Industrial I/O Subsystem In-Kernel Interfaces ==== | ||
+ | |||
+ | The IIO subsystem can act as a layer under other elements of the kernel | ||
+ | providing a means of obtaining ADC type readings or of driving DAC type | ||
+ | signals. | ||
+ | ==== IIO Ring Buffer | ||
{{: | {{: |