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