Commit a8b875a5 authored by Sean Young's avatar Sean Young Committed by Mauro Carvalho Chehab
Browse files

[media] lirc: document lirc modes better



LIRC_MODE_MODE2 and LIRC_MODE_LIRCCODE were not covered at all.

Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 5cd6522c
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ ignore define PULSE_MASK

ignore define LIRC_MODE2_SPACE
ignore define LIRC_MODE2_PULSE
ignore define LIRC_MODE2_TIMEOUT

ignore define LIRC_VALUE_MASK
ignore define LIRC_MODE2_MASK
+46 −7
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ What you should see for a chardev:
    $ ls -l /dev/lirc*
    crw-rw---- 1 root root 248, 0 Jul 2 22:20 /dev/lirc0

.. _lirc_modes:

**********
LIRC modes
**********
@@ -38,25 +40,62 @@ on the following table.

``LIRC_MODE_MODE2``

    The driver returns a sequence of pulse and space codes to userspace.
    The driver returns a sequence of pulse and space codes to userspace,
    as a series of u32 values.

    This mode is used only for IR receive.

    The upper 8 bits determine the packet type, and the lower 24 bits
    the payload. Use ``LIRC_VALUE()`` macro to get the payload, and
    the macro ``LIRC_MODE2()`` will give you the type, which
    is one of:

    ``LIRC_MODE2_PULSE``

        Signifies the presence of IR in microseconds.

    ``LIRC_MODE2_SPACE``

        Signifies absence of IR in microseconds.

    ``LIRC_MODE2_FREQUENCY``

        If measurement of the carrier frequency was enabled with
        :ref:`lirc_set_measure_carrier_mode` then this packet gives you
        the carrier frequency in Hertz.

    ``LIRC_MODE2_TIMEOUT``

        If timeout reports are enabled with
        :ref:`lirc_set_rec_timeout_reports`, when the timeout set with
        :ref:`lirc_set_rec_timeout` expires due to no IR being detected,
        this packet will be sent, with the number of microseconds with
        no IR.

.. _lirc-mode-lirccode:

``LIRC_MODE_LIRCCODE``

    The IR signal is decoded internally by the receiver. The LIRC interface
    returns the scancode as an integer value. This is the usual mode used
    by several TV media cards.
    This mode can be used for IR receive and send.

    This mode is used only for IR receive.
    The IR signal is decoded internally by the receiver, or encoded by the
    transmitter. The LIRC interface represents the scancode as byte string,
    which might not be a u32, it can be any length. The value is entirely
    driver dependent. This mode is used by some older lirc drivers.

    The length of each code depends on the driver, which can be retrieved
    with :ref:`lirc_get_length`. This length is used both
    for transmitting and receiving IR.

.. _lirc-mode-pulse:

``LIRC_MODE_PULSE``

    On puse mode, a sequence of pulse/space integer values are written to the
    lirc device using :Ref:`lirc-write`.
    In pulse mode, a sequence of pulse/space integer values are written to the
    lirc device using :ref:`lirc-write`.

    The values are alternating pulse and space lengths, in microseconds. The
    first and last entry must be a pulse, so there must be an odd number
    of entries.

    This mode is used only for IR send.
+8 −5
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@ LIRC features

``LIRC_CAN_REC_PULSE``

    The driver is capable of receiving using
    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`.
    Unused. Kept just to avoid breaking uAPI.
    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting.

.. _LIRC-CAN-REC-MODE2:

@@ -156,19 +156,22 @@ LIRC features

``LIRC_CAN_SEND_PULSE``

    The driver supports sending using :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`.
    The driver supports sending (also called as IR blasting or IR TX) using
    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`.

.. _LIRC-CAN-SEND-MODE2:

``LIRC_CAN_SEND_MODE2``

    The driver supports sending using :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>`.
    Unused. Kept just to avoid breaking uAPI.
    :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving.

.. _LIRC-CAN-SEND-LIRCCODE:

``LIRC_CAN_SEND_LIRCCODE``

    The driver supports sending codes (also called as IR blasting or IR TX).
    The driver supports sending (also called as IR blasting or IR TX) using
    :ref:`LIRC_MODE_LIRCCODE <lirc-mode-LIRCCODE>`.


Return Value
+2 −1
Original line number Diff line number Diff line
@@ -30,7 +30,8 @@ Arguments
Description
===========

Retrieves the code length in bits (only for ``LIRC-MODE-LIRCCODE``).
Retrieves the code length in bits (only for
:ref:`LIRC_MODE_LIRCCODE <lirc-mode-lirccode>`).
Reads on the device must be done in blocks matching the bit count.
The bit could should be rounded up so that it matches full bytes.

+2 −2
Original line number Diff line number Diff line
@@ -35,8 +35,8 @@ Description

Get/set supported receive modes. Only :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>`
and :ref:`LIRC_MODE_LIRCCODE <lirc-mode-lirccode>` are supported for IR
receive.

receive. Use :ref:`lirc_get_features` to find out which modes the driver
supports.

Return Value
============
Loading