1 # SPDX-License-Identifier: GPL-2.0-only
2 
3 menuconfig RC_CORE
4 	tristate "Remote Controller support"
5 	depends on INPUT
6 	help
7 	  Enable support for Remote Controllers on Linux. This is
8 	  needed in order to support several video capture adapters,
9 	  standalone IR receivers/transmitters, and RF receivers.
10 
11 	  Enable this option if you have a video capture board even
12 	  if you don't need IR, as otherwise, you may not be able to
13 	  compile the driver for your adapter.
14 
15 	  Say Y when you have a TV or an IR device.
16 
17 if RC_CORE
18 
19 config BPF_LIRC_MODE2
20 	bool "Support for eBPF programs attached to lirc devices"
21 	depends on BPF_SYSCALL
22 	depends on RC_CORE=y
23 	depends on LIRC
24 	help
25 	   Allow attaching eBPF programs to a lirc device using the bpf(2)
26 	   syscall command BPF_PROG_ATTACH. This is supported for raw IR
27 	   receivers.
28 
29 	   These eBPF programs can be used to decode IR into scancodes, for
30 	   IR protocols not supported by the kernel decoders.
31 
32 config LIRC
33 	bool "LIRC user interface"
34 	help
35 	   Enable this option to enable the Linux Infrared Remote
36 	   Control user interface (e.g. /dev/lirc*). This interface
37 	   passes raw IR to and from userspace, which is needed for
38 	   IR transmitting (aka "blasting") and for the lirc daemon.
39 
40 source "drivers/media/rc/keymaps/Kconfig"
41 
42 menuconfig RC_DECODERS
43 	bool "Remote controller decoders"
44 
45 if RC_DECODERS
46 
47 config IR_IMON_DECODER
48 	tristate "Enable IR raw decoder for the iMON protocol"
49 	help
50 	   Enable this option if you have iMON PAD or Antec Veris infrared
51 	   remote control and you would like to use it with a raw IR
52 	   receiver, or if you wish to use an encoder to transmit this IR.
53 
54 config IR_JVC_DECODER
55 	tristate "Enable IR raw decoder for the JVC protocol"
56 	select BITREVERSE
57 
58 	help
59 	   Enable this option if you have an infrared remote control which
60 	   uses the JVC protocol, and you need software decoding support.
61 
62 config IR_MCE_KBD_DECODER
63 	tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
64 	select BITREVERSE
65 
66 	help
67 	   Enable this option if you have a Microsoft Remote Keyboard for
68 	   Windows Media Center Edition, which you would like to use with
69 	   a raw IR receiver in your system.
70 
71 config IR_NEC_DECODER
72 	tristate "Enable IR raw decoder for the NEC protocol"
73 	select BITREVERSE
74 
75 	help
76 	   Enable this option if you have IR with NEC protocol, and
77 	   if the IR is decoded in software
78 
79 config IR_RC5_DECODER
80 	tristate "Enable IR raw decoder for the RC-5 protocol"
81 	select BITREVERSE
82 
83 	help
84 	   Enable this option if you have IR with RC-5 protocol, and
85 	   if the IR is decoded in software
86 
87 config IR_RC6_DECODER
88 	tristate "Enable IR raw decoder for the RC6 protocol"
89 	select BITREVERSE
90 
91 	help
92 	   Enable this option if you have an infrared remote control which
93 	   uses the RC6 protocol, and you need software decoding support.
94 
95 config IR_RCMM_DECODER
96 	tristate "Enable IR raw decoder for the RC-MM protocol"
97 	help
98 	   Enable this option when you have IR with RC-MM protocol, and
99 	   you need the software decoder. The driver supports 12,
100 	   24 and 32 bits RC-MM variants. You can enable or disable the
101 	   different modes using the following RC protocol keywords:
102 	   'rc-mm-12', 'rc-mm-24' and 'rc-mm-32'.
103 
104 	   To compile this driver as a module, choose M here: the module
105 	   will be called ir-rcmm-decoder.
106 
107 config IR_SANYO_DECODER
108 	tristate "Enable IR raw decoder for the Sanyo protocol"
109 	select BITREVERSE
110 
111 	help
112 	   Enable this option if you have an infrared remote control which
113 	   uses the Sanyo protocol (Sanyo, Aiwa, Chinon remotes),
114 	   and you need software decoding support.
115 
116 config IR_SHARP_DECODER
117 	tristate "Enable IR raw decoder for the Sharp protocol"
118 	select BITREVERSE
119 
120 	help
121 	   Enable this option if you have an infrared remote control which
122 	   uses the Sharp protocol (Sharp, Denon), and you need software
123 	   decoding support.
124 
125 config IR_SONY_DECODER
126 	tristate "Enable IR raw decoder for the Sony protocol"
127 	select BITREVERSE
128 
129 	help
130 	   Enable this option if you have an infrared remote control which
131 	   uses the Sony protocol, and you need software decoding support.
132 
133 config IR_XMP_DECODER
134 	tristate "Enable IR raw decoder for the XMP protocol"
135 	select BITREVERSE
136 
137 	help
138 	   Enable this option if you have IR with XMP protocol, and
139 	   if the IR is decoded in software
140 
141 endif #RC_DECODERS
142 
143 menuconfig RC_DEVICES
144 	bool "Remote Controller devices"
145 
146 if RC_DEVICES
147 
148 config IR_ENE
149 	tristate "ENE eHome Receiver/Transceiver (pnp id: ENE0100/ENE02xxx)"
150 	depends on PNP || COMPILE_TEST
151 	depends on HAS_IOPORT
152 	help
153 	   Say Y here to enable support for integrated infrared receiver
154 	   /transceiver made by ENE.
155 
156 	   You can see if you have it by looking at lspnp output.
157 	   Output should include ENE0100 ENE0200 or something similar.
158 
159 	   To compile this driver as a module, choose M here: the
160 	   module will be called ene_ir.
161 
162 config IR_FINTEK
163 	tristate "Fintek Consumer Infrared Transceiver"
164 	depends on PNP || COMPILE_TEST
165 	depends on HAS_IOPORT
166 	help
167 	   Say Y here to enable support for integrated infrared receiver
168 	   /transceiver made by Fintek. This chip is found on assorted
169 	   Jetway motherboards (and of course, possibly others).
170 
171 	   To compile this driver as a module, choose M here: the
172 	   module will be called fintek-cir.
173 
174 config IR_GPIO_CIR
175 	tristate "GPIO IR remote control"
176 	depends on (OF && GPIOLIB) || COMPILE_TEST
177 	help
178 	   Say Y if you want to use GPIO based IR Receiver.
179 
180 	   To compile this driver as a module, choose M here: the module will
181 	   be called gpio-ir-recv.
182 
183 config IR_GPIO_TX
184 	tristate "GPIO IR Bit Banging Transmitter"
185 	depends on LIRC
186 	depends on (OF && GPIOLIB) || COMPILE_TEST
187 	help
188 	   Say Y if you want to a GPIO based IR transmitter. This is a
189 	   bit banging driver.
190 
191 	   To compile this driver as a module, choose M here: the module will
192 	   be called gpio-ir-tx.
193 
194 config IR_HIX5HD2
195 	tristate "Hisilicon hix5hd2 IR remote control"
196 	depends on (OF && HAS_IOMEM) || COMPILE_TEST
197 	help
198 	   Say Y here if you want to use hisilicon hix5hd2 remote control.
199 	   To compile this driver as a module, choose M here: the module will be
200 	   called ir-hix5hd2.
201 
202 	   If you're not sure, select N here
203 
204 config IR_IGORPLUGUSB
205 	tristate "IgorPlug-USB IR Receiver"
206 	depends on USB
207 	help
208 	   Say Y here if you want to use the IgorPlug-USB IR Receiver by
209 	   Igor Cesko. This device is included on the Fit-PC2.
210 
211 	   Note that this device can only record bursts of 36 IR pulses and
212 	   spaces, which is not enough for the NEC, Sanyo and RC-6 protocol.
213 
214 	   To compile this driver as a module, choose M here: the module will
215 	   be called igorplugusb.
216 
217 config IR_IGUANA
218 	tristate "IguanaWorks USB IR Transceiver"
219 	depends on USB
220 	help
221 	   Say Y here if you want to use the IguanaWorks USB IR Transceiver.
222 	   Both infrared receive and send are supported. If you want to
223 	   change the ID or the pin config, use the user space driver from
224 	   IguanaWorks.
225 
226 	   Only firmware 0x0205 and later is supported.
227 
228 	   To compile this driver as a module, choose M here: the module will
229 	   be called iguanair.
230 
231 config IR_IMON
232 	tristate "SoundGraph iMON Receiver and Display"
233 	depends on USB
234 	help
235 	   Say Y here if you want to use a SoundGraph iMON (aka Antec Veris)
236 	   IR Receiver and/or LCD/VFD/VGA display.
237 
238 	   To compile this driver as a module, choose M here: the
239 	   module will be called imon.
240 
241 config IR_IMON_RAW
242 	tristate "SoundGraph iMON Receiver (early raw IR models)"
243 	depends on USB
244 	help
245 	   Say Y here if you want to use a SoundGraph iMON IR Receiver,
246 	   early raw models.
247 
248 	   To compile this driver as a module, choose M here: the
249 	   module will be called imon_raw.
250 
251 config IR_ITE_CIR
252 	tristate "ITE Tech Inc. IT8712/IT8512 Consumer Infrared Transceiver"
253 	depends on PNP || COMPILE_TEST
254 	depends on HAS_IOPORT
255 	help
256 	   Say Y here to enable support for integrated infrared receivers
257 	   /transceivers made by ITE Tech Inc. These are found in
258 	   several ASUS devices, like the ASUS Digimatrix or the ASUS
259 	   EEEBox 1501U.
260 
261 	   To compile this driver as a module, choose M here: the
262 	   module will be called ite-cir.
263 
264 config IR_MCEUSB
265 	tristate "Windows Media Center Ed. eHome Infrared Transceiver"
266 	depends on USB
267 	help
268 	   Say Y here if you want to use a Windows Media Center Edition
269 	   eHome Infrared Transceiver.
270 
271 	   To compile this driver as a module, choose M here: the
272 	   module will be called mceusb.
273 
274 config IR_MESON
275 	tristate "Amlogic Meson IR remote receiver"
276 	depends on ARCH_MESON || COMPILE_TEST
277 	select REGMAP_MMIO
278 	help
279 	   Say Y if you want to use the IR remote receiver available
280 	   on Amlogic Meson SoCs.
281 
282 	   To compile this driver as a module, choose M here: the
283 	   module will be called meson-ir.
284 
285 config IR_MESON_TX
286 	tristate "Amlogic Meson IR TX"
287 	depends on ARCH_MESON || COMPILE_TEST
288 	help
289 	   Say Y if you want to use the IR transmitter available on
290 	   Amlogic Meson SoCs.
291 
292 	   To compile this driver as a module, choose M here: the
293 	   module will be called meson-ir-tx.
294 
295 config IR_MTK
296 	tristate "Mediatek IR remote receiver"
297 	depends on ARCH_MEDIATEK || COMPILE_TEST
298 	help
299 	   Say Y if you want to use the IR remote receiver available
300 	   on Mediatek SoCs.
301 
302 	   To compile this driver as a module, choose M here: the
303 	   module will be called mtk-cir.
304 
305 config IR_NUVOTON
306 	tristate "Nuvoton w836x7hg Consumer Infrared Transceiver"
307 	depends on PNP || COMPILE_TEST
308 	depends on HAS_IOPORT
309 	help
310 	   Say Y here to enable support for integrated infrared receiver
311 	   /transceiver made by Nuvoton (formerly Winbond). This chip is
312 	   found in the ASRock ION 330HT, as well as assorted Intel
313 	   DP55-series motherboards (and of course, possibly others).
314 
315 	   To compile this driver as a module, choose M here: the
316 	   module will be called nuvoton-cir.
317 
318 config IR_PWM_TX
319 	tristate "PWM IR transmitter"
320 	depends on LIRC
321 	depends on PWM
322 	depends on HIGH_RES_TIMERS
323 	depends on OF
324 	help
325 	   Say Y if you want to use a PWM based IR transmitter. This is
326 	   more power efficient than the bit banging gpio driver.
327 
328 	   To compile this driver as a module, choose M here: the module will
329 	   be called pwm-ir-tx.
330 
331 config IR_REDRAT3
332 	tristate "RedRat3 IR Transceiver"
333 	depends on USB
334 	select NEW_LEDS
335 	select LEDS_CLASS
336 	help
337 	   Say Y here if you want to use a RedRat3 Infrared Transceiver.
338 
339 	   To compile this driver as a module, choose M here: the
340 	   module will be called redrat3.
341 
342 config IR_SERIAL
343 	tristate "Homebrew Serial Port Receiver"
344 	depends on HAS_IOPORT
345 	help
346 	   Say Y if you want to use Homebrew Serial Port Receivers and
347 	   Transceivers.
348 
349 	   To compile this driver as a module, choose M here: the module will
350 	   be called serial-ir.
351 
352 config IR_SERIAL_TRANSMITTER
353 	bool "Serial Port Transmitter"
354 	depends on IR_SERIAL
355 	help
356 	   Serial Port Transmitter support
357 
358 config IR_SPI
359 	tristate "SPI connected IR LED"
360 	depends on SPI && LIRC
361 	depends on OF
362 	help
363 	  Say Y if you want to use an IR LED connected through SPI bus.
364 
365 	  To compile this driver as a module, choose M here: the module will be
366 	  called ir-spi.
367 
368 config IR_STREAMZAP
369 	tristate "Streamzap PC Remote IR Receiver"
370 	depends on USB
371 	help
372 	   Say Y here if you want to use a Streamzap PC Remote
373 	   Infrared Receiver.
374 
375 	   To compile this driver as a module, choose M here: the
376 	   module will be called streamzap.
377 
378 config IR_SUNXI
379 	tristate "SUNXI IR remote control"
380 	depends on ARCH_SUNXI || COMPILE_TEST
381 	help
382 	   Say Y if you want to use sunXi internal IR Controller
383 
384 	   To compile this driver as a module, choose M here: the module will
385 	   be called sunxi-ir.
386 
387 config IR_TOY
388 	tristate "Infrared Toy and IR Droid"
389 	depends on USB
390 	help
391 	   Say Y here if you want to use the Infrared Toy or IR Droid, USB
392 	   versions.
393 
394 	   To compile this driver as a module, choose M here: the module will be
395 	   called ir_toy.
396 
397 config IR_TTUSBIR
398 	tristate "TechnoTrend USB IR Receiver"
399 	depends on USB
400 	select NEW_LEDS
401 	select LEDS_CLASS
402 	help
403 	   Say Y here if you want to use the TechnoTrend USB IR Receiver. The
404 	   driver can control the led.
405 
406 	   To compile this driver as a module, choose M here: the module will
407 	   be called ttusbir.
408 
409 config IR_WINBOND_CIR
410 	tristate "Winbond IR remote control"
411 	depends on (X86 && PNP) || COMPILE_TEST
412 	depends on HAS_IOPORT
413 	select NEW_LEDS
414 	select LEDS_CLASS
415 	select BITREVERSE
416 	help
417 	   Say Y here if you want to use the IR remote functionality found
418 	   in some Winbond SuperI/O chips. Currently only the WPCD376I
419 	   chip is supported (included in some Intel Media series
420 	   motherboards).
421 
422 	   To compile this driver as a module, choose M here: the module will
423 	   be called winbond_cir.
424 
425 config RC_ATI_REMOTE
426 	tristate "ATI / X10 based USB RF remote controls"
427 	depends on USB
428 	help
429 	   Say Y here if you want to use an X10 based USB remote control.
430 	   These are RF remotes with USB receivers.
431 
432 	   Such devices include the ATI remote that comes with many of ATI's
433 	   All-In-Wonder video cards, the X10 "Lola" remote, NVIDIA RF remote,
434 	   Medion RF remote, and SnapStream FireFly remote.
435 
436 	   This driver provides mouse pointer, left and right mouse buttons,
437 	   and maps all the other remote buttons to keypress events.
438 
439 	   To compile this driver as a module, choose M here: the module will be
440 	   called ati_remote.
441 
442 config RC_LOOPBACK
443 	tristate "Remote Control Loopback Driver"
444 	help
445 	   Say Y here if you want support for the remote control loopback
446 	   driver which allows TX data to be sent back as RX data.
447 	   This is mostly useful for debugging purposes.
448 
449 	   If you're not sure, select N here.
450 
451 	   To compile this driver as a module, choose M here: the module will
452 	   be called rc_loopback.
453 
454 config RC_ST
455 	tristate "ST remote control receiver"
456 	depends on ARCH_STI || COMPILE_TEST
457 	help
458 	   Say Y here if you want support for ST remote control driver
459 	   which allows both IR and UHF RX.
460 	   The driver passes raw pulse and space information to the LIRC decoder.
461 
462 	   If you're not sure, select N here.
463 
464 config RC_XBOX_DVD
465 	tristate "Xbox DVD Movie Playback Kit"
466 	depends on USB
467 	help
468 	   Say Y here if you want to use the Xbox DVD Movie Playback Kit.
469 	   These are IR remotes with USB receivers for the Original Xbox (2001).
470 
471 	   To compile this driver as a module, choose M here: the module will be
472 	   called xbox_remote.
473 
474 source "drivers/media/rc/img-ir/Kconfig"
475 
476 endif #RC_DEVICES
477 
478 endif #RC_CORE
479