Archived
14
0
Fork 0

staging: iio: documentation - partial update to make more of it true.

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Acked-by: Manuel Stahl <manuel.stahl@iis.fraunhofer.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Jonathan Cameron 2010-09-04 17:54:51 +01:00 committed by Greg Kroah-Hartman
parent 04b708124a
commit 853098b6e5
3 changed files with 10 additions and 61 deletions

View file

@ -1,8 +1,8 @@
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
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) the intention is to add that functionality at a future date
(hence the name).
@ -46,18 +46,17 @@ 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 ring buffers acting in a very similar
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
userspace.txt - overview of ring buffer reading from userspace.
device.txt - elemennts of a typical device driver.
device.txt - elements of a typical device driver.
trigger.txt - elements of a typical trigger driver.
ring.txt - additional elements required for ring buffer support
ring.txt - additional elements required for ring buffer support.
sysfs-bus-iio - abi documentation file.

View file

@ -1,62 +1,12 @@
Userspace access to IIO
Example, ST Microelectronics LIS3L02DQ accelerometer.
Typical sysfs entries (pruned for clarity)
/sys/class/iio
device0 - iio_dev related elements
name - driver specific identifier (here lis3l02dq)
accel_x_raw - polled (or from ring) raw readout of acceleration
accel_x_offset - offset to be applied to the raw reading
accel_x_scale - scale to be applied to the raw reading and offset
accel_x_calibbias - hardware offset (calibration)
accel_x_calibscale - hardware gain (calibration)
sampling_frequency_available - what options are there
sampling_frequency - control of internal sampling frequency
device - link to underlying hardware device
uevent - udev related element
thresh - unified threshold used for detection on all axis
event_line0_sources - which events are enabled
accel_x_high - enable x axis high threshold event
accel_x_low - enable x axis low threshold event
event_line0 - event interface
dev - major:minor for the chrdev (note major allocation dynamic)
trigger - consumer attachement
current_trigger - name based association with a trigger
device0:buffer0 - ring buffer interface
bytes_per_datum - byptes per complete datum (read only),
dependant on scan element selection
length - (rw) specificy length fo software ring buffer (typically ro in hw case)
enable - turn the ring on. If its the first to be enabled attached to this
trigger will also enable the trigger.
device0:buffer0:access0
dev - major:minor for ring buffer access chrdev
device0:buffer0:event0
dev - major:minor for ring buffer event chrdev
scan_elements - controls which channels will be stored in the ring buffer
accel_x_en
accel_y_en
timestamp_en
trigger0 - data ready trigger elements
name - unqiue name of trigger
The sysfs attributes are documented in sysfs-bus-iio.
Udev will create the following entries under /dev by default:
device0:buffer0:access0 - ring access chrdev
device0:buffer0:event0 - ring event chrdev
event_line0 - general event chrdev.
For the example code we assume the following rules have been used to ensure
unique and consistent naming of these for the lis3l02dq in question:
KERNEL="ring_event_line*", ID="spi1.0", DRIVER="lis3l02dq", NAME="iio/lis3l02dq_ring_event"
KERNEL="event_line*", ID="spi1.0", DRIVER="lis3l02dq", NAME="iio/lis3l02dq_event"
KERNEL="ring_access*", ID="spi1.0", DRIVER="lis3l02dq", NAME="iio/lis3l02dq_ring_access"
device0:event0 - general event chrdev.
The files, lis3l02dqbuffersimple.c and iio_utils.h in this directory provide an example
of how to use the ring buffer and event interfaces.