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