  <title>Software Defined Radio Interface (SDR)</title>

  <para>
SDR is an abbreviation of Software Defined Radio, the radio device
which uses application software for modulation or demodulation. This interface
is intended for controlling and data streaming of such devices.
  </para>

  <para>
SDR devices are accessed through character device special files named
<filename>/dev/swradio0</filename> to <filename>/dev/swradio255</filename>
with major number 81 and dynamically allocated minor numbers 0 to 255.
  </para>

  <section>
    <title>Querying Capabilities</title>

    <para>
Devices supporting the SDR receiver interface set the
<constant>V4L2_CAP_SDR_CAPTURE</constant> and
<constant>V4L2_CAP_TUNER</constant> flag in the
<structfield>capabilities</structfield> field of &v4l2-capability;
returned by the &VIDIOC-QUERYCAP; ioctl. That flag means the device has an
Analog to Digital Converter (ADC), which is a mandatory element for the SDR receiver.
    </para>
    <para>
Devices supporting the SDR transmitter interface set the
<constant>V4L2_CAP_SDR_OUTPUT</constant> and
<constant>V4L2_CAP_MODULATOR</constant> flag in the
<structfield>capabilities</structfield> field of &v4l2-capability;
returned by the &VIDIOC-QUERYCAP; ioctl. That flag means the device has an
Digital to Analog Converter (DAC), which is a mandatory element for the SDR transmitter.
    </para>
    <para>
At least one of the read/write, streaming or asynchronous I/O methods must
be supported.
    </para>
  </section>

  <section>
    <title>Supplemental Functions</title>

    <para>
SDR devices can support <link linkend="control">controls</link>, and must
support the <link linkend="tuner">tuner</link> ioctls. Tuner ioctls are used
for setting the ADC/DAC sampling rate (sampling frequency) and the possible
radio frequency (RF).
    </para>

    <para>
The <constant>V4L2_TUNER_SDR</constant> tuner type is used for setting SDR
device ADC/DAC frequency, and the <constant>V4L2_TUNER_RF</constant>
tuner type is used for setting radio frequency.
The tuner index of the RF tuner (if any) must always follow the SDR tuner index.
Normally the SDR tuner is #0 and the RF tuner is #1.
    </para>

    <para>
The &VIDIOC-S-HW-FREQ-SEEK; ioctl is not supported.
    </para>
  </section>

  <section>
    <title>Data Format Negotiation</title>

    <para>
The SDR device uses the <link linkend="format">format</link> ioctls to
select the capture and output format. Both the sampling resolution and the data
streaming format are bound to that selectable format. In addition to the basic
<link linkend="format">format</link> ioctls, the &VIDIOC-ENUM-FMT; ioctl
must be supported as well.
    </para>

    <para>
To use the <link linkend="format">format</link> ioctls applications set the
<structfield>type</structfield> field of a &v4l2-format; to
<constant>V4L2_BUF_TYPE_SDR_CAPTURE</constant> or
<constant>V4L2_BUF_TYPE_SDR_OUTPUT</constant> and use the &v4l2-sdr-format;
<structfield>sdr</structfield> member of the <structfield>fmt</structfield>
union as needed per the desired operation.
Currently there is two fields, <structfield>pixelformat</structfield> and
<structfield>buffersize</structfield>, of struct &v4l2-sdr-format; which are
used. Content of the <structfield>pixelformat</structfield> is V4L2 FourCC
code of the data format. The <structfield>buffersize</structfield> field is
maximum buffer size in bytes required for data transfer, set by the driver in
order to inform application.
    </para>

    <table pgwide="1" frame="none" id="v4l2-sdr-format">
      <title>struct <structname>v4l2_sdr_format</structname></title>
      <tgroup cols="3">
        &cs-str;
        <tbody valign="top">
          <row>
            <entry>__u32</entry>
            <entry><structfield>pixelformat</structfield></entry>
            <entry>
The data format or type of compression, set by the application. This is a
little endian <link linkend="v4l2-fourcc">four character code</link>.
V4L2 defines SDR formats in <xref linkend="sdr-formats" />.
           </entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>buffersize</structfield></entry>
            <entry>
Maximum size in bytes required for data. Value is set by the driver.
           </entry>
          </row>
          <row>
            <entry>__u8</entry>
            <entry><structfield>reserved[24]</structfield></entry>
            <entry>This array is reserved for future extensions.
Drivers and applications must set it to zero.</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <para>
An SDR device may support <link linkend="rw">read/write</link>
and/or streaming (<link linkend="mmap">memory mapping</link>
or <link linkend="userp">user pointer</link>) I/O.
    </para>

  </section>
