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
18source "drivers/media/rc/keymaps/Kconfig"
19
20config 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
28config 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
41menuconfig RC_DECODERS
42	bool "Remote controller decoders"
43
44if RC_DECODERS
45config 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
53config 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
61config 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
69config 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
77config 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
85config 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
94config 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
103config 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
112config 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
120config 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
127config 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
139endif #RC_DECODERS
140
141menuconfig RC_DEVICES
142	bool "Remote Controller devices"
143
144if RC_DEVICES
145
146config 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
163config 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
176config 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
186config 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
196config 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
206config 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
216config 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
228config 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
239config 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
249config 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
259config 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
269config 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
281config 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
292config 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
302config 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
312config 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
327config 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
340config 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
354config 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
366config 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
376source "drivers/media/rc/img-ir/Kconfig"
377
378config 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
390config 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
399config 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
410config 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
422config 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
432config 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
441config 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
450config IR_SERIAL_TRANSMITTER
451	bool "Serial Port Transmitter"
452	depends on IR_SERIAL
453	help
454	   Serial Port Transmitter support
455
456config 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
466config 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
476endif #RC_DEVICES
477
478endif #RC_CORE
479