Linux 4.16-rc1
[cris-mirror.git] / Documentation / media / uapi / rc / lirc-get-features.rst
blob889a8807037b31b5b559f8a01c8ef22f9f775772
1 .. -*- coding: utf-8; mode: rst -*-
3 .. _lirc_get_features:
5 ***********************
6 ioctl LIRC_GET_FEATURES
7 ***********************
9 Name
10 ====
12 LIRC_GET_FEATURES - Get the underlying hardware device's features
14 Synopsis
15 ========
17 .. c:function:: int ioctl( int fd, LIRC_GET_FEATURES, __u32 *features)
18     :name: LIRC_GET_FEATURES
20 Arguments
21 =========
23 ``fd``
24     File descriptor returned by open().
26 ``features``
27     Bitmask with the LIRC features.
30 Description
31 ===========
34 Get the underlying hardware device's features. If a driver does not
35 announce support of certain features, calling of the corresponding ioctls
36 is undefined.
38 LIRC features
39 =============
41 .. _LIRC-CAN-REC-RAW:
43 ``LIRC_CAN_REC_RAW``
45     Unused. Kept just to avoid breaking uAPI.
47 .. _LIRC-CAN-REC-PULSE:
49 ``LIRC_CAN_REC_PULSE``
51     Unused. Kept just to avoid breaking uAPI.
52     :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting.
54 .. _LIRC-CAN-REC-MODE2:
56 ``LIRC_CAN_REC_MODE2``
58     This is raw IR driver for receiving. This means that
59     :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies
60     that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported,
61     as long as the kernel is recent enough. Use the
62     :ref:`lirc_set_rec_mode` to switch modes.
64 .. _LIRC-CAN-REC-LIRCCODE:
66 ``LIRC_CAN_REC_LIRCCODE``
68     Unused. Kept just to avoid breaking uAPI.
70 .. _LIRC-CAN-REC-SCANCODE:
72 ``LIRC_CAN_REC_SCANCODE``
74     This is a scancode driver for receiving. This means that
75     :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
77 .. _LIRC-CAN-SET-SEND-CARRIER:
79 ``LIRC_CAN_SET_SEND_CARRIER``
81     The driver supports changing the modulation frequency via
82     :ref:`ioctl LIRC_SET_SEND_CARRIER <LIRC_SET_SEND_CARRIER>`.
84 .. _LIRC-CAN-SET-SEND-DUTY-CYCLE:
86 ``LIRC_CAN_SET_SEND_DUTY_CYCLE``
88     The driver supports changing the duty cycle using
89     :ref:`ioctl LIRC_SET_SEND_DUTY_CYCLE <LIRC_SET_SEND_DUTY_CYCLE>`.
91 .. _LIRC-CAN-SET-TRANSMITTER-MASK:
93 ``LIRC_CAN_SET_TRANSMITTER_MASK``
95     The driver supports changing the active transmitter(s) using
96     :ref:`ioctl LIRC_SET_TRANSMITTER_MASK <LIRC_SET_TRANSMITTER_MASK>`.
98 .. _LIRC-CAN-SET-REC-CARRIER:
100 ``LIRC_CAN_SET_REC_CARRIER``
102     The driver supports setting the receive carrier frequency using
103     :ref:`ioctl LIRC_SET_REC_CARRIER <LIRC_SET_REC_CARRIER>`.
105 .. _LIRC-CAN-SET-REC-DUTY-CYCLE-RANGE:
107 ``LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE``
109     Unused. Kept just to avoid breaking uAPI.
111 .. _LIRC-CAN-SET-REC-CARRIER-RANGE:
113 ``LIRC_CAN_SET_REC_CARRIER_RANGE``
115     The driver supports
116     :ref:`ioctl LIRC_SET_REC_CARRIER_RANGE <LIRC_SET_REC_CARRIER_RANGE>`.
118 .. _LIRC-CAN-GET-REC-RESOLUTION:
120 ``LIRC_CAN_GET_REC_RESOLUTION``
122     The driver supports
123     :ref:`ioctl LIRC_GET_REC_RESOLUTION <LIRC_GET_REC_RESOLUTION>`.
125 .. _LIRC-CAN-SET-REC-TIMEOUT:
127 ``LIRC_CAN_SET_REC_TIMEOUT``
129     The driver supports
130     :ref:`ioctl LIRC_SET_REC_TIMEOUT <LIRC_SET_REC_TIMEOUT>`.
132 .. _LIRC-CAN-SET-REC-FILTER:
134 ``LIRC_CAN_SET_REC_FILTER``
136     Unused. Kept just to avoid breaking uAPI.
138 .. _LIRC-CAN-MEASURE-CARRIER:
140 ``LIRC_CAN_MEASURE_CARRIER``
142     The driver supports measuring of the modulation frequency using
143     :ref:`ioctl LIRC_SET_MEASURE_CARRIER_MODE <LIRC_SET_MEASURE_CARRIER_MODE>`.
145 .. _LIRC-CAN-USE-WIDEBAND-RECEIVER:
147 ``LIRC_CAN_USE_WIDEBAND_RECEIVER``
149     The driver supports learning mode using
150     :ref:`ioctl LIRC_SET_WIDEBAND_RECEIVER <LIRC_SET_WIDEBAND_RECEIVER>`.
152 .. _LIRC-CAN-NOTIFY-DECODE:
154 ``LIRC_CAN_NOTIFY_DECODE``
156     Unused. Kept just to avoid breaking uAPI.
158 .. _LIRC-CAN-SEND-RAW:
160 ``LIRC_CAN_SEND_RAW``
162     Unused. Kept just to avoid breaking uAPI.
164 .. _LIRC-CAN-SEND-PULSE:
166 ``LIRC_CAN_SEND_PULSE``
168     The driver supports sending (also called as IR blasting or IR TX) using
169     :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
170     :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
171     transmit, as long as the kernel is recent enough. Use the
172     :ref:`lirc_set_send_mode` to switch modes.
174 .. _LIRC-CAN-SEND-MODE2:
176 ``LIRC_CAN_SEND_MODE2``
178     Unused. Kept just to avoid breaking uAPI.
179     :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving.
181 .. _LIRC-CAN-SEND-LIRCCODE:
183 ``LIRC_CAN_SEND_LIRCCODE``
185     Unused. Kept just to avoid breaking uAPI.
188 Return Value
189 ============
191 On success 0 is returned, on error -1 and the ``errno`` variable is set
192 appropriately. The generic error codes are described at the
193 :ref:`Generic Error Codes <gen-errors>` chapter.