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