Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
# SPDX-License-Identifier: GPL-2.0-only

menuconfig CONFIG_RC_CORE
	tristate "Remote Controller support"
	depends on CONFIG_INPUT
	help
	  Enable support for Remote Controllers on Linux. This is
	  needed in order to support several video capture adapters,
	  standalone IR receivers/transmitters, and RF receivers.

	  Enable this option if you have a video capture board even
	  if you don't need IR, as otherwise, you may not be able to
	  compile the driver for your adapter.

	  Say Y when you have a TV or an IR device.

if CONFIG_RC_CORE
source "drivers/media/rc/keymaps/Kconfig"

config CONFIG_LIRC
	bool "LIRC user interface"
	depends on CONFIG_RC_CORE
	help
	   Enable this option to enable the Linux Infrared Remote
	   Control user interface (e.g. /dev/lirc*). This interface
	   passes raw IR to and from userspace, which is needed for
	   IR transmitting (aka "blasting") and for the lirc daemon.

config CONFIG_BPF_LIRC_MODE2
	bool "Support for eBPF programs attached to lirc devices"
	depends on CONFIG_BPF_SYSCALL
	depends on CONFIG_RC_CORE=y
	depends on CONFIG_LIRC
	help
	   Allow attaching eBPF programs to a lirc device using the bpf(2)
	   syscall command BPF_PROG_ATTACH. This is supported for raw IR
	   receivers.

	   These eBPF programs can be used to decode IR into scancodes, for
	   IR protocols not supported by the kernel decoders.

menuconfig CONFIG_RC_DECODERS
	bool "Remote controller decoders"
	depends on CONFIG_RC_CORE

if CONFIG_RC_DECODERS
config CONFIG_IR_NEC_DECODER
	tristate "Enable IR raw decoder for the NEC protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have IR with NEC protocol, and
	   if the IR is decoded in software

config CONFIG_IR_RC5_DECODER
	tristate "Enable IR raw decoder for the RC-5 protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have IR with RC-5 protocol, and
	   if the IR is decoded in software

config CONFIG_IR_RC6_DECODER
	tristate "Enable IR raw decoder for the RC6 protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have an infrared remote control which
	   uses the RC6 protocol, and you need software decoding support.

config CONFIG_IR_JVC_DECODER
	tristate "Enable IR raw decoder for the JVC protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have an infrared remote control which
	   uses the JVC protocol, and you need software decoding support.

config CONFIG_IR_SONY_DECODER
	tristate "Enable IR raw decoder for the Sony protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have an infrared remote control which
	   uses the Sony protocol, and you need software decoding support.

config CONFIG_IR_SANYO_DECODER
	tristate "Enable IR raw decoder for the Sanyo protocol"
	depends on CONFIG_RC_CORE

	help
	   Enable this option if you have an infrared remote control which
	   uses the Sanyo protocol (Sanyo, Aiwa, Chinon remotes),
	   and you need software decoding support.

config CONFIG_IR_SHARP_DECODER
	tristate "Enable IR raw decoder for the Sharp protocol"
	depends on CONFIG_RC_CORE

	help
	   Enable this option if you have an infrared remote control which
	   uses the Sharp protocol (Sharp, Denon), and you need software
	   decoding support.

config CONFIG_IR_MCE_KBD_DECODER
	tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have a Microsoft Remote Keyboard for
	   Windows Media Center Edition, which you would like to use with
	   a raw IR receiver in your system.

config CONFIG_IR_XMP_DECODER
	tristate "Enable IR raw decoder for the XMP protocol"
	depends on CONFIG_RC_CORE
	select CONFIG_BITREVERSE

	help
	   Enable this option if you have IR with XMP protocol, and
	   if the IR is decoded in software

config CONFIG_IR_IMON_DECODER
	tristate "Enable IR raw decoder for the iMON protocol"
	depends on CONFIG_RC_CORE
	help
	   Enable this option if you have iMON PAD or Antec Veris infrared
	   remote control and you would like to use it with a raw IR
	   receiver, or if you wish to use an encoder to transmit this IR.

