<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>ADXL345 driver — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="BNO055 driver" href="bno055.html" />
<link rel="prev" title="ADXL380 driver" href="adxl380.html" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../accounting/index.html">Accounting</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cpu-freq/index.html">CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../edac/index.html">EDAC Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../fpga/index.html">FPGA</a></li>
<li class="toctree-l3"><a class="reference internal" href="../i2c/index.html">I2C/SMBus Subsystem</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html">Industrial I/O</a></li>
<li class="toctree-l3"><a class="reference internal" href="../pcmcia/index.html">PCMCIA</a></li>
<li class="toctree-l3"><a class="reference internal" href="../spi/index.html">Serial Peripheral Interface (SPI)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../w1/index.html">1-Wire Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../watchdog/index.html">Watchdog Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../virt/index.html">Virtualization Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../hwmon/index.html">Hardware Monitoring</a></li>
<li class="toctree-l3"><a class="reference internal" href="../accel/index.html">Compute Accelerators</a></li>
<li class="toctree-l3"><a class="reference internal" href="../security/index.html">Security Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../crypto/index.html">Crypto API</a></li>
<li class="toctree-l3"><a class="reference internal" href="../bpf/index.html">BPF Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../usb/index.html">USB support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../PCI/index.html">PCI Bus Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../misc-devices/index.html">Assorted Miscellaneous Devices Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../peci/index.html">PECI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../wmi/index.html">WMI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tee/index.html">TEE Subsystem</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/iio/adxl345.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="adxl345-driver">
<h1>ADXL345 driver<a class="headerlink" href="#adxl345-driver" title="Link to this heading">¶</a></h1>
<p>This driver supports Analog Device’s ADXL345/375 on SPI/I2C bus.</p>
<section id="supported-devices">
<h2>1. Supported Devices<a class="headerlink" href="#supported-devices" title="Link to this heading">¶</a></h2>
<ul class="simple">
<li><p><a class="reference external" href="https://www.analog.com/ADXL345">ADXL345</a></p></li>
<li><p><a class="reference external" href="https://www.analog.com/ADXL375">ADXL375</a></p></li>
</ul>
<p>The ADXL345 is a generic purpose low power, 3-axis accelerometer with selectable
measurement ranges. The ADXL345 supports the ±2 g, ±4 g, ±8 g, and ±16 g ranges.</p>
</section>
<section id="device-attributes">
<h2>2. Device Attributes<a class="headerlink" href="#device-attributes" title="Link to this heading">¶</a></h2>
<p>Each IIO device, has a device folder under <code class="docutils literal notranslate"><span class="pre">/sys/bus/iio/devices/iio:deviceX</span></code>,
where X is the IIO index of the device. Under these folders reside a set of
device files, depending on the characteristics and features of the hardware
device in questions. These files are consistently generalized and documented in
the IIO ABI documentation.</p>
<p>The following table shows the ADXL345 related device files, found in the
specific device folder path <code class="docutils literal notranslate"><span class="pre">/sys/bus/iio/devices/iio:deviceX</span></code>.</p>
<table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>3-Axis Accelerometer related device files</p></td>
<td><p>Description</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_sampling_frequency</p></td>
<td><p>Currently selected sample rate.</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_sampling_frequency_available</p></td>
<td><p>Available sampling frequency configurations.</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_scale</p></td>
<td><p>Scale/range for the accelerometer channels.</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_scale_available</p></td>
<td><p>Available scale ranges for the accelerometer channel.</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_x_calibbias</p></td>
<td><p>Calibration offset for the X-axis accelerometer channel.</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_x_raw</p></td>
<td><p>Raw X-axis accelerometer channel value.</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_y_calibbias</p></td>
<td><p>y-axis acceleration offset correction</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_y_raw</p></td>
<td><p>Raw Y-axis accelerometer channel value.</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_z_calibbias</p></td>
<td><p>Calibration offset for the Z-axis accelerometer channel.</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_z_raw</p></td>
<td><p>Raw Z-axis accelerometer channel value.</p></td>
</tr>
</tbody>
</table>
<section id="channel-processed-values">
<h3>Channel Processed Values<a class="headerlink" href="#channel-processed-values" title="Link to this heading">¶</a></h3>
<p>A channel value can be read from its _raw attribute. The value returned is the
raw value as reported by the devices. To get the processed value of the channel,
apply the following formula:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>processed<span class="w"> </span><span class="nv">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">(</span>_raw<span class="w"> </span>+<span class="w"> </span>_offset<span class="o">)</span><span class="w"> </span>*<span class="w"> </span>_scale
</pre></div>
</div>
<p>Where _offset and _scale are device attributes. If no _offset attribute is
present, simply assume its value is 0.</p>
<table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>Channel type</p></td>
<td><p>Measurement unit</p></td>
</tr>
<tr class="row-even"><td><p>Acceleration on X, Y, and Z axis</p></td>
<td><p>Meters per second squared</p></td>
</tr>
</tbody>
</table>
</section>
<section id="sensor-events">
<h3>Sensor Events<a class="headerlink" href="#sensor-events" title="Link to this heading">¶</a></h3>
<p>Specific IIO events are triggered by their corresponding interrupts. The sensor
driver supports either none or a single active interrupt (INT) line, selectable
from the two available options: INT1 or INT2. The active INT line should be
specified in the device tree. If no INT line is configured, the sensor defaults
to FIFO bypass mode, where event detection is disabled and only X, Y, and Z axis
measurements are available.</p>
<p>The table below lists the ADXL345-related device files located in the
device-specific path: <code class="docutils literal notranslate"><span class="pre">/sys/bus/iio/devices/iio:deviceX/events</span></code>.
Note that activity and inactivity detection are DC-coupled by default;
therefore, only the AC-coupled activity and inactivity events are explicitly
listed.</p>
<table class="docutils align-default">
<tbody>
<tr class="row-odd"><td><p>Event handle</p></td>
<td><p>Description</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_gesture_doubletap_en</p></td>
<td><p>Enable double tap detection on all axis</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_gesture_doubletap_reset_timeout</p></td>
<td><p>Double tap window in [us]</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_gesture_doubletap_tap2_min_delay</p></td>
<td><p>Double tap latent in [us]</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_gesture_singletap_timeout</p></td>
<td><p>Single tap duration in [us]</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_gesture_singletap_value</p></td>
<td><p>Single tap threshold value in 62.5/LSB</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_mag_falling_period</p></td>
<td><p>Inactivity time in seconds</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_mag_falling_value</p></td>
<td><p>Inactivity threshold value in 62.5/LSB</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_mag_adaptive_rising_en</p></td>
<td><p>Enable AC coupled activity on X axis</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_mag_adaptive_falling_period</p></td>
<td><p>AC coupled inactivity time in seconds</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_mag_adaptive_falling_value</p></td>
<td><p>AC coupled inactivity threshold in 62.5/LSB</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_mag_adaptive_rising_value</p></td>
<td><p>AC coupled activity threshold in 62.5/LSB</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_mag_rising_en</p></td>
<td><p>Enable activity detection on X axis</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_mag_rising_value</p></td>
<td><p>Activity threshold value in 62.5/LSB</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_x_gesture_singletap_en</p></td>
<td><p>Enable single tap detection on X axis</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_x&y&z_mag_falling_en</p></td>
<td><p>Enable inactivity detection on all axis</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_x&y&z_mag_adaptive_falling_en</p></td>
<td><p>Enable AC coupled inactivity on all axis</p></td>
</tr>
<tr class="row-even"><td><p>in_accel_y_gesture_singletap_en</p></td>
<td><p>Enable single tap detection on Y axis</p></td>
</tr>
<tr class="row-odd"><td><p>in_accel_z_gesture_singletap_en</p></td>
<td><p>Enable single tap detection on Z axis</p></td>
</tr>
</tbody>
</table>
<p>Please refer to the sensor’s datasheet for a detailed description of this
functionality.</p>
<p>Manually setting the <strong>ODR</strong> will cause the driver to estimate default values
for inactivity detection timing, where higher ODR values correspond to longer
default wait times, and lower ODR values to shorter ones. If these defaults do
not meet your application’s needs, you can explicitly configure the inactivity
wait time. Setting this value to 0 will revert to the default behavior.</p>
<p>When changing the <strong>g range</strong> configuration, the driver attempts to estimate
appropriate activity and inactivity thresholds by scaling the default values
based on the ratio of the previous range to the new one. The resulting threshold
will never be zero and will always fall between 1 and 255, corresponding to up
to 62.5 g/LSB as specified in the datasheet. However, you can override these
estimated thresholds by setting explicit values.</p>
<p>When <strong>activity</strong> and <strong>inactivity</strong> events are enabled, the driver
automatically manages hysteresis behavior by setting the <strong>link</strong> and
<strong>auto-sleep</strong> bits. The link bit connects the activity and inactivity
functions, so that one follows the other. The auto-sleep function puts the
sensor into sleep mode when inactivity is detected, reducing power consumption
to the sub-12.5 Hz rate.</p>
<p>The inactivity time is configurable between 1 and 255 seconds. In addition to
inactivity detection, the sensor also supports free-fall detection, which, from
the IIO perspective, is treated as a fall in magnitude across all axes. In
sensor terms, free-fall is defined using an inactivity period ranging from 0.000
to 1.000 seconds.</p>
<p>The driver behaves as follows:</p>
<ul class="simple">
<li><p>If the configured inactivity period is 1 second or more, the driver uses the
sensor’s inactivity register. This allows the event to be linked with
activity detection, use auto-sleep, and be either AC- or DC-coupled.</p></li>
<li><p>If the inactivity period is less than 1 second, the event is treated as plain
inactivity or free-fall detection. In this case, auto-sleep and coupling
(AC/DC) are not applied.</p></li>
<li><p>If an inactivity time of 0 seconds is configured, the driver selects a
heuristically determined default period (greater than 1 second) to optimize
power consumption. This also uses the inactivity register.</p></li>
</ul>
<p>Note: According to the datasheet, the optimal ODR for detecting activity,
or inactivity (or when operating with the free-fall register) should fall within
the range of 12.5 Hz to 400 Hz. The recommended free-fall threshold is between
300 mg and 600 mg (register values 0x05 to 0x09).</p>
<p>In DC-coupled mode, the current acceleration magnitude is directly compared to
the values in the THRESH_ACT and THRESH_INACT registers to determine activity or
inactivity. In contrast, AC-coupled activity detection uses the acceleration
value at the start of detection as a reference point, and subsequent samples are
compared against this reference. While DC-coupling is the default mode-comparing
live values to fixed thresholds-AC-coupling relies on an internal filter
relative to the configured threshold.</p>
<p>AC and DC coupling modes are configured separately for activity and inactivity
detection, but only one mode can be active at a time for each. For example, if
AC-coupled activity detection is enabled and then DC-coupled mode is set, only
DC-coupled activity detection will be active. In other words, only the most
recent configuration is applied.</p>
<p><strong>Single tap</strong> detection can be configured per the datasheet by setting the
threshold and duration parameters. When only single tap detection is enabled,
the single tap interrupt triggers as soon as the acceleration exceeds the
threshold (marking the start of the duration) and then falls below it, provided
the duration limit is not exceeded. If both single tap and double tap detections
are enabled, the single tap interrupt is triggered only after the double tap
event has been either confirmed or dismissed.</p>
<p>To configure <strong>double tap</strong> detection, you must also set the window and latency
parameters in microseconds (µs). The latency period begins once the single tap
signal drops below the threshold and acts as a waiting time during which any
spikes are ignored for double tap detection. After the latency period ends, the
detection window starts. If the acceleration rises above the threshold and then
falls below it again within this window, a double tap event is triggered upon
the fall below the threshold.</p>
<p>Double tap event detection is thoroughly explained in the datasheet. After a
single tap event is detected, a double tap event may follow, provided the signal
meets certain criteria. However, double tap detection can be invalidated for
three reasons:</p>
<ul class="simple">
<li><p>If the <strong>suppress bit</strong> is set, any acceleration spike above the tap
threshold during the tap latency period immediately invalidates the double tap
detection. In other words, no spikes are allowed during latency when the
suppress bit is active.</p></li>
<li><p>The double tap event is invalid if the acceleration is above the threshold at
the start of the double tap window.</p></li>
<li><p>Double tap detection is also invalidated if the acceleration duration exceeds
the limit set by the duration register.</p></li>
</ul>
<p>For double tap detection, the same duration applies as for single tap: the
acceleration must rise above the threshold and then fall below it within the
specified duration. Note that the suppress bit is typically enabled when double
tap detection is active.</p>
</section>
<section id="usage-examples">
<h3>Usage Examples<a class="headerlink" href="#usage-examples" title="Link to this heading">¶</a></h3>
<p>Show device name:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>name
adxl345
</pre></div>
</div>
<p>Show accelerometer channels value:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>in_accel_x_raw
-1
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>in_accel_y_raw
<span class="m">2</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>in_accel_z_raw
-253
</pre></div>
</div>
<p>Set calibration offset for accelerometer channels:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>in_accel_x_calibbias
<span class="m">0</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">50</span><span class="w"> </span>><span class="w"> </span>in_accel_x_calibbias
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>in_accel_x_calibbias
<span class="m">50</span>
</pre></div>
</div>
<p>Given the 13-bit full resolution, the available ranges are calculated by the
following formula:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>g<span class="w"> </span>*<span class="w"> </span><span class="m">2</span><span class="w"> </span>*<span class="w"> </span><span class="m">9</span>.80665<span class="o">)</span><span class="w"> </span>/<span class="w"> </span><span class="o">(</span><span class="m">2</span>^<span class="o">(</span>resolution<span class="o">)</span><span class="w"> </span>-<span class="w"> </span><span class="m">1</span><span class="o">)</span><span class="w"> </span>*<span class="w"> </span><span class="m">100</span><span class="p">;</span><span class="w"> </span><span class="k">for</span><span class="w"> </span>g<span class="w"> </span>:<span class="o">=</span><span class="w"> </span><span class="m">2</span><span class="p">|</span><span class="m">4</span><span class="p">|</span><span class="m">8</span><span class="p">|</span><span class="m">16</span>
</pre></div>
</div>
<p>Scale range configuration:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>./in_accel_scale
<span class="m">0</span>.478899
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>./in_accel_scale_available
<span class="m">0</span>.478899<span class="w"> </span><span class="m">0</span>.957798<span class="w"> </span><span class="m">1</span>.915595<span class="w"> </span><span class="m">3</span>.831190
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span>.915595<span class="w"> </span>><span class="w"> </span>./in_accel_scale
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>./in_accel_scale
<span class="m">1</span>.915595
</pre></div>
</div>
<p>Set output data rate (ODR):</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>./in_accel_sampling_frequency
<span class="m">200</span>.000000
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>./in_accel_sampling_frequency_available
<span class="m">0</span>.097000<span class="w"> </span><span class="m">0</span>.195000<span class="w"> </span><span class="m">0</span>.390000<span class="w"> </span><span class="m">0</span>.781000<span class="w"> </span><span class="m">1</span>.562000<span class="w"> </span><span class="m">3</span>.125000<span class="w"> </span><span class="m">6</span>.250000<span class="w"> </span><span class="m">12</span>.500000<span class="w"> </span><span class="m">25</span>.000000<span class="w"> </span><span class="m">50</span>.000000<span class="w"> </span><span class="m">100</span>.000000<span class="w"> </span><span class="m">200</span>.000000<span class="w"> </span><span class="m">400</span>.000000<span class="w"> </span><span class="m">800</span>.000000<span class="w"> </span><span class="m">1600</span>.000000<span class="w"> </span><span class="m">3200</span>.000000
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span>.562000<span class="w"> </span>><span class="w"> </span>./in_accel_sampling_frequency
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span>cat<span class="w"> </span>./in_accel_sampling_frequency
<span class="m">1</span>.562000
</pre></div>
</div>
<p>Configure one or several events:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:><span class="w"> </span><span class="nb">cd</span><span class="w"> </span>/sys/bus/iio/devices/iio:device0
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./buffer0/in_accel_x_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./buffer0/in_accel_y_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./buffer0/in_accel_z_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./scan_elements/in_accel_x_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./scan_elements/in_accel_y_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./scan_elements/in_accel_z_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">14</span><span class="w"> </span>><span class="w"> </span>./in_accel_x_calibbias
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">2</span><span class="w"> </span>><span class="w"> </span>./in_accel_y_calibbias
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span>-250<span class="w"> </span>><span class="w"> </span>./in_accel_z_calibbias
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">24</span><span class="w"> </span>><span class="w"> </span>./buffer0/length
<span class="c1">## AC coupled activity, threshold [62.5/LSB]</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">6</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_mag_adaptive_rising_value
<span class="c1">## AC coupled inactivity, threshold, [62.5/LSB]</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">4</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_mag_adaptive_falling_value
<span class="c1">## AC coupled inactivity, time [s]</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">3</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_mag_adaptive_falling_period
<span class="c1">## singletap, threshold</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">35</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_gesture_singletap_value
<span class="c1">## singletap, duration [us]</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">0</span>.001875<span class="w"> </span>><span class="w"> </span>./events/in_accel_gesture_singletap_timeout
<span class="c1">## doubletap, window [us]</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">0</span>.025<span class="w"> </span>><span class="w"> </span>./events/in_accel_gesture_doubletap_reset_timeout
<span class="c1">## doubletap, latent [us]</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">0</span>.025<span class="w"> </span>><span class="w"> </span>./events/in_accel_gesture_doubletap_tap2_min_delay
<span class="c1">## AC coupled activity, enable</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_mag_adaptive_rising_en
<span class="c1">## AC coupled inactivity, enable</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_x<span class="se">\&</span>y<span class="se">\&</span>z_mag_adaptive_falling_en
<span class="c1">## singletap, enable</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_x_gesture_singletap_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_y_gesture_singletap_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_z_gesture_singletap_en
<span class="c1">## doubletap, enable</span>
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>./events/in_accel_gesture_doubletap_en
</pre></div>
</div>
<p>Verify incoming events:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:#<span class="w"> </span>iio_event_monitor<span class="w"> </span>adxl345
Found<span class="w"> </span>IIO<span class="w"> </span>device<span class="w"> </span>with<span class="w"> </span>name<span class="w"> </span>adxl345<span class="w"> </span>with<span class="w"> </span>device<span class="w"> </span>number<span class="w"> </span><span class="m">0</span>
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063415957073383</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063415963770218</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063416002563061</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>gesture,<span class="w"> </span>direction:<span class="w"> </span>singletap
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063426271128739</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>x<span class="p">&</span>y<span class="p">&</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>falling
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063436539080713</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>x<span class="p">&</span>y<span class="p">&</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>falling
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063438357970381</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063446726161586</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063446727892670</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063446743019768</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063446744650696</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063446763559386</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>gesture,<span class="w"> </span>direction:<span class="w"> </span>singletap
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1739063448818126480</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>x<span class="p">&</span>y<span class="p">&</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>falling
...
</pre></div>
</div>
<p>Activity and inactivity belong together and indicate state changes as follows</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:#<span class="w"> </span>iio_event_monitor<span class="w"> </span>adxl345
Found<span class="w"> </span>IIO<span class="w"> </span>device<span class="w"> </span>with<span class="w"> </span>name<span class="w"> </span>adxl345<span class="w"> </span>with<span class="w"> </span>device<span class="w"> </span>number<span class="w"> </span><span class="m">0</span>
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1744648001133946293</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>x<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>rising
<span class="w"> </span><after<span class="w"> </span>inactivity<span class="w"> </span><span class="nb">time</span><span class="w"> </span>elapsed>
Event:<span class="w"> </span>time:<span class="w"> </span><span class="m">1744648057724775499</span>,<span class="w"> </span>type:<span class="w"> </span>accel<span class="o">(</span>x<span class="p">&</span>y<span class="p">&</span>z<span class="o">)</span>,<span class="w"> </span>channel:<span class="w"> </span><span class="m">0</span>,<span class="w"> </span>evtype:<span class="w"> </span>mag,<span class="w"> </span>direction:<span class="w"> </span>falling
...
</pre></div>
</div>
</section>
</section>
<section id="device-buffers">
<h2>3. Device Buffers<a class="headerlink" href="#device-buffers" title="Link to this heading">¶</a></h2>
<p>This driver supports IIO buffers.</p>
<p>All devices support retrieving the raw acceleration and temperature measurements
using buffers.</p>
<section id="id1">
<h3>Usage examples<a class="headerlink" href="#id1" title="Link to this heading">¶</a></h3>
<p>Select channels for buffer read:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>scan_elements/in_accel_x_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>scan_elements/in_accel_y_en
root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>scan_elements/in_accel_z_en
</pre></div>
</div>
<p>Set the number of samples to be stored in the buffer:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">10</span><span class="w"> </span>><span class="w"> </span>buffer/length
</pre></div>
</div>
<p>Enable buffer readings:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:/sys/bus/iio/devices/iio:device0><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>><span class="w"> </span>buffer/enable
</pre></div>
</div>
<p>Obtain buffered data:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>root:><span class="w"> </span>iio_readdev<span class="w"> </span>-b<span class="w"> </span><span class="m">16</span><span class="w"> </span>-s<span class="w"> </span><span class="m">1024</span><span class="w"> </span>adxl345<span class="w"> </span><span class="p">|</span><span class="w"> </span>hexdump<span class="w"> </span>-d
WARNING:<span class="w"> </span>High-speed<span class="w"> </span>mode<span class="w"> </span>not<span class="w"> </span>enabled
<span class="m">0000000</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00010</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00011</span>
<span class="m">0000010</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00007</span>
<span class="m">0000020</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span>
<span class="m">0000030</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span>
<span class="m">0000040</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00010</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00004</span>
<span class="m">0000050</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00013</span>
<span class="m">0000060</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00012</span>
<span class="m">0000070</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00005</span>
<span class="m">0000080</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span>
<span class="m">0000090</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span>
00000a0<span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00015</span><span class="w"> </span><span class="m">00004</span>
00000b0<span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00011</span>
00000c0<span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00013</span>
00000d0<span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00002</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00005</span>
00000e0<span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00003</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00013</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00013</span>
00000f0<span class="w"> </span><span class="m">00004</span><span class="w"> </span><span class="m">00014</span><span class="w"> </span><span class="m">00015</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span><span class="w"> </span><span class="m">00011</span><span class="w"> </span><span class="m">00005</span><span class="w"> </span><span class="m">00012</span>
...
</pre></div>
</div>
<p>See <code class="docutils literal notranslate"><span class="pre">Documentation/iio/iio_devbuf.rst</span></code> for more information about how buffered
data is structured.</p>
</section>
</section>
<section id="iio-interfacing-tools">
<h2>4. IIO Interfacing Tools<a class="headerlink" href="#iio-interfacing-tools" title="Link to this heading">¶</a></h2>
<p>See <code class="docutils literal notranslate"><span class="pre">Documentation/iio/iio_tools.rst</span></code> for the description of the available IIO
interfacing tools.</p>
</section>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../_sources/iio/adxl345.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>