1# SPDX-License-Identifier: GPL-2.0-only
2
3menuconfig 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
17if RC_CORE
18
19config 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
32config 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
40source "drivers/media/rc/keymaps/Kconfig"
41
42menuconfig RC_DECODERS
43	bool "Remote controller decoders"
44
45if RC_DECODERS
46
47config 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
54config 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
62config 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
71config 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
79config 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
87config 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
95config 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
107config 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
116config 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
125config 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
133config 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
141endif #RC_DECODERS
142
143menuconfig RC_DEVICES
144	bool "Remote Controller devices"
145
146if RC_DEVICES
147
148config IR_ENE
149	tristate "ENE eHome Receiver/Transceiver (pnp id: ENE0100/ENE02xxx)"
150	depends on PNP || COMPILE_TEST
151	help
152	   Say Y here to enable support for integrated infrared receiver
153	   /transceiver made by ENE.
154
155	   You can see if you have it by looking at lspnp output.
156	   Output should include ENE0100 ENE0200 or something similar.
157
158	   To compile this driver as a module, choose M here: the
159	   module will be called ene_ir.
160
161config IR_FINTEK
162	tristate "Fintek Consumer Infrared Transceiver"
163	depends on PNP || COMPILE_TEST
164	help
165	   Say Y here to enable support for integrated infrared receiver
166	   /transceiver made by Fintek. This chip is found on assorted
167	   Jetway motherboards (and of course, possibly others).
168
169	   To compile this driver as a module, choose M here: the
170	   module will be called fintek-cir.
171
172config IR_GPIO_CIR
173	tristate "GPIO IR remote control"
174	depends on (OF && GPIOLIB) || COMPILE_TEST
175	help
176	   Say Y if you want to use GPIO based IR Receiver.
177
178	   To compile this driver as a module, choose M here: the module will
179	   be called gpio-ir-recv.
180
181config IR_GPIO_TX
182	tristate "GPIO IR Bit Banging Transmitter"
183	depends on LIRC
184	depends on (OF && GPIOLIB) || COMPILE_TEST
185	help
186	   Say Y if you want to a GPIO based IR transmitter. This is a
187	   bit banging driver.
188
189	   To compile this driver as a module, choose M here: the module will
190	   be called gpio-ir-tx.
191
192config IR_HIX5HD2
193	tristate "Hisilicon hix5hd2 IR remote control"
194	depends on (OF && HAS_IOMEM) || COMPILE_TEST
195	help
196	   Say Y here if you want to use hisilicon hix5hd2 remote control.
197	   To compile this driver as a module, choose M here: the module will be
198	   called ir-hix5hd2.
199
200	   If you're not sure, select N here
201
202config IR_IGORPLUGUSB
203	tristate "IgorPlug-USB IR Receiver"
204	depends on USB
205	help
206	   Say Y here if you want to use the IgorPlug-USB IR Receiver by
207	   Igor Cesko. This device is included on the Fit-PC2.
208
209	   Note that this device can only record bursts of 36 IR pulses and
210	   spaces, which is not enough for the NEC, Sanyo and RC-6 protocol.
211
212	   To compile this driver as a module, choose M here: the module will
213	   be called igorplugusb.
214
215config IR_IGUANA
216	tristate "IguanaWorks USB IR Transceiver"
217	depends on USB
218	help
219	   Say Y here if you want to use the IguanaWorks USB IR Transceiver.
220	   Both infrared receive and send are supported. If you want to
221	   change the ID or the pin config, use the user space driver from
222	   IguanaWorks.
223
224	   Only firmware 0x0205 and later is supported.
225
226	   To compile this driver as a module, choose M here: the module will
227	   be called iguanair.
228
229config IR_IMON
230	tristate "SoundGraph iMON Receiver and Display"
231	depends on USB
232	help
233	   Say Y here if you want to use a SoundGraph iMON (aka Antec Veris)
234	   IR Receiver and/or LCD/VFD/VGA display.
235
236	   To compile this driver as a module, choose M here: the
237	   module will be called imon.
238
239config IR_IMON_RAW
240	tristate "SoundGraph iMON Receiver (early raw IR models)"
241	depends on USB
242	help
243	   Say Y here if you want to use a SoundGraph iMON IR Receiver,
244	   early raw models.
245
246	   To compile this driver as a module, choose M here: the
247	   module will be called imon_raw.
248
249config IR_ITE_CIR
250	tristate "ITE Tech Inc. IT8712/IT8512 Consumer Infrared Transceiver"
251	depends on PNP || COMPILE_TEST
252	help
253	   Say Y here to enable support for integrated infrared receivers
254	   /transceivers made by ITE Tech Inc. These are found in
255	   several ASUS devices, like the ASUS Digimatrix or the ASUS
256	   EEEBox 1501U.
257
258	   To compile this driver as a module, choose M here: the
259	   module will be called ite-cir.
260
261config IR_MCEUSB
262	tristate "Windows Media Center Ed. eHome Infrared Transceiver"
263	depends on USB
264	help
265	   Say Y here if you want to use a Windows Media Center Edition
266	   eHome Infrared Transceiver.
267
268	   To compile this driver as a module, choose M here: the
269	   module will be called mceusb.
270
271config IR_MESON
272	tristate "Amlogic Meson IR remote receiver"
273	depends on ARCH_MESON || COMPILE_TEST
274	help
275	   Say Y if you want to use the IR remote receiver available
276	   on Amlogic Meson SoCs.
277
278	   To compile this driver as a module, choose M here: the
279	   module will be called meson-ir.
280
281config IR_MESON_TX
282	tristate "Amlogic Meson IR TX"
283	depends on ARCH_MESON || COMPILE_TEST
284	help
285	   Say Y if you want to use the IR transmitter available on
286	   Amlogic Meson SoCs.
287
288	   To compile this driver as a module, choose M here: the
289	   module will be called meson-ir-tx.
290
291config IR_MTK
292	tristate "Mediatek IR remote receiver"
293	depends on ARCH_MEDIATEK || COMPILE_TEST
294	help
295	   Say Y if you want to use the IR remote receiver available
296	   on Mediatek SoCs.
297
298	   To compile this driver as a module, choose M here: the
299	   module will be called mtk-cir.
300
301config IR_NUVOTON
302	tristate "Nuvoton w836x7hg Consumer Infrared Transceiver"
303	depends on PNP || COMPILE_TEST
304	help
305	   Say Y here to enable support for integrated infrared receiver
306	   /transceiver made by Nuvoton (formerly Winbond). This chip is
307	   found in the ASRock ION 330HT, as well as assorted Intel
308	   DP55-series motherboards (and of course, possibly others).
309
310	   To compile this driver as a module, choose M here: the
311	   module will be called nuvoton-cir.
312
313config IR_PWM_TX
314	tristate "PWM IR transmitter"
315	depends on LIRC
316	depends on PWM
317	depends on OF || COMPILE_TEST
318	help
319	   Say Y if you want to use a PWM based IR transmitter. This is
320	   more power efficient than the bit banging gpio driver.
321
322	   To compile this driver as a module, choose M here: the module will
323	   be called pwm-ir-tx.
324
325config IR_REDRAT3
326	tristate "RedRat3 IR Transceiver"
327	depends on USB
328	select NEW_LEDS
329	select LEDS_CLASS
330	help
331	   Say Y here if you want to use a RedRat3 Infrared Transceiver.
332
333	   To compile this driver as a module, choose M here: the
334	   module will be called redrat3.
335
336config IR_RX51
337	tristate "Nokia N900 IR transmitter diode"
338	depends on (OMAP_DM_TIMER && PWM_OMAP_DMTIMER && ARCH_OMAP2PLUS || COMPILE_TEST) && RC_CORE
339	help
340	   Say Y or M here if you want to enable support for the IR
341	   transmitter diode built in the Nokia N900 (RX51) device.
342
343	   The driver uses omap DM timers for generating the carrier
344	   wave and pulses.
345
346config IR_SERIAL
347	tristate "Homebrew Serial Port Receiver"
348	help
349	   Say Y if you want to use Homebrew Serial Port Receivers and
350	   Transceivers.
351
352	   To compile this driver as a module, choose M here: the module will
353	   be called serial-ir.
354
355config IR_SERIAL_TRANSMITTER
356	bool "Serial Port Transmitter"
357	depends on IR_SERIAL
358	help
359	   Serial Port Transmitter support
360
361config IR_SPI
362	tristate "SPI connected IR LED"
363	depends on SPI && LIRC
364	depends on OF || COMPILE_TEST
365	help
366	  Say Y if you want to use an IR LED connected through SPI bus.
367
368	  To compile this driver as a module, choose M here: the module will be
369	  called ir-spi.
370
371config IR_STREAMZAP
372	tristate "Streamzap PC Remote IR Receiver"
373	depends on USB
374	help
375	   Say Y here if you want to use a Streamzap PC Remote
376	   Infrared Receiver.
377
378	   To compile this driver as a module, choose M here: the
379	   module will be called streamzap.
380
381config IR_SUNXI
382	tristate "SUNXI IR remote control"
383	depends on ARCH_SUNXI || COMPILE_TEST
384	help
385	   Say Y if you want to use sunXi internal IR Controller
386
387	   To compile this driver as a module, choose M here: the module will
388	   be called sunxi-ir.
389
390config IR_TOY
391	tristate "Infrared Toy and IR Droid"
392	depends on USB
393	help
394	   Say Y here if you want to use the Infrared Toy or IR Droid, USB
395	   versions.
396
397	   To compile this driver as a module, choose M here: the module will be
398	   called ir_toy.
399
400config IR_TTUSBIR
401	tristate "TechnoTrend USB IR Receiver"
402	depends on USB
403	select NEW_LEDS
404	select LEDS_CLASS
405	help
406	   Say Y here if you want to use the TechnoTrend USB IR Receiver. The
407	   driver can control the led.
408
409	   To compile this driver as a module, choose M here: the module will
410	   be called ttusbir.
411
412config IR_WINBOND_CIR
413	tristate "Winbond IR remote control"
414	depends on (X86 && PNP) || COMPILE_TEST
415	select NEW_LEDS
416	select LEDS_CLASS
417	select BITREVERSE
418	help
419	   Say Y here if you want to use the IR remote functionality found
420	   in some Winbond SuperI/O chips. Currently only the WPCD376I
421	   chip is supported (included in some Intel Media series
422	   motherboards).
423
424	   To compile this driver as a module, choose M here: the module will
425	   be called winbond_cir.
426
427config RC_ATI_REMOTE
428	tristate "ATI / X10 based USB RF remote controls"
429	depends on USB
430	help
431	   Say Y here if you want to use an X10 based USB remote control.
432	   These are RF remotes with USB receivers.
433
434	   Such devices include the ATI remote that comes with many of ATI's
435	   All-In-Wonder video cards, the X10 "Lola" remote, NVIDIA RF remote,
436	   Medion RF remote, and SnapStream FireFly remote.
437
438	   This driver provides mouse pointer, left and right mouse buttons,
439	   and maps all the other remote buttons to keypress events.
440
441	   To compile this driver as a module, choose M here: the module will be
442	   called ati_remote.
443
444config RC_LOOPBACK
445	tristate "Remote Control Loopback Driver"
446	help
447	   Say Y here if you want support for the remote control loopback
448	   driver which allows TX data to be sent back as RX data.
449	   This is mostly useful for debugging purposes.
450
451	   If you're not sure, select N here.
452
453	   To compile this driver as a module, choose M here: the module will
454	   be called rc_loopback.
455
456config RC_ST
457	tristate "ST remote control receiver"
458	depends on ARCH_STI || COMPILE_TEST
459	help
460	   Say Y here if you want support for ST remote control driver
461	   which allows both IR and UHF RX.
462	   The driver passes raw pulse and space information to the LIRC decoder.
463
464	   If you're not sure, select N here.
465
466config RC_XBOX_DVD
467	tristate "Xbox DVD Movie Playback Kit"
468	depends on USB
469	help
470	   Say Y here if you want to use the Xbox DVD Movie Playback Kit.
471	   These are IR remotes with USB receivers for the Original Xbox (2001).
472
473	   To compile this driver as a module, choose M here: the module will be
474	   called xbox_remote.
475
476source "drivers/media/rc/img-ir/Kconfig"
477
478endif #RC_DEVICES
479
480endif #RC_CORE
481