config CONFIG_IR_RCMM_DECODER
	tristate "Enable IR raw decoder for the RC-MM protocol"
	depends on CONFIG_RC_CORE
	help
	   Enable this option when you have IR with RC-MM protocol, and
	   you need the software decoder. The driver supports 12,
	   24 and 32 bits RC-MM variants. You can enable or disable the
	   different modes using the following RC protocol keywords:
	   'rc-mm-12', 'rc-mm-24' and 'rc-mm-32'.

	   To compile this driver as a module, choose CONFIG_M here: the module
	   will be called ir-rcmm-decoder.

endif #CONFIG_RC_DECODERS

menuconfig CONFIG_RC_DEVICES
	bool "Remote Controller devices"
	depends on CONFIG_RC_CORE

if CONFIG_RC_DEVICES

config CONFIG_RC_ATI_REMOTE
	tristate "ATI / X10 based USB RF remote controls"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use an X10 based CONFIG_USB remote control.
	   These are RF remotes with CONFIG_USB receivers.

	   Such devices include the ATI remote that comes with many of ATI's
	   All-In-Wonder video cards, the X10 "Lola" remote, NVIDIA RF remote,
	   Medion RF remote, and SnapStream FireFly remote.

	   This driver provides mouse pointer, left and right mouse buttons,
	   and maps all the other remote buttons to keypress events.

	   To compile this driver as a module, choose CONFIG_M here: the module will be
	   called ati_remote.

config CONFIG_IR_ENE
	tristate "ENE eHome Receiver/Transceiver (pnp id: ENE0100/ENE02xxx)"
	depends on CONFIG_PNP || CONFIG_COMPILE_TEST
	depends on CONFIG_RC_CORE
	help
	   Say Y here to enable support for integrated infrared receiver
	   /transceiver made by ENE.

	   You can see if you have it by looking at lspnp output.
	   Output should include ENE0100 ENE0200 or something similar.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called ene_ir.

config CONFIG_IR_HIX5HD2
	tristate "Hisilicon hix5hd2 IR remote control"
	depends on CONFIG_RC_CORE
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	help
	   Say Y here if you want to use hisilicon hix5hd2 remote control.
	   To compile this driver as a module, choose CONFIG_M here: the module will be
	   called ir-hix5hd2.

	   If you're not sure, select N here

config CONFIG_IR_IMON
	tristate "SoundGraph iMON Receiver and Display"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use a SoundGraph iMON (aka Antec Veris)
	   IR Receiver and/or LCD/VFD/VGA display.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called imon.

config CONFIG_IR_IMON_RAW
	tristate "SoundGraph iMON Receiver (early raw IR models)"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use a SoundGraph iMON IR Receiver,
	   early raw models.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called imon_raw.

config CONFIG_IR_MCEUSB
	tristate "Windows Media Center Ed. eHome Infrared Transceiver"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use a Windows Media Center Edition
	   eHome Infrared Transceiver.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called mceusb.

config CONFIG_IR_ITE_CIR
	tristate "ITE Tech Inc. IT8712/IT8512 Consumer Infrared Transceiver"
	depends on CONFIG_PNP || CONFIG_COMPILE_TEST
	depends on CONFIG_RC_CORE
	help
	   Say Y here to enable support for integrated infrared receivers
	   /transceivers made by ITE Tech Inc. These are found in
	   several ASUS devices, like the ASUS Digimatrix or the ASUS
	   EEEBox 1501U.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called ite-cir.

config CONFIG_IR_FINTEK
	tristate "Fintek Consumer Infrared Transceiver"
	depends on CONFIG_PNP || CONFIG_COMPILE_TEST
	depends on CONFIG_RC_CORE
	help
	   Say Y here to enable support for integrated infrared receiver
	   /transceiver made by Fintek. This chip is found on assorted
	   Jetway motherboards (and of course, possibly others).

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called fintek-cir.

config CONFIG_IR_MESON
	tristate "Amlogic Meson IR remote receiver"
	depends on CONFIG_RC_CORE
	depends on CONFIG_ARCH_MESON || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to use the IR remote receiver available
	   on Amlogic Meson SoCs.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called meson-ir.

config CONFIG_IR_MTK
	tristate "Mediatek IR remote receiver"
	depends on CONFIG_RC_CORE
	depends on CONFIG_ARCH_MEDIATEK || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to use the IR remote receiver available
	   on Mediatek SoCs.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called mtk-cir.

config CONFIG_IR_NUVOTON
	tristate "Nuvoton w836x7hg Consumer Infrared Transceiver"
	depends on CONFIG_PNP || CONFIG_COMPILE_TEST
	depends on CONFIG_RC_CORE
	help
	   Say Y here to enable support for integrated infrared receiver
	   /transceiver made by Nuvoton (formerly Winbond). This chip is
	   found in the ASRock CONFIG_ION 330HT, as well as assorted Intel
	   DP55-series motherboards (and of course, possibly others).

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called nuvoton-cir.

config CONFIG_IR_REDRAT3
	tristate "RedRat3 IR Transceiver"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_NEW_LEDS
	select CONFIG_LEDS_CLASS
	select CONFIG_USB
	help
	   Say Y here if you want to use a RedRat3 Infrared Transceiver.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called redrat3.

config CONFIG_IR_SPI
	tristate "SPI connected IR LED"
	depends on CONFIG_SPI && CONFIG_LIRC
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	help
	  Say Y if you want to use an IR LED connected through CONFIG_SPI bus.

	  To compile this driver as a module, choose CONFIG_M here: the module will be
	  called ir-spi.

config CONFIG_IR_STREAMZAP
	tristate "Streamzap PC Remote IR Receiver"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use a Streamzap PC Remote
	   Infrared Receiver.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called streamzap.

config CONFIG_IR_WINBOND_CIR
	tristate "Winbond IR remote control"
	depends on (CONFIG_X86 && CONFIG_PNP) || CONFIG_COMPILE_TEST
	depends on CONFIG_RC_CORE
	select CONFIG_NEW_LEDS
	select CONFIG_LEDS_CLASS
	select CONFIG_BITREVERSE
	help
	   Say Y here if you want to use the IR remote functionality found
	   in some Winbond SuperI/O chips. Currently only the WPCD376I
	   chip is supported (included in some Intel Media series
	   motherboards).

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called winbond_cir.

config CONFIG_IR_IGORPLUGUSB
	tristate "IgorPlug-USB IR Receiver"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use the IgorPlug-CONFIG_USB IR Receiver by
	   Igor Cesko. This device is included on the Fit-PC2.

	   Note that this device can only record bursts of 36 IR pulses and
	   spaces, which is not enough for the NEC, Sanyo and RC-6 protocol.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called igorplugusb.

config CONFIG_IR_IGUANA
	tristate "IguanaWorks USB IR Transceiver"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	help
	   Say Y here if you want to use the IguanaWorks CONFIG_USB IR Transceiver.
	   Both infrared receive and send are supported. If you want to
	   change the ID or the pin config, use the user space driver from
	   IguanaWorks.

	   Only firmware 0x0205 and later is supported.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called iguanair.

config CONFIG_IR_TTUSBIR
	tristate "TechnoTrend USB IR Receiver"
	depends on CONFIG_USB_ARCH_HAS_HCD
	depends on CONFIG_RC_CORE
	select CONFIG_USB
	select CONFIG_NEW_LEDS
	select CONFIG_LEDS_CLASS
	help
	   Say Y here if you want to use the TechnoTrend CONFIG_USB IR Receiver. The
	   driver can control the led.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called ttusbir.

config CONFIG_IR_RX51
	tristate "Nokia N900 IR transmitter diode"
	depends on (CONFIG_OMAP_DM_TIMER && CONFIG_PWM_OMAP_DMTIMER && CONFIG_ARCH_OMAP2PLUS || CONFIG_COMPILE_TEST) && CONFIG_RC_CORE
	help
	   Say Y or CONFIG_M here if you want to enable support for the IR
	   transmitter diode built in the Nokia N900 (RX51) device.

	   The driver uses omap DM timers for generating the carrier
	   wave and pulses.

source "drivers/media/rc/img-ir/Kconfig"

config CONFIG_RC_LOOPBACK
	tristate "Remote Control Loopback Driver"
	depends on CONFIG_RC_CORE
	help
	   Say Y here if you want support for the remote control loopback
	   driver which allows TX data to be sent back as RX data.
	   This is mostly useful for debugging purposes.

	   If you're not sure, select N here.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called rc_loopback.

config CONFIG_IR_GPIO_CIR
	tristate "GPIO IR remote control"
	depends on CONFIG_RC_CORE
	depends on (CONFIG_OF && CONFIG_GPIOLIB) || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to use GPIO based IR Receiver.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called gpio-ir-recv.

config CONFIG_IR_GPIO_TX
	tristate "GPIO IR Bit Banging Transmitter"
	depends on CONFIG_RC_CORE
	depends on CONFIG_LIRC
	depends on (CONFIG_OF && CONFIG_GPIOLIB) || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to a GPIO based IR transmitter. This is a
	   bit banging driver.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called gpio-ir-tx.

config CONFIG_IR_PWM_TX
	tristate "PWM IR transmitter"
	depends on CONFIG_RC_CORE
	depends on CONFIG_LIRC
	depends on CONFIG_PWM
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to use a CONFIG_PWM based IR transmitter. This is
	   more power efficient than the bit banging gpio driver.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called pwm-ir-tx.

config CONFIG_RC_ST
	tristate "ST remote control receiver"
	depends on CONFIG_RC_CORE
	depends on CONFIG_ARCH_STI || CONFIG_COMPILE_TEST
	help
	   Say Y here if you want support for ST remote control driver
	   which allows both IR and UHF RX.
	   The driver passes raw pulse and space information to the CONFIG_LIRC decoder.

	   If you're not sure, select N here.

config CONFIG_IR_SUNXI
	tristate "SUNXI IR remote control"
	depends on CONFIG_RC_CORE
	depends on CONFIG_ARCH_SUNXI || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to use sunXi internal IR Controller

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called sunxi-ir.

config CONFIG_IR_SERIAL
	tristate "Homebrew Serial Port Receiver"
	depends on CONFIG_RC_CORE
	help
	   Say Y if you want to use Homebrew Serial Port Receivers and
	   Transceivers.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called serial-ir.

config CONFIG_IR_SERIAL_TRANSMITTER
	bool "Serial Port Transmitter"
	depends on CONFIG_IR_SERIAL
	help
	   Serial Port Transmitter support

config CONFIG_IR_SIR
	tristate "Built-in SIR IrDA port"
	depends on CONFIG_RC_CORE
	help
	   Say Y if you want to use a IrDA SIR port Transceivers.

	   To compile this driver as a module, choose CONFIG_M here: the module will
	   be called sir-ir.

config CONFIG_IR_TANGO
	tristate "Sigma Designs SMP86xx IR decoder"
	depends on CONFIG_RC_CORE
	depends on CONFIG_ARCH_TANGO || CONFIG_COMPILE_TEST
	help
	   Adds support for the HW IR decoder embedded on Sigma Designs
	   Tango-based systems (SMP86xx, SMP87xx).
	   The HW decoder supports NEC, RC-5, RC-6 IR protocols.
	   When compiled as a module, look for tango-ir.

config CONFIG_RC_XBOX_DVD
	tristate "Xbox DVD Movie Playback Kit"
	depends on CONFIG_RC_CORE
	depends on CONFIG_USB_ARCH_HAS_HCD
	select CONFIG_USB
	help
	   Say Y here if you want to use the Xbox DVD Movie Playback Kit.
	   These are IR remotes with CONFIG_USB receivers for the Original Xbox (2001).

	   To compile this driver as a module, choose CONFIG_M here: the module will be
	   called xbox_remote.

config CONFIG_IR_ZX
	tristate "ZTE ZX IR remote control"
	depends on CONFIG_RC_CORE
	depends on CONFIG_ARCH_ZX || CONFIG_COMPILE_TEST
	help
	   Say Y if you want to use the IR remote control available
	   on ZTE ZX family SoCs.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called zx-irdec.

endif #CONFIG_RC_DEVICES

endif #CONFIG_RC_CORE