Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
software:linux:docs:iio:iio [01 Mar 2011 16:39]
Michael Hennerich [Pointers]
software:linux:docs:iio:iio [05 Jun 2020 17:03]
Iulia Moldovan [IIO Overview] Grammar changes
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 ​convertors ​(ADCs).+  * The Industrial I/O subsystem is intended to provide support for devices that in some sense are analog to digital ​or digital to analog converters ​(ADCs, DACs).
   * 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, ​Temperature and Light Sensors+    * Pressure ​Sensors 
 +    * Color, Light and Proximity ​Sensors 
 +    * Temperature Sensors 
 +    * Magnetometers 
 +    * DACs 
 +    * DDS (Direct Digital Synthesis) 
 +    * PLLs (Phase Locked Loops) 
 +    * Variable/​Programmable Gain Amplifiers (VGA, PGA) 
  
   * 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 isas it'​s ​name suggests focused on human interaction ​ input devices.:+  * The input is⁠ (as its name suggestsfocused on human interaction input devices:
     * Keyboard     * Keyboard
     * Mouse     * Mouse
Line 21: Line 28:
     * Joystick     * Joystick
  
-  * In some cases there is considerable overlap between these and IIO.+  * In some casesthere is considerable overlap between these and IIO.
  
   * 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 ​access to device channels via sysfs.+  * Polled ​access to device channels via sysfs.
   * 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. ​ 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.     * 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>+<WRAP round help>
 A given device may have one or more event channel. ​ These events are turned on or off (if possible) via sysfs interfaces. A given device may have one or more event channel. ​ These events are turned on or off (if possible) via sysfs interfaces.
-</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 ​(kfifo) ​support
  
 ==== Trigger and software ring buffer support ==== ==== Trigger and software ring buffer support ====
Line 61: Line 68:
 === Standalone trigger drivers === === Standalone trigger drivers ===
  
-^ name ^ description ^ +{{page>​software:​linux:​docs:​iio:​iio_snippets#​Standalone trigger drivers&​noheader&​firstseconly&​noeditbtn}} 
-| iio-trig-gpio | Provides support for using GPIO pins as IIO triggers.| ​ + 
-| iio-trig-rtc | Provides support for using periodic capable real time clocks as IIO triggers.|  +==== Industrial I/O Subsystem In-Kernel Interfaces ==== 
-| [[iio-trig-sysfs | iio-trig-sysfs]] | Provides support for using SYSFS entry as IIO triggers.| ​ + 
-| [[iio-trig-bfin-timer | iio-trig-bfin-timer]] | Provides support for using Blackfin timer as IIO triggers. +The IIO subsystem can act as a layer under other elements of the kernel 
-==== IIO Ring Buffer ====+providing ​means of obtaining ADC type readings or of driving DAC type 
 +signals. ​ The functionality supported will grow as use cases arise
 +==== IIO Ring Buffer ​/ kfifo ====
  
 {{:​software:​linux:​docs:​ringbuffer.png}} {{:​software:​linux:​docs:​ringbuffer.png}}
Line 77: Line 86:
 ====== Pointers ====== ====== Pointers ======
  
-  * [[http://​sourceforge.net/​apps/​mediawiki/​iioutils/​index.php?​title=Main_Page|IIO Utils Main Page]] +{{page>​software:linux:​docs:​iio:​iio_snippets#​iio pointers&​noheader&​firstseconly&​noeditbtn}}
-  * [[http://​git.kernel.org/?​p=linux/​kernel/​git/​gregkh/​staging-2.6.git;​a=tree;​f=drivers/​staging/​iio/​Documentation;​h=ff99af023edae354e50ca84812f6a6ae71de420c;​hb=refs/​heads/​staging-next | IIO Documentation]] +
-  * [[iio_netscope | IIO test and visualization demo application]]+
software/linux/docs/iio/iio.txt · Last modified: 05 Jun 2020 17:03 by Iulia Moldovan