1.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
2.. c:namespace:: RC
3
4.. _lirc_get_features:
5
6***********************
7ioctl LIRC_GET_FEATURES
8***********************
9
10Name
11====
12
13LIRC_GET_FEATURES - Get the underlying hardware device's features
14
15Synopsis
16========
17
18.. c:macro:: LIRC_GET_FEATURES
19
20``int ioctl(int fd, LIRC_GET_FEATURES, __u32 *features)``
21
22Arguments
23=========
24
25``fd``
26    File descriptor returned by open().
27
28``features``
29    Bitmask with the LIRC features.
30
31Description
32===========
33
34Get the underlying hardware device's features. If a driver does not
35announce support of certain features, calling of the corresponding ioctls
36is undefined.
37
38LIRC features
39=============
40
41.. _LIRC-CAN-REC-RAW:
42
43``LIRC_CAN_REC_RAW``
44
45    Unused. Kept just to avoid breaking uAPI.
46
47.. _LIRC-CAN-REC-PULSE:
48
49``LIRC_CAN_REC_PULSE``
50
51    Unused. Kept just to avoid breaking uAPI.
52    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting.
53
54.. _LIRC-CAN-REC-MODE2:
55
56``LIRC_CAN_REC_MODE2``
57
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.
63
64.. _LIRC-CAN-REC-LIRCCODE:
65
66``LIRC_CAN_REC_LIRCCODE``
67
68    Unused. Kept just to avoid breaking uAPI.
69
70.. _LIRC-CAN-REC-SCANCODE:
71
72``LIRC_CAN_REC_SCANCODE``
73
74    This is a scancode driver for receiving. This means that
75    :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
76
77.. _LIRC-CAN-SET-SEND-CARRIER:
78
79``LIRC_CAN_SET_SEND_CARRIER``
80
81    The driver supports changing the modulation frequency via
82    :ref:`ioctl LIRC_SET_SEND_CARRIER <LIRC_SET_SEND_CARRIER>`.
83
84.. _LIRC-CAN-SET-SEND-DUTY-CYCLE:
85
86``LIRC_CAN_SET_SEND_DUTY_CYCLE``
87
88    The driver supports changing the duty cycle using
89    :ref:`ioctl LIRC_SET_SEND_DUTY_CYCLE <LIRC_SET_SEND_DUTY_CYCLE>`.
90
91.. _LIRC-CAN-SET-TRANSMITTER-MASK:
92
93``LIRC_CAN_SET_TRANSMITTER_MASK``
94
95    The driver supports changing the active transmitter(s) using
96    :ref:`ioctl LIRC_SET_TRANSMITTER_MASK <LIRC_SET_TRANSMITTER_MASK>`.
97
98.. _LIRC-CAN-SET-REC-CARRIER:
99
100``LIRC_CAN_SET_REC_CARRIER``
101
102    The driver supports setting the receive carrier frequency using
103    :ref:`ioctl LIRC_SET_REC_CARRIER <LIRC_SET_REC_CARRIER>`.
104
105.. _LIRC-CAN-SET-REC-CARRIER-RANGE:
106
107``LIRC_CAN_SET_REC_CARRIER_RANGE``
108
109    The driver supports
110    :ref:`ioctl LIRC_SET_REC_CARRIER_RANGE <LIRC_SET_REC_CARRIER_RANGE>`.
111
112.. _LIRC-CAN-GET-REC-RESOLUTION:
113
114``LIRC_CAN_GET_REC_RESOLUTION``
115
116    The driver supports
117    :ref:`ioctl LIRC_GET_REC_RESOLUTION <LIRC_GET_REC_RESOLUTION>`.
118
119.. _LIRC-CAN-SET-REC-TIMEOUT:
120
121``LIRC_CAN_SET_REC_TIMEOUT``
122
123    The driver supports
124    :ref:`ioctl LIRC_SET_REC_TIMEOUT <LIRC_SET_REC_TIMEOUT>`.
125
126.. _LIRC-CAN-MEASURE-CARRIER:
127
128``LIRC_CAN_MEASURE_CARRIER``
129
130    The driver supports measuring of the modulation frequency using
131    :ref:`ioctl LIRC_SET_MEASURE_CARRIER_MODE <LIRC_SET_MEASURE_CARRIER_MODE>`.
132
133.. _LIRC-CAN-USE-WIDEBAND-RECEIVER:
134
135``LIRC_CAN_USE_WIDEBAND_RECEIVER``
136
137    The driver supports learning mode using
138    :ref:`ioctl LIRC_SET_WIDEBAND_RECEIVER <LIRC_SET_WIDEBAND_RECEIVER>`.
139
140.. _LIRC-CAN-SEND-RAW:
141
142``LIRC_CAN_SEND_RAW``
143
144    Unused. Kept just to avoid breaking uAPI.
145
146.. _LIRC-CAN-SEND-PULSE:
147
148``LIRC_CAN_SEND_PULSE``
149
150    The driver supports sending (also called as IR blasting or IR TX) using
151    :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
152    :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
153    transmit, as long as the kernel is recent enough. Use the
154    :ref:`lirc_set_send_mode` to switch modes.
155
156.. _LIRC-CAN-SEND-MODE2:
157
158``LIRC_CAN_SEND_MODE2``
159
160    Unused. Kept just to avoid breaking uAPI.
161    :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving.
162
163.. _LIRC-CAN-SEND-LIRCCODE:
164
165``LIRC_CAN_SEND_LIRCCODE``
166
167    Unused. Kept just to avoid breaking uAPI.
168
169Return Value
170============
171
172On success 0 is returned, on error -1 and the ``errno`` variable is set
173appropriately. The generic error codes are described at the
174:ref:`Generic Error Codes <gen-errors>` chapter.
175