From 8e4bff4cab0ddac6060645b0715210484d02ff40 Mon Sep 17 00:00:00 2001
From: Yuval Adam <_@yuv.al>
Date: Wed, 30 Aug 2017 08:25:59 +0000
Subject: Initial file dump from open source release
---
Documentation/DocBook/media/v4l/dev-rds.xml | 196 ++++++++++++++++++++++++++++
1 file changed, 196 insertions(+)
create mode 100644 Documentation/DocBook/media/v4l/dev-rds.xml
(limited to 'Documentation/DocBook/media/v4l/dev-rds.xml')
diff --git a/Documentation/DocBook/media/v4l/dev-rds.xml b/Documentation/DocBook/media/v4l/dev-rds.xml
new file mode 100644
index 00000000..be2f3373
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/dev-rds.xml
@@ -0,0 +1,196 @@
+
RDS Interface
+
+ The Radio Data System transmits supplementary
+information in binary format, for example the station name or travel
+information, on an inaudible audio subcarrier of a radio program. This
+interface is aimed at devices capable of receiving and/or transmitting RDS
+information.
+
+ For more information see the core RDS standard
+and the RBDS standard .
+
+ Note that the RBDS standard as is used in the USA is almost identical
+to the RDS standard. Any RDS decoder/encoder can also handle RBDS. Only some of the
+fields have slightly different meanings. See the RBDS standard for more
+information.
+
+ The RBDS standard also specifies support for MMBS (Modified Mobile Search).
+This is a proprietary format which seems to be discontinued. The RDS interface does not
+support this format. Should support for MMBS (or the so-called 'E blocks' in general)
+be needed, then please contact the linux-media mailing list: &v4l-ml;.
+
+
+ Querying Capabilities
+
+ Devices supporting the RDS capturing API set
+the V4L2_CAP_RDS_CAPTURE flag in
+the capabilities field of &v4l2-capability;
+returned by the &VIDIOC-QUERYCAP; ioctl. Any tuner that supports RDS
+will set the V4L2_TUNER_CAP_RDS flag in
+the capability field of &v4l2-tuner;. If
+the driver only passes RDS blocks without interpreting the data
+the V4L2_TUNER_CAP_RDS_BLOCK_IO flag has to be
+set, see Reading RDS data.
+For future use the
+flag V4L2_TUNER_CAP_RDS_CONTROLS has also been
+defined. However, a driver for a radio tuner with this capability does
+not yet exist, so if you are planning to write such a driver you
+should discuss this on the linux-media mailing list: &v4l-ml;.
+
+ Whether an RDS signal is present can be detected by looking
+at the rxsubchans field of &v4l2-tuner;:
+the V4L2_TUNER_SUB_RDS will be set if RDS data
+was detected.
+
+ Devices supporting the RDS output API
+set the V4L2_CAP_RDS_OUTPUT flag in
+the capabilities field of &v4l2-capability;
+returned by the &VIDIOC-QUERYCAP; ioctl.
+Any modulator that supports RDS will set the
+V4L2_TUNER_CAP_RDS flag in the capability
+field of &v4l2-modulator;.
+In order to enable the RDS transmission one must set the V4L2_TUNER_SUB_RDS
+bit in the txsubchans field of &v4l2-modulator;.
+If the driver only passes RDS blocks without interpreting the data
+the V4L2_TUNER_CAP_RDS_BLOCK_IO flag has to be set. If the
+tuner is capable of handling RDS entities like program identification codes and radio
+text, the flag V4L2_TUNER_CAP_RDS_CONTROLS should be set,
+see Writing RDS data and
+FM Transmitter Control Reference.
+
+
+
+ Reading RDS data
+
+ RDS data can be read from the radio device
+with the &func-read; function. The data is packed in groups of three bytes.
+
+
+
+ Writing RDS data
+
+ RDS data can be written to the radio device
+with the &func-write; function. The data is packed in groups of three bytes,
+as follows:
+
+
+
+ RDS datastructures
+
+ Block description
+
+
+
+
+
+ Bits 0-2
+ Block (aka offset) of the received data.
+
+
+ Bits 3-5
+ Deprecated. Currently identical to bits 0-2. Do not use these bits.
+
+
+ Bit 6
+ Corrected bit. Indicates that an error was corrected for this data block.
+
+
+ Bit 7
+ Error bit. Indicates that an uncorrectable error occurred during reception of this block.
+
+
+
+
+
+
+ Block defines
+
+
+
+
+
+
+
+ V4L2_RDS_BLOCK_MSK
+
+ 7
+ Mask for bits 0-2 to get the block ID.
+
+
+ V4L2_RDS_BLOCK_A
+
+ 0
+ Block A.
+
+
+ V4L2_RDS_BLOCK_B
+
+ 1
+ Block B.
+
+
+ V4L2_RDS_BLOCK_C
+
+ 2
+ Block C.
+
+
+ V4L2_RDS_BLOCK_D
+
+ 3
+ Block D.
+
+
+ V4L2_RDS_BLOCK_C_ALT
+
+ 4
+ Block C'.
+
+
+ V4L2_RDS_BLOCK_INVALID
+ read-only
+ 7
+ An invalid block.
+
+
+ V4L2_RDS_BLOCK_CORRECTED
+ read-only
+ 0x40
+ A bit error was detected but corrected.
+
+
+ V4L2_RDS_BLOCK_ERROR
+ read-only
+ 0x80
+ An uncorrectable error occurred.
+
+
+
+