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
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
#
# Misc strange devices
#

menu "Misc devices"

config CONFIG_SENSORS_LIS3LV02D
	tristate
	depends on CONFIG_INPUT
	select CONFIG_INPUT_POLLDEV
	default n

config CONFIG_AD525X_DPOT
	tristate "Analog Devices Digital Potentiometers"
	depends on (CONFIG_I2C || CONFIG_SPI) && CONFIG_SYSFS
	help
	  If you say yes here, you get support for the Analog Devices
	  AD5258, AD5259, AD5251, AD5252, AD5253, AD5254, AD5255
	  AD5160, AD5161, AD5162, AD5165, AD5200, AD5201, AD5203,
	  AD5204, AD5206, AD5207, AD5231, AD5232, AD5233, AD5235,
	  AD5260, AD5262, AD5263, AD5290, AD5291, AD5292, AD5293,
	  AD7376, AD8400, AD8402, AD8403, ADN2850, AD5241, AD5242,
	  AD5243, AD5245, AD5246, AD5247, AD5248, AD5280, AD5282,
	  ADN2860, AD5273, AD5171, AD5170, AD5172, AD5173, AD5270,
	  AD5271, CONFIG_AD5272, AD5274
	  digital potentiometer chips.

	  See Documentation/misc-devices/ad525x_dpot.txt for the
	  userspace interface.

	  This driver can also be built as a module.  If so, the module
	  will be called ad525x_dpot.

config CONFIG_AD525X_DPOT_I2C
	tristate "support I2C bus connection"
	depends on CONFIG_AD525X_DPOT && CONFIG_I2C
	help
	  Say Y here if you have a digital potentiometers hooked to an CONFIG_I2C bus.

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

config CONFIG_AD525X_DPOT_SPI
	tristate "support SPI bus connection"
	depends on CONFIG_AD525X_DPOT && CONFIG_SPI_MASTER
	help
	  Say Y here if you have a digital potentiometers hooked to an CONFIG_SPI bus.

	  If unsure, say N (but it's safe to say "Y").

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

config CONFIG_ATMEL_TCLIB
	bool "Atmel AT32/AT91 Timer/Counter Library"
	depends on (CONFIG_AVR32 || CONFIG_ARCH_AT91)
	help
	  Select this if you want a library to allocate the Timer/Counter
	  blocks found on many Atmel processors.  This facilitates using
	  these blocks by different drivers despite processor differences.

config CONFIG_ATMEL_TCB_CLKSRC
	bool "TC Block Clocksource"
	depends on CONFIG_ATMEL_TCLIB
	default y
	help
	  Select this to get a high precision clocksource based on a
	  CONFIG_TC block with a 5+ MHz base clock rate.  Two timer channels
	  are combined to make a single 32-bit timer.

	  When CONFIG_GENERIC_CLOCKEVENTS is defined, the third timer channel
	  may be used as a clock event device supporting oneshot mode
	  (delays of up to two seconds) based on the 32 KiHz clock.

config CONFIG_ATMEL_TCB_CLKSRC_BLOCK
	int
	depends on CONFIG_ATMEL_TCB_CLKSRC
	prompt "TC Block" if CONFIG_CPU_AT32AP700X
	default 0
	range 0 1
	help
	  Some chips provide more than one CONFIG_TC block, so you have the
	  choice of which one to use for the clock framework.  The other
	  CONFIG_TC can be used for other purposes, such as CONFIG_PWM generation and
	  interval timing.

config CONFIG_DUMMY_IRQ
	tristate "Dummy IRQ handler"
	default n
	---help---
	  This module accepts a single 'irq' parameter, which it should register for.
	  The sole purpose of this module is to help with debugging of systems on
	  which spurious IRQs would happen on disabled IRQ vector.

config CONFIG_IBM_ASM
	tristate "Device driver for IBM RSA service processor"
	depends on CONFIG_X86 && CONFIG_PCI && CONFIG_INPUT
	depends on CONFIG_SERIAL_8250 || CONFIG_SERIAL_8250=n
	---help---
	  This option enables device driver support for in-band access to the
	  IBM RSA (Condor) service processor in eServer xSeries systems.
	  The ibmasm device driver allows user space application to access
	  ASM (Advanced Systems Management) functions on the service
	  processor. The driver is meant to be used in conjunction with
	  a user space API.
	  The ibmasm driver also enables the OS to use the UART on the
	  service processor board as a regular serial port. To make use of
	  this feature serial driver support (CONFIG_SERIAL_8250) must be
	  enabled.

	  WARNING: This software may not be supported or function
	  correctly on your IBM server. Please consult the IBM ServerProven
	  website <http://www-03.ibm.com/systems/info/x86servers/serverproven/compat/us/>
	  for information on the specific driver level and support statement
	  for your IBM server.

config CONFIG_PHANTOM
	tristate "Sensable PHANToM (PCI)"
	depends on CONFIG_PCI
	help
	  Say Y here if you want to build a driver for Sensable PHANToM device.

	  This driver is only for CONFIG_PCI PHANToMs.

	  If you choose to build module, its name will be phantom. If unsure,
	  say N here.

config CONFIG_INTEL_MID_PTI
	tristate "Parallel Trace Interface for MIPI P1149.7 cJTAG standard"
	depends on CONFIG_PCI && CONFIG_TTY && (CONFIG_X86_INTEL_MID || CONFIG_COMPILE_TEST)
	default n
	help
	  The PTI (Parallel Trace Interface) driver directs
	  trace data routed from various parts in the system out
	  through an Intel Penwell PTI port and out of the mobile
	  device for analysis with a debugging tool (Lauterbach or Fido).

	  You should select this driver if the target kernel is meant for
	  an Intel Atom (non-netbook) mobile device containing a MIPI
	  P1149.7 standard implementation.

config CONFIG_SGI_IOC4
	tristate "SGI IOC4 Base IO support"
	depends on CONFIG_PCI
	---help---
	  This option enables basic support for the IOC4 chip on certain
	  SGI IO controller cards (IO9, IO10, and CONFIG_PCI-RT).  This option
	  does not enable any specific functions on such a card, but provides
	  necessary infrastructure for other drivers to utilize.

	  If you have an SGI Altix with an IOC4-based card say Y.
	  Otherwise say N.

config CONFIG_TIFM_CORE
	tristate "TI Flash Media interface support"
	depends on CONFIG_PCI
	help
	  If you want support for Texas Instruments(R) Flash Media adapters
	  you should select this option and then also choose an appropriate
	  host adapter, such as 'TI Flash Media PCI74xx/PCI76xx host adapter
	  support', if you have a TI PCI74xx compatible card reader, for
	  example.
	  You will also have to select some flash card format drivers. CONFIG_MMC/SD
	  cards are supported via 'CONFIG_MMC/SD Card support: TI Flash Media CONFIG_MMC/SD
	  Interface support (CONFIG_MMC_TIFM_SD)'.

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

config CONFIG_TIFM_7XX1
	tristate "TI Flash Media PCI74xx/PCI76xx host adapter support"
	depends on CONFIG_PCI && CONFIG_TIFM_CORE
	default CONFIG_TIFM_CORE
	help
	  This option enables support for Texas Instruments(R) PCI74xx and
	  PCI76xx families of Flash Media adapters, found in many laptops.
	  To make actual use of the device, you will have to select some
	  flash card format drivers, as outlined in the CONFIG_TIFM_CORE Help.

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

config CONFIG_ICS932S401
	tristate "Integrated Circuits ICS932S401"
	depends on CONFIG_I2C
	help
	  If you say yes here you get support for the Integrated Circuits
	  CONFIG_ICS932S401 clock control chips.

	  This driver can also be built as a module. If so, the module
	  will be called ics932s401.

config CONFIG_ATMEL_SSC
	tristate "Device driver for Atmel SSC peripheral"
	depends on CONFIG_HAS_IOMEM && (CONFIG_AVR32 || CONFIG_ARCH_AT91 || CONFIG_COMPILE_TEST)
	---help---
	  This option enables device driver support for Atmel Synchronized
	  Serial Communication peripheral (SSC).

	  The SSC peripheral supports a wide variety of serial frame based
	  communications, i.e. I2S, CONFIG_SPI, etc.

	  If unsure, say N.

config CONFIG_ENCLOSURE_SERVICES
	tristate "Enclosure Services"
	default n
	help
	  Provides support for intelligent enclosures (bays which
	  contain storage devices).  You also need either a host
	  driver (CONFIG_SCSI/CONFIG_ATA) which supports enclosures
	  or a CONFIG_SCSI enclosure device (SES) to use these services.

config CONFIG_SGI_XP
	tristate "Support communication between SGI SSIs"
	depends on CONFIG_NET
	depends on (CONFIG_IA64_GENERIC || CONFIG_IA64_SGI_SN2 || CONFIG_IA64_SGI_UV || CONFIG_X86_UV) && CONFIG_SMP
	select CONFIG_IA64_UNCACHED_ALLOCATOR if CONFIG_IA64_GENERIC || CONFIG_IA64_SGI_SN2
	select CONFIG_GENERIC_ALLOCATOR if CONFIG_IA64_GENERIC || CONFIG_IA64_SGI_SN2
	select CONFIG_SGI_GRU if CONFIG_X86_64 && CONFIG_SMP
	---help---
	  An SGI machine can be divided into multiple Single System
	  Images which act independently of each other and have
	  hardware based memory protection from the others.  Enabling
	  this feature will allow for direct communication between SSIs
	  based on a network adapter and DMA messaging.

config CONFIG_CS5535_MFGPT
	tristate "CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support"
	depends on CONFIG_MFD_CS5535
	default n
	help
	  This driver provides access to MFGPT functionality for other
	  drivers that need timers.  MFGPTs are available in the CS5535 and
	  CONFIG_CS5536 companion chips that are found in AMD Geode and several
	  other platforms.  They have a better resolution and max interval
	  than the generic PIT, and are suitable for use as high-res timers.
	  You probably don't want to enable this manually; other drivers that
	  make use of it should enable it.

config CONFIG_CS5535_MFGPT_DEFAULT_IRQ
	int
	depends on CONFIG_CS5535_MFGPT
	default 7
	help
	  MFGPTs on the CS5535 require an interrupt.  The selected IRQ
	  can be overridden as a module option as well as by driver that
	  use the cs5535_mfgpt_ API; however, different architectures might
	  want to use a different IRQ by default.  This is here for
	  architectures to set as necessary.

config CONFIG_CS5535_CLOCK_EVENT_SRC
	tristate "CS5535/CS5536 high-res timer (MFGPT) events"
	depends on CONFIG_GENERIC_CLOCKEVENTS && CONFIG_CS5535_MFGPT
	help
	  This driver provides a clock event source based on the MFGPT
	  timer(s) in the CS5535 and CONFIG_CS5536 companion chips.
	  MFGPTs have a better resolution and max interval than the
	  generic PIT, and are suitable for use as high-res timers.

config CONFIG_HP_ILO
	tristate "Channel interface driver for the HP iLO processor"
	depends on CONFIG_PCI
	default n
	help
	  The channel interface driver allows applications to communicate
	  with iLO management processors present on HP ProLiant servers.
	  Upon loading, the driver creates /dev/hpilo/dXccbN files, which
	  can be used to gather data from the management processor, via
	  read and write system calls.

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

config CONFIG_QCOM_COINCELL
	tristate "Qualcomm coincell charger support"
	depends on CONFIG_MFD_SPMI_PMIC || CONFIG_COMPILE_TEST
	help
	  This driver supports the coincell block found inside of
	  Qualcomm PMICs.  The coincell charger provides a means to
	  charge a coincell battery or backup capacitor which is used
	  to maintain PMIC register and CONFIG_RTC state in the absence of
	  external power.

config CONFIG_SGI_GRU
	tristate "SGI GRU driver"
	depends on CONFIG_X86_UV && CONFIG_SMP
	default n
	select CONFIG_MMU_NOTIFIER
	---help---
	The GRU is a hardware resource located in the system chipset. The GRU
	contains memory that can be mmapped into the user address space. This memory is
	used to communicate with the GRU to perform functions such as load/store,
	scatter/gather, bcopy, AMOs, etc.  The GRU is directly accessed by user
	instructions using user virtual addresses. GRU instructions (ex., bcopy) use
	user virtual addresses for operands.

	If you are not running on a SGI UV system, say N.

config CONFIG_SGI_GRU_DEBUG
	bool  "SGI GRU driver debug"
	depends on CONFIG_SGI_GRU
	default n
	---help---
	This option enables additional debugging code for the SGI GRU driver.
	If you are unsure, say N.

config CONFIG_APDS9802ALS
	tristate "Medfield Avago APDS9802 ALS Sensor module"
	depends on CONFIG_I2C
	help
	  If you say yes here you get support for the ALS APDS9802 ambient
	  light sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called apds9802als.

config CONFIG_ISL29003
	tristate "Intersil ISL29003 ambient light sensor"
	depends on CONFIG_I2C && CONFIG_SYSFS
	help
	  If you say yes here you get support for the Intersil CONFIG_ISL29003
	  ambient light sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called isl29003.

config CONFIG_ISL29020
	tristate "Intersil ISL29020 ambient light sensor"
	depends on CONFIG_I2C
	help
	  If you say yes here you get support for the Intersil CONFIG_ISL29020
	  ambient light sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called isl29020.

config CONFIG_SENSORS_TSL2550
	tristate "Taos TSL2550 ambient light sensor"
	depends on CONFIG_I2C && CONFIG_SYSFS
	help
	  If you say yes here you get support for the Taos TSL2550
	  ambient light sensor.

	  This driver can also be built as a module.  If so, the module
	  will be called tsl2550.

config CONFIG_SENSORS_BH1770
         tristate "BH1770GLC / SFH7770 combined ALS - Proximity sensor"
         depends on CONFIG_I2C
         ---help---
           Say Y here if you want to build a driver for BH1770GLC (ROHM) or
	   SFH7770 (Osram) combined ambient light and proximity sensor chip.

           To compile this driver as a module, choose CONFIG_M here: the
           module will be called bh1770glc. If unsure, say N here.

config CONFIG_SENSORS_APDS990X
	 tristate "APDS990X combined als and proximity sensors"
	 depends on CONFIG_I2C
	 default n
	 ---help---
	   Say Y here if you want to build a driver for Avago APDS990x
	   combined ambient light and proximity sensor chip.

	   To compile this driver as a module, choose CONFIG_M here: the
	   module will be called apds990x. If unsure, say N here.

config CONFIG_HMC6352
	tristate "Honeywell HMC6352 compass"
	depends on CONFIG_I2C
	help
	  This driver provides support for the Honeywell CONFIG_HMC6352 compass,
	  providing configuration and heading data via sysfs.

config CONFIG_DS1682
	tristate "Dallas DS1682 Total Elapsed Time Recorder with Alarm"
	depends on CONFIG_I2C
	help
	  If you say yes here you get support for Dallas Semiconductor
	  CONFIG_DS1682 Total Elapsed Time Recorder.

	  This driver can also be built as a module.  If so, the module
	  will be called ds1682.

config CONFIG_SPEAR13XX_PCIE_GADGET
	bool "PCIe gadget support for SPEAr13XX platform"
	depends on CONFIG_ARCH_SPEAR13XX && CONFIG_BROKEN
	default n
	help
	 This option enables gadget support for PCIe controller. If
	 board file defines any controller as PCIe endpoint then a sysfs
	 entry will be created for that controller. User can use these
	 sysfs node to configure PCIe EP as per his requirements.

config CONFIG_TI_DAC7512
	tristate "Texas Instruments DAC7512"
	depends on CONFIG_SPI && CONFIG_SYSFS
	help
	  If you say yes here you get support for the Texas Instruments
	  DAC7512 16-bit digital-to-analog converter.

	  This driver can also be built as a module. If so, the module
	  will be called ti_dac7512.

config CONFIG_VMWARE_BALLOON
	tristate "VMware Balloon Driver"
	depends on CONFIG_VMWARE_VMCI && CONFIG_X86 && CONFIG_HYPERVISOR_GUEST
	help
	  This is VMware physical memory management driver which acts
	  like a "balloon" that can be inflated to reclaim physical pages
	  by reserving them in the guest and invalidating them in the
	  monitor, freeing up the underlying machine pages so they can
	  be allocated to other guests. The balloon can also be deflated
	  to allow the guest to use more physical memory.

	  If unsure, say N.

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

config CONFIG_ARM_CHARLCD
	bool "ARM Ltd. Character LCD Driver"
	depends on CONFIG_PLAT_VERSATILE
	help
	  This is a driver for the character LCD found on the CONFIG_ARM Ltd.
	  Versatile and RealView Platform Baseboards. It doesn't do
	  very much more than display the text "ARM Linux" on the first
	  line and the Linux version on the second line, but that's
	  still useful.

config CONFIG_PCH_PHUB
	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB"
	select CONFIG_GENERIC_NET_UTILS
	depends on CONFIG_PCI && (CONFIG_X86_32 || CONFIG_MIPS || CONFIG_COMPILE_TEST)
	help
	  This driver is for PCH(Platform controller Hub) PHUB(Packet Hub) of
	  Intel Topcliff which is an IOH(Input/Output Hub) for x86 embedded
	  processor. The Topcliff has CONFIG_MAC address and Option CONFIG_ROM data in SROM.
	  This driver can access CONFIG_MAC address and Option CONFIG_ROM data in SROM.

	  This driver also can be used for LAPIS Semiconductor's IOH,
	  ML7213/ML7223/ML7831.
	  ML7213 which is for IVI(In-Vehicle Infotainment) use.
	  ML7223 IOH is for MP(Media Phone) use.
	  ML7831 IOH is for general purpose use.
	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.

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

config CONFIG_USB_SWITCH_FSA9480
	tristate "FSA9480 USB Switch"
	depends on CONFIG_I2C
	help
	  The FSA9480 is a CONFIG_USB port accessory detector and switch.
	  The FSA9480 is fully controlled using CONFIG_I2C and enables CONFIG_USB data,
	  stereo and mono audio, video, microphone and UART data to use
	  a common connector port.

config CONFIG_LATTICE_ECP3_CONFIG
	tristate "Lattice ECP3 FPGA bitstream configuration via SPI"
	depends on CONFIG_SPI && CONFIG_SYSFS
	select CONFIG_FW_LOADER
	default	n
	help
	  This option enables support for bitstream configuration (programming
	  or loading) of the Lattice ECP3 CONFIG_FPGA family via CONFIG_SPI.

	  If unsure, say N.

config CONFIG_SRAM
	bool "Generic on-chip SRAM driver"
	depends on CONFIG_HAS_IOMEM
	select CONFIG_GENERIC_ALLOCATOR
	help
	  This driver allows you to declare a memory region to be managed by
	  the genalloc API. It is supposed to be used for small on-chip CONFIG_SRAM
	  areas found on many SoCs.

config CONFIG_VEXPRESS_SYSCFG
	bool "Versatile Express System Configuration driver"
	depends on CONFIG_VEXPRESS_CONFIG
	default y
	help
	  CONFIG_ARM Ltd. Versatile Express uses specialised platform configuration
	  bus. System Configuration interface is one of the possible means
	  of generating transactions on this bus.
config CONFIG_PANEL
	tristate "Parallel port LCD/Keypad Panel support"
	depends on CONFIG_PARPORT
	---help---
	  Say Y here if you have an CONFIG_HD44780 or KS-0074 LCD connected to your
	  parallel port. This driver also features 4 and 6-key keypads. The LCD
	  is accessible through the /dev/lcd char device (10, 156), and the
	  keypad through /dev/keypad (10, 185). Both require misc device to be
	  enabled. This code can either be compiled as a module, or linked into
	  the kernel and started at boot. If you don't understand what all this
	  is about, say N.

config CONFIG_PANEL_PARPORT
	int "Default parallel port number (0=LPT1)"
	depends on CONFIG_PANEL
	range 0 255
	default "0"
	---help---
	  This is the index of the parallel port the panel is connected to. One
	  driver instance only supports one parallel port, so if your keypad
	  and LCD are connected to two separate ports, you have to start two
	  modules with different arguments. Numbering starts with '0' for LPT1,
	  and so on.

config CONFIG_PANEL_PROFILE
	int "Default panel profile (0-5, 0=custom)"
	depends on CONFIG_PANEL
	range 0 5
	default "5"
	---help---
	  To ease configuration, the driver supports different configuration
	  profiles for past and recent wirings. These profiles can also be
	  used to define an approximative configuration, completed by a few
	  other options. Here are the profiles :

	    0 = custom (see further)
	    1 = 2x16 parallel LCD, old keypad
	    2 = 2x16 serial LCD (KS-0074), new keypad
	    3 = 2x16 parallel LCD (Hantronix), no keypad
	    4 = 2x16 parallel LCD (Nexcom NSA1045) with Nexcom's keypad
	    5 = 2x40 parallel LCD (old one), with old keypad

	  Custom configurations allow you to define how your display is
	  wired to the parallel port, and how it works. This is only intended
	  for experts.

config CONFIG_PANEL_KEYPAD
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0"
	int "Keypad type (0=none, 1=old 6 keys, 2=new 6 keys, 3=Nexcom 4 keys)"
	range 0 3
	default 0
	---help---
	  This enables and configures a keypad connected to the parallel port.
	  The keys will be read from character device 10,185. Valid values are :

	    0 : do not enable this driver
	    1 : old 6 keys keypad
	    2 : new 6 keys keypad, as used on the server at www.ant-computing.com
	    3 : Nexcom NSA1045's 4 keys keypad

	  New profiles can be described in the driver source. The driver also
	  supports simultaneous keys pressed when the keypad supports them.

config CONFIG_PANEL_LCD
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0"
	int "LCD type (0=none, 1=custom, 2=old //, 3=ks0074, 4=hantronix, 5=Nexcom)"
	range 0 5
	default 0
	---help---
	   This enables and configures an LCD connected to the parallel port.
	   The driver includes an interpreter for escape codes starting with
	   '\e[L' which are specific to the LCD, and a few ANSI codes. The
	   driver will be registered as character device 10,156, usually
	   under the name '/dev/lcd'. There are a total of 6 supported types :

	     0 : do not enable the driver
	     1 : custom configuration and wiring (see further)
	     2 : 2x16 & 2x40 parallel LCD (old wiring)
	     3 : 2x16 serial LCD (KS-0074 based)
	     4 : 2x16 parallel LCD (Hantronix wiring)
	     5 : 2x16 parallel LCD (Nexcom wiring)

	   When type '1' is specified, other options will appear to configure
	   more precise aspects (wiring, dimensions, protocol, ...). Please note
	   that those values changed from the 2.4 driver for better consistency.

config CONFIG_PANEL_LCD_HEIGHT
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
	int "Number of lines on the LCD (1-2)"
	range 1 2
	default 2
	---help---
	  This is the number of visible character lines on the LCD in custom profile.
	  It can either be 1 or 2.

config CONFIG_PANEL_LCD_WIDTH
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
	int "Number of characters per line on the LCD (1-40)"
	range 1 40
	default 40
	---help---
	  This is the number of characters per line on the LCD in custom profile.
	  Common values are 16,20,24,40.

config CONFIG_PANEL_LCD_BWIDTH
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
	int "Internal LCD line width (1-40, 40 by default)"
	range 1 40
	default 40
	---help---
	  Most LCDs use a standard controller which supports hardware lines of 40
	  characters, although sometimes only 16, 20 or 24 of them are really wired
	  to the terminal. This results in some non-visible but addressable characters,
	  and is the case for most parallel LCDs. Other LCDs, and some serial ones,
	  however, use the same line width internally as what is visible. The KS0074
	  for example, uses 16 characters per line for 16 visible characters per line.

	  This option lets you configure the value used by your LCD in 'custom' profile.
	  If you don't know, put '40' here.

config CONFIG_PANEL_LCD_HWIDTH
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
	int "Hardware LCD line width (1-64, 64 by default)"
	range 1 64
	default 64
	---help---
	  Most LCDs use a single address bit to differentiate line 0 and line 1. Since
	  some of them need to be able to address 40 chars with the lower bits, they
	  often use the immediately superior power of 2, which is 64, to address the
	  next line.

	  If you don't know what your LCD uses, in doubt let 16 here for a 2x16, and
	  64 here for a 2x40.

config CONFIG_PANEL_LCD_CHARSET
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
	int "LCD character set (0=normal, 1=KS0074)"
	range 0 1
	default 0
	---help---
	  Some controllers such as the KS0074 use a somewhat strange character set
	  where many symbols are at unusual places. The driver knows how to map
	  'standard' ASCII characters to the character sets used by these controllers.
	  Valid values are :

	     0 : normal (untranslated) character set
	     1 : KS0074 character set

	  If you don't know, use the normal one (0).

config CONFIG_PANEL_LCD_PROTO
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
	int "LCD communication mode (0=parallel 8 bits, 1=serial)"
	range 0 1
	default 0
	---help---
	  This driver now supports any serial or parallel LCD wired to a parallel
	  port. But before assigning signals, the driver needs to know if it will
	  be driving a serial LCD or a parallel one. Serial LCDs only use 2 wires
	  (SDA/SCL), while parallel ones use 2 or 3 wires for the control signals
	  (CONFIG_E, RS, sometimes RW), and 4 or 8 for the data. Use 0 here for a 8 bits
	  parallel LCD, and 1 for a serial LCD.

config CONFIG_PANEL_LCD_PIN_E
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1" && CONFIG_PANEL_LCD_PROTO="0"
        int "Parallel port pin number & polarity connected to the LCD E signal (-17...17) "
	range -17 17
	default 14
	---help---
	  This describes the number of the parallel port pin to which the LCD 'CONFIG_E'
	  signal has been connected. It can be :

	          0 : no connection (eg: connected to ground)
	      1..17 : directly connected to any of these pins on the DB25 plug
	    -1..-17 : connected to the same pin through an inverter (eg: transistor).

	  Default for the 'CONFIG_E' pin in custom profile is '14' (AUTOFEED).

config CONFIG_PANEL_LCD_PIN_RS
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1" && CONFIG_PANEL_LCD_PROTO="0"
        int "Parallel port pin number & polarity connected to the LCD RS signal (-17...17) "
	range -17 17
	default 17
	---help---
	  This describes the number of the parallel port pin to which the LCD 'RS'
	  signal has been connected. It can be :

	          0 : no connection (eg: connected to ground)
	      1..17 : directly connected to any of these pins on the DB25 plug
	    -1..-17 : connected to the same pin through an inverter (eg: transistor).

	  Default for the 'RS' pin in custom profile is '17' (SELECT IN).

config CONFIG_PANEL_LCD_PIN_RW
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1" && CONFIG_PANEL_LCD_PROTO="0"
        int "Parallel port pin number & polarity connected to the LCD RW signal (-17...17) "
	range -17 17
	default 16
	---help---
	  This describes the number of the parallel port pin to which the LCD 'RW'
	  signal has been connected. It can be :

	          0 : no connection (eg: connected to ground)
	      1..17 : directly connected to any of these pins on the DB25 plug
	    -1..-17 : connected to the same pin through an inverter (eg: transistor).

	  Default for the 'RW' pin in custom profile is '16' (INIT).

config CONFIG_PANEL_LCD_PIN_SCL
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1" && CONFIG_PANEL_LCD_PROTO!="0"
        int "Parallel port pin number & polarity connected to the LCD SCL signal (-17...17) "
	range -17 17
	default 1
	---help---
	  This describes the number of the parallel port pin to which the serial
	  LCD 'SCL' signal has been connected. It can be :

	          0 : no connection (eg: connected to ground)
	      1..17 : directly connected to any of these pins on the DB25 plug
	    -1..-17 : connected to the same pin through an inverter (eg: transistor).

	  Default for the 'SCL' pin in custom profile is '1' (STROBE).

config CONFIG_PANEL_LCD_PIN_SDA
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1" && CONFIG_PANEL_LCD_PROTO!="0"
        int "Parallel port pin number & polarity connected to the LCD SDA signal (-17...17) "
	range -17 17
	default 2
	---help---
	  This describes the number of the parallel port pin to which the serial
	  LCD 'SDA' signal has been connected. It can be :

	          0 : no connection (eg: connected to ground)
	      1..17 : directly connected to any of these pins on the DB25 plug
	    -1..-17 : connected to the same pin through an inverter (eg: transistor).

	  Default for the 'SDA' pin in custom profile is '2' (D0).

config CONFIG_PANEL_LCD_PIN_BL
	depends on CONFIG_PANEL && CONFIG_PANEL_PROFILE="0" && CONFIG_PANEL_LCD="1"
        int "Parallel port pin number & polarity connected to the LCD backlight signal (-17...17) "
	range -17 17
	default 0
	---help---
	  This describes the number of the parallel port pin to which the LCD 'BL' signal
          has been connected. It can be :

	          0 : no connection (eg: connected to ground)
	      1..17 : directly connected to any of these pins on the DB25 plug
	    -1..-17 : connected to the same pin through an inverter (eg: transistor).

	  Default for the 'BL' pin in custom profile is '0' (uncontrolled).

config CONFIG_PANEL_CHANGE_MESSAGE
	depends on CONFIG_PANEL
	bool "Change LCD initialization message ?"
	default "n"
	---help---
	  This allows you to replace the boot message indicating the kernel version
	  and the driver version with a custom message. This is useful on appliances
	  where a simple 'Starting system' message can be enough to stop a customer
	  from worrying.

	  If you say 'Y' here, you'll be able to choose a message yourself. Otherwise,
	  say 'N' and keep the default message with the version.

config CONFIG_PANEL_BOOT_MESSAGE
	depends on CONFIG_PANEL && CONFIG_PANEL_CHANGE_MESSAGE="y"
	string "New initialization message"
	default ""
	---help---
	  This allows you to replace the boot message indicating the kernel version
	  and the driver version with a custom message. This is useful on appliances
	  where a simple 'Starting system' message can be enough to stop a customer
	  from worrying.

	  An empty message will only clear the display at driver init time. Any other
	  printf()-formatted message is valid with newline and escape codes.

source "drivers/misc/c2port/Kconfig"
source "drivers/misc/eeprom/Kconfig"
source "drivers/misc/cb710/Kconfig"
source "drivers/misc/ti-st/Kconfig"
source "drivers/misc/lis3lv02d/Kconfig"
source "drivers/misc/altera-stapl/Kconfig"
source "drivers/misc/mei/Kconfig"
source "drivers/misc/vmw_vmci/Kconfig"
source "drivers/misc/mic/Kconfig"
source "drivers/misc/genwqe/Kconfig"
source "drivers/misc/echo/Kconfig"
source "drivers/misc/cxl/Kconfig"
endmenu