xref: /openbmc/linux/Documentation/userspace-api/media/v4l/ext-ctrls-fm-tx.rst (revision cbecf716ca618fd44feda6bd9a64a8179d031fc5)
1*059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
254f38fcaSMauro Carvalho Chehab
354f38fcaSMauro Carvalho Chehab.. _fm-tx-controls:
454f38fcaSMauro Carvalho Chehab
554f38fcaSMauro Carvalho Chehab********************************
654f38fcaSMauro Carvalho ChehabFM Transmitter Control Reference
754f38fcaSMauro Carvalho Chehab********************************
854f38fcaSMauro Carvalho Chehab
954f38fcaSMauro Carvalho ChehabThe FM Transmitter (FM_TX) class includes controls for common features
1054f38fcaSMauro Carvalho Chehabof FM transmissions capable devices. Currently this class includes
1154f38fcaSMauro Carvalho Chehabparameters for audio compression, pilot tone generation, audio deviation
1254f38fcaSMauro Carvalho Chehablimiter, RDS transmission and tuning power features.
1354f38fcaSMauro Carvalho Chehab
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho Chehab.. _fm-tx-control-id:
1654f38fcaSMauro Carvalho Chehab
1754f38fcaSMauro Carvalho ChehabFM_TX Control IDs
1854f38fcaSMauro Carvalho Chehab=================
1954f38fcaSMauro Carvalho Chehab
2054f38fcaSMauro Carvalho Chehab``V4L2_CID_FM_TX_CLASS (class)``
2154f38fcaSMauro Carvalho Chehab    The FM_TX class descriptor. Calling
2254f38fcaSMauro Carvalho Chehab    :ref:`VIDIOC_QUERYCTRL` for this control will
2354f38fcaSMauro Carvalho Chehab    return a description of this control class.
2454f38fcaSMauro Carvalho Chehab
2554f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_DEVIATION (integer)``
2654f38fcaSMauro Carvalho Chehab    Configures RDS signal frequency deviation level in Hz. The range and
2754f38fcaSMauro Carvalho Chehab    step are driver-specific.
2854f38fcaSMauro Carvalho Chehab
2954f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_PI (integer)``
3054f38fcaSMauro Carvalho Chehab    Sets the RDS Programme Identification field for transmission.
3154f38fcaSMauro Carvalho Chehab
3254f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_PTY (integer)``
3354f38fcaSMauro Carvalho Chehab    Sets the RDS Programme Type field for transmission. This encodes up
3454f38fcaSMauro Carvalho Chehab    to 31 pre-defined programme types.
3554f38fcaSMauro Carvalho Chehab
3654f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_PS_NAME (string)``
3754f38fcaSMauro Carvalho Chehab    Sets the Programme Service name (PS_NAME) for transmission. It is
3854f38fcaSMauro Carvalho Chehab    intended for static display on a receiver. It is the primary aid to
3954f38fcaSMauro Carvalho Chehab    listeners in programme service identification and selection. In
4054f38fcaSMauro Carvalho Chehab    Annex E of :ref:`iec62106`, the RDS specification, there is a full
4154f38fcaSMauro Carvalho Chehab    description of the correct character encoding for Programme Service
4254f38fcaSMauro Carvalho Chehab    name strings. Also from RDS specification, PS is usually a single
4354f38fcaSMauro Carvalho Chehab    eight character text. However, it is also possible to find receivers
4454f38fcaSMauro Carvalho Chehab    which can scroll strings sized as 8 x N characters. So, this control
4554f38fcaSMauro Carvalho Chehab    must be configured with steps of 8 characters. The result is it must
4654f38fcaSMauro Carvalho Chehab    always contain a string with size multiple of 8.
4754f38fcaSMauro Carvalho Chehab
4854f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_RADIO_TEXT (string)``
4954f38fcaSMauro Carvalho Chehab    Sets the Radio Text info for transmission. It is a textual
5054f38fcaSMauro Carvalho Chehab    description of what is being broadcasted. RDS Radio Text can be
5154f38fcaSMauro Carvalho Chehab    applied when broadcaster wishes to transmit longer PS names,
5254f38fcaSMauro Carvalho Chehab    programme-related information or any other text. In these cases,
5354f38fcaSMauro Carvalho Chehab    RadioText should be used in addition to ``V4L2_CID_RDS_TX_PS_NAME``.
5454f38fcaSMauro Carvalho Chehab    The encoding for Radio Text strings is also fully described in Annex
5554f38fcaSMauro Carvalho Chehab    E of :ref:`iec62106`. The length of Radio Text strings depends on
5654f38fcaSMauro Carvalho Chehab    which RDS Block is being used to transmit it, either 32 (2A block)
5754f38fcaSMauro Carvalho Chehab    or 64 (2B block). However, it is also possible to find receivers
5854f38fcaSMauro Carvalho Chehab    which can scroll strings sized as 32 x N or 64 x N characters. So,
5954f38fcaSMauro Carvalho Chehab    this control must be configured with steps of 32 or 64 characters.
6054f38fcaSMauro Carvalho Chehab    The result is it must always contain a string with size multiple of
6154f38fcaSMauro Carvalho Chehab    32 or 64.
6254f38fcaSMauro Carvalho Chehab
6354f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_MONO_STEREO (boolean)``
6454f38fcaSMauro Carvalho Chehab    Sets the Mono/Stereo bit of the Decoder Identification code. If set,
6554f38fcaSMauro Carvalho Chehab    then the audio was recorded as stereo.
6654f38fcaSMauro Carvalho Chehab
6754f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (boolean)``
6854f38fcaSMauro Carvalho Chehab    Sets the
6954f38fcaSMauro Carvalho Chehab    `Artificial Head <http://en.wikipedia.org/wiki/Artificial_head>`__
7054f38fcaSMauro Carvalho Chehab    bit of the Decoder Identification code. If set, then the audio was
7154f38fcaSMauro Carvalho Chehab    recorded using an artificial head.
7254f38fcaSMauro Carvalho Chehab
7354f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_COMPRESSED (boolean)``
7454f38fcaSMauro Carvalho Chehab    Sets the Compressed bit of the Decoder Identification code. If set,
7554f38fcaSMauro Carvalho Chehab    then the audio is compressed.
7654f38fcaSMauro Carvalho Chehab
7754f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_DYNAMIC_PTY (boolean)``
7854f38fcaSMauro Carvalho Chehab    Sets the Dynamic PTY bit of the Decoder Identification code. If set,
7954f38fcaSMauro Carvalho Chehab    then the PTY code is dynamically switched.
8054f38fcaSMauro Carvalho Chehab
8154f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (boolean)``
8254f38fcaSMauro Carvalho Chehab    If set, then a traffic announcement is in progress.
8354f38fcaSMauro Carvalho Chehab
8454f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (boolean)``
8554f38fcaSMauro Carvalho Chehab    If set, then the tuned programme carries traffic announcements.
8654f38fcaSMauro Carvalho Chehab
8754f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_MUSIC_SPEECH (boolean)``
8854f38fcaSMauro Carvalho Chehab    If set, then this channel broadcasts music. If cleared, then it
8954f38fcaSMauro Carvalho Chehab    broadcasts speech. If the transmitter doesn't make this distinction,
9054f38fcaSMauro Carvalho Chehab    then it should be set.
9154f38fcaSMauro Carvalho Chehab
9254f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (boolean)``
9354f38fcaSMauro Carvalho Chehab    If set, then transmit alternate frequencies.
9454f38fcaSMauro Carvalho Chehab
9554f38fcaSMauro Carvalho Chehab``V4L2_CID_RDS_TX_ALT_FREQS (__u32 array)``
9654f38fcaSMauro Carvalho Chehab    The alternate frequencies in kHz units. The RDS standard allows for
9754f38fcaSMauro Carvalho Chehab    up to 25 frequencies to be defined. Drivers may support fewer
9854f38fcaSMauro Carvalho Chehab    frequencies so check the array size.
9954f38fcaSMauro Carvalho Chehab
10054f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_LIMITER_ENABLED (boolean)``
10154f38fcaSMauro Carvalho Chehab    Enables or disables the audio deviation limiter feature. The limiter
10254f38fcaSMauro Carvalho Chehab    is useful when trying to maximize the audio volume, minimize
10354f38fcaSMauro Carvalho Chehab    receiver-generated distortion and prevent overmodulation.
10454f38fcaSMauro Carvalho Chehab
10554f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (integer)``
10654f38fcaSMauro Carvalho Chehab    Sets the audio deviation limiter feature release time. Unit is in
10754f38fcaSMauro Carvalho Chehab    useconds. Step and range are driver-specific.
10854f38fcaSMauro Carvalho Chehab
10954f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_LIMITER_DEVIATION (integer)``
11054f38fcaSMauro Carvalho Chehab    Configures audio frequency deviation level in Hz. The range and step
11154f38fcaSMauro Carvalho Chehab    are driver-specific.
11254f38fcaSMauro Carvalho Chehab
11354f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_COMPRESSION_ENABLED (boolean)``
11454f38fcaSMauro Carvalho Chehab    Enables or disables the audio compression feature. This feature
11554f38fcaSMauro Carvalho Chehab    amplifies signals below the threshold by a fixed gain and compresses
11654f38fcaSMauro Carvalho Chehab    audio signals above the threshold by the ratio of Threshold/(Gain +
11754f38fcaSMauro Carvalho Chehab    Threshold).
11854f38fcaSMauro Carvalho Chehab
11954f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_COMPRESSION_GAIN (integer)``
12054f38fcaSMauro Carvalho Chehab    Sets the gain for audio compression feature. It is a dB value. The
12154f38fcaSMauro Carvalho Chehab    range and step are driver-specific.
12254f38fcaSMauro Carvalho Chehab
12354f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (integer)``
12454f38fcaSMauro Carvalho Chehab    Sets the threshold level for audio compression freature. It is a dB
12554f38fcaSMauro Carvalho Chehab    value. The range and step are driver-specific.
12654f38fcaSMauro Carvalho Chehab
12754f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (integer)``
12854f38fcaSMauro Carvalho Chehab    Sets the attack time for audio compression feature. It is a useconds
12954f38fcaSMauro Carvalho Chehab    value. The range and step are driver-specific.
13054f38fcaSMauro Carvalho Chehab
13154f38fcaSMauro Carvalho Chehab``V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (integer)``
13254f38fcaSMauro Carvalho Chehab    Sets the release time for audio compression feature. It is a
13354f38fcaSMauro Carvalho Chehab    useconds value. The range and step are driver-specific.
13454f38fcaSMauro Carvalho Chehab
13554f38fcaSMauro Carvalho Chehab``V4L2_CID_PILOT_TONE_ENABLED (boolean)``
13654f38fcaSMauro Carvalho Chehab    Enables or disables the pilot tone generation feature.
13754f38fcaSMauro Carvalho Chehab
13854f38fcaSMauro Carvalho Chehab``V4L2_CID_PILOT_TONE_DEVIATION (integer)``
13954f38fcaSMauro Carvalho Chehab    Configures pilot tone frequency deviation level. Unit is in Hz. The
14054f38fcaSMauro Carvalho Chehab    range and step are driver-specific.
14154f38fcaSMauro Carvalho Chehab
14254f38fcaSMauro Carvalho Chehab``V4L2_CID_PILOT_TONE_FREQUENCY (integer)``
14354f38fcaSMauro Carvalho Chehab    Configures pilot tone frequency value. Unit is in Hz. The range and
14454f38fcaSMauro Carvalho Chehab    step are driver-specific.
14554f38fcaSMauro Carvalho Chehab
14654f38fcaSMauro Carvalho Chehab``V4L2_CID_TUNE_PREEMPHASIS``
14754f38fcaSMauro Carvalho Chehab    (enum)
14854f38fcaSMauro Carvalho Chehab
14954f38fcaSMauro Carvalho Chehabenum v4l2_preemphasis -
15054f38fcaSMauro Carvalho Chehab    Configures the pre-emphasis value for broadcasting. A pre-emphasis
15154f38fcaSMauro Carvalho Chehab    filter is applied to the broadcast to accentuate the high audio
15254f38fcaSMauro Carvalho Chehab    frequencies. Depending on the region, a time constant of either 50
15354f38fcaSMauro Carvalho Chehab    or 75 useconds is used. The enum v4l2_preemphasis defines possible
15454f38fcaSMauro Carvalho Chehab    values for pre-emphasis. Here they are:
15554f38fcaSMauro Carvalho Chehab
15654f38fcaSMauro Carvalho Chehab
15754f38fcaSMauro Carvalho Chehab
15854f38fcaSMauro Carvalho Chehab.. flat-table::
15954f38fcaSMauro Carvalho Chehab    :header-rows:  0
16054f38fcaSMauro Carvalho Chehab    :stub-columns: 0
16154f38fcaSMauro Carvalho Chehab
16254f38fcaSMauro Carvalho Chehab    * - ``V4L2_PREEMPHASIS_DISABLED``
16354f38fcaSMauro Carvalho Chehab      - No pre-emphasis is applied.
16454f38fcaSMauro Carvalho Chehab    * - ``V4L2_PREEMPHASIS_50_uS``
16554f38fcaSMauro Carvalho Chehab      - A pre-emphasis of 50 uS is used.
16654f38fcaSMauro Carvalho Chehab    * - ``V4L2_PREEMPHASIS_75_uS``
16754f38fcaSMauro Carvalho Chehab      - A pre-emphasis of 75 uS is used.
16854f38fcaSMauro Carvalho Chehab
16954f38fcaSMauro Carvalho Chehab
17054f38fcaSMauro Carvalho Chehab
17154f38fcaSMauro Carvalho Chehab``V4L2_CID_TUNE_POWER_LEVEL (integer)``
17254f38fcaSMauro Carvalho Chehab    Sets the output power level for signal transmission. Unit is in
17354f38fcaSMauro Carvalho Chehab    dBuV. Range and step are driver-specific.
17454f38fcaSMauro Carvalho Chehab
17554f38fcaSMauro Carvalho Chehab``V4L2_CID_TUNE_ANTENNA_CAPACITOR (integer)``
17654f38fcaSMauro Carvalho Chehab    This selects the value of antenna tuning capacitor manually or
17754f38fcaSMauro Carvalho Chehab    automatically if set to zero. Unit, range and step are
17854f38fcaSMauro Carvalho Chehab    driver-specific.
17954f38fcaSMauro Carvalho Chehab
18054f38fcaSMauro Carvalho ChehabFor more details about RDS specification, refer to :ref:`iec62106`
18154f38fcaSMauro Carvalho Chehabdocument, from CENELEC.
182