.. SPDX-License-Identifier: GPL-2.0-only

==============
AD3552R driver
==============

Device driver for Analog Devices Inc. AD35XXR series of DACs. The module name
is ``ad3552r``.
With the same module name, two different driver variants are available, the
``generic spi`` variant, to be used with any classic SPI controllers, and the
``hs`` (high speed) variant, for an ADI ``axi-dac`` (IP core) based controller
that allows to reach the maximum sample rate supported from the DACs, using the
DMA transfer and all the SPI lines available (D/QDSPI)..
The high speed driver variant is intended to be used with the ``adi-axi-dac``
backend support enabled, that is enabled by default when the driver is selected.

Supported devices
=================

* `AD3541R <https://www.analog.com/en/products/ad3541r.html>`_
* `AD3542R <https://www.analog.com/en/products/ad3542r.html>`_
* `AD3551R <https://www.analog.com/en/products/ad3551r.html>`_
* `AD3552R <https://www.analog.com/en/products/ad3552r.html>`_

Wiring connections
==================

Generic SPI
-----------
Use the classic SPI S_CLK/CS/SDO/SDI connection.

High speed (using axi-dac backend)
----------------------------------

::

    .-----------------.                .-------.
    |                 |--- D/QSPI -----|       |
    |   DAC IP CORE   |--- SPI S_CLK --|  DAC  |
    |                 |--- SPI CS -----|       |
    |                 |--- LDAC -------|       |
    |                 |--- RESET ------|       |
    |_________________|                |_______|


High speed features
===================

Device attributes
-----------------

The following table shows the ad35xxr related device debug files, found in the
specific debugfs path ``/sys/kernel/debug/iio/iio:deviceX``.

+-----------------------+------------------------------------------------------+
| Debugfs device files  | Description                                          |
+-----------------------+------------------------------------------------------+
| data_source           | The used data source, as                             |
|                       | ``normal``, ``ramp-16bit``, etc.                     |
+-----------------------+------------------------------------------------------+
| data_source_available | The available data sources.                          |
+-----------------------+------------------------------------------------------+

Usage examples
--------------

.. code-block:: bash

	root:/sys/bus/iio/devices/iio:device0# cat data_source
	normal
	root:/sys/bus/iio/devices/iio:device0# echo -n ramp-16bit > data_source
	root:/sys/bus/iio/devices/iio:device0# cat data_source
	ramp-16bit
