.. SPDX-License-Identifier: GPL-2.0

=============================
Industrial IIO device buffers
=============================

1. Overview
===========

The Industrial I/O core offers a way for continuous data capture based on a
trigger source. Multiple data channels can be read at once from
``/dev/iio:deviceX`` character device node, thus reducing the CPU load.

Devices with buffer support feature an additional sub-directory in the
``/sys/bus/iio/devices/iio:deviceX/`` directory hierarchy, called bufferY, where
Y defaults to 0, for devices with a single buffer.

2. Buffer attributes
====================

An IIO buffer has an associated attributes directory under
``/sys/bus/iio/iio:deviceX/bufferY/``. The attributes are described below.

``length``
----------

Read / Write attribute which states the total number of data samples (capacity)
that can be stored by the buffer.

``enable``
----------

Read / Write attribute which starts / stops the buffer capture. This file should
be written last, after length and selection of scan elements. Writing a non-zero
value may result in an error, such as EINVAL, if, for example, an unsupported
combination of channels is given.

``watermark``
-------------

Read / Write positive integer attribute specifying the maximum number of scan
elements to wait for.

Poll will block until the watermark is reached.

Blocking read will wait until the minimum between the requested read amount or
the low watermark is available.

Non-blocking read will retrieve the available samples from the buffer even if
there are less samples than the watermark level. This allows the application to
block on poll with a timeout and read the available samples after the timeout
expires and thus have a maximum delay guarantee.

Data available
--------------

Read-only attribute indicating the bytes of data available in the buffer. In the
case of an output buffer, this indicates the amount of empty space available to
write data to. In the case of an input buffer, this indicates the amount of data
available for reading.

Scan elements
-------------

The meta information associated with a channel data placed in a buffer is called
a scan element. The scan elements attributes are presented below.

**_en**

Read / Write attribute used for enabling a channel. If and only if its value
is non-zero, then a triggered capture will contain data samples for this
channel.

**_index**

Read-only unsigned integer attribute specifying the position of the channel in
the buffer. Note these are not dependent on what is enabled and may not be
contiguous. Thus for userspace to establish the full layout these must be used
in conjunction with all _en attributes to establish which channels are present,
and the relevant _type attributes to establish the data storage format.

**_type**

Read-only attribute containing the description of the scan element data storage
within the buffer and hence the form in which it is read from userspace. Format
is [be|le]:[s|u]bits/storagebits[Xrepeat][>>shift], where:

- **be** or **le** specifies big or little-endian.
- **s** or **u** specifies if signed (2's complement) or unsigned.
- **bits** is the number of valid data bits.
- **storagebits** is the number of bits (after padding) that it occupies in the
  buffer.
- **repeat** specifies the number of bits/storagebits repetitions. When the
  repeat element is 0 or 1, then the repeat value is omitted.
- **shift** if specified, is the shift that needs to be applied prior to
  masking out unused bits.

For example, a driver for a 3-axis accelerometer with 12-bit resolution where
data is stored in two 8-bit registers is as follows::

          7   6   5   4   3   2   1   0
        +---+---+---+---+---+---+---+---+
        |D3 |D2 |D1 |D0 | X | X | X | X | (LOW byte, address 0x06)
        +---+---+---+---+---+---+---+---+

          7   6   5   4   3   2   1   0
        +---+---+---+---+---+---+---+---+
        |D11|D10|D9 |D8 |D7 |D6 |D5 |D4 | (HIGH byte, address 0x07)
        +---+---+---+---+---+---+---+---+

will have the following scan element type for each axis:

.. code-block:: bash

        $ cat /sys/bus/iio/devices/iio:device0/buffer0/in_accel_y_type
        le:s12/16>>4

A userspace application will interpret data samples read from the buffer as
two-byte little-endian signed data, that needs a 4 bits right shift before
masking out the 12 valid bits of data.

It is also worth mentioning that the data in the buffer will be naturally
aligned, so the userspace application has to handle the buffers accordingly.

Take for example, a driver with four channels with the following description:
- channel0: index: 0, type: be:u16/16>>0
- channel1: index: 1, type: be:u32/32>>0
- channel2: index: 2, type: be:u32/32>>0
- channel3: index: 3, type: be:u64/64>>0

If all channels are enabled, the data will be aligned in the buffer as follows::

          0-1   2   3   4-7  8-11  12  13  14  15  16-23   -> buffer byte number
        +-----+---+---+-----+-----+---+---+---+---+-----+
        |CHN_0|PAD|PAD|CHN_1|CHN_2|PAD|PAD|PAD|PAD|CHN_3|  -> buffer content
        +-----+---+---+-----+-----+---+---+---+---+-----+

If only channel0 and channel3 are enabled, the data will be aligned in the
buffer as follows::

          0-1   2   3   4   5   6   7  8-15    -> buffer byte number
        +-----+---+---+---+---+---+---+-----+
        |CHN_0|PAD|PAD|PAD|PAD|PAD|PAD|CHN_3|  -> buffer content
        +-----+---+---+---+---+---+---+-----+

Typically the buffered data is found in raw format (unscaled with no offset
applied), however there are corner cases in which the buffered data may be found
in a processed form. Please note that these corner cases are not addressed by
this documentation.

Please see ``Documentation/ABI/testing/sysfs-bus-iio`` for a complete
description of the attributes.
