spi-topcliff-pch: add recovery processing in case wait-event timeout
[zen-stable.git] / drivers / char / Kconfig
blob43643033a3ae2973daa6c30bc94d7cb47223a509
2 # Character device configuration
5 menu "Character devices"
7 source "drivers/tty/Kconfig"
9 config DEVKMEM
10         bool "/dev/kmem virtual device support"
11         default y
12         help
13           Say Y here if you want to support the /dev/kmem device. The
14           /dev/kmem device is rarely used, but can be used for certain
15           kind of kernel debugging operations.
16           When in doubt, say "N".
18 config STALDRV
19         bool "Stallion multiport serial support"
20         depends on SERIAL_NONSTANDARD
21         help
22           Stallion cards give you many serial ports.  You would need something
23           like this to connect more than two modems to your Linux box, for
24           instance in order to become a dial-in server.  If you say Y here,
25           you will be asked for your specific card model in the next
26           questions.  Make sure to read <file:Documentation/serial/stallion.txt>
27           in this case.  If you have never heard about all this, it's safe to
28           say N.
30 config SGI_SNSC
31         bool "SGI Altix system controller communication support"
32         depends on (IA64_SGI_SN2 || IA64_GENERIC)
33         help
34           If you have an SGI Altix and you want to enable system
35           controller communication from user space (you want this!),
36           say Y.  Otherwise, say N.
38 config SGI_TIOCX
39        bool "SGI TIO CX driver support"
40        depends on (IA64_SGI_SN2 || IA64_GENERIC)
41        help
42          If you have an SGI Altix and you have fpga devices attached
43          to your TIO, say Y here, otherwise say N.
45 config SGI_MBCS
46        tristate "SGI FPGA Core Services driver support"
47        depends on SGI_TIOCX
48        help
49          If you have an SGI Altix with an attached SABrick
50          say Y or M here, otherwise say N.
52 source "drivers/tty/serial/Kconfig"
54 config TTY_PRINTK
55         bool "TTY driver to output user messages via printk"
56         depends on EXPERT
57         default n
58         ---help---
59           If you say Y here, the support for writing user messages (i.e.
60           console messages) via printk is available.
62           The feature is useful to inline user messages with kernel
63           messages.
64           In order to use this feature, you should output user messages
65           to /dev/ttyprintk or redirect console to this TTY.
67           If unsure, say N.
69 config BRIQ_PANEL
70         tristate 'Total Impact briQ front panel driver'
71         depends on PPC_CHRP
72         ---help---
73           The briQ is a small footprint CHRP computer with a frontpanel VFD, a
74           tristate led and two switches. It is the size of a CDROM drive.
76           If you have such one and want anything showing on the VFD then you
77           must answer Y here.
79           To compile this driver as a module, choose M here: the
80           module will be called briq_panel.
82           It's safe to say N here.
84 config BFIN_OTP
85         tristate "Blackfin On-Chip OTP Memory Support"
86         depends on BLACKFIN && (BF51x || BF52x || BF54x)
87         default y
88         help
89           If you say Y here, you will get support for a character device
90           interface into the One Time Programmable memory pages that are
91           stored on the Blackfin processor.  This will not get you access
92           to the secure memory pages however.  You will need to write your
93           own secure code and reader for that.
95           To compile this driver as a module, choose M here: the module
96           will be called bfin-otp.
98           If unsure, it is safe to say Y.
100 config BFIN_OTP_WRITE_ENABLE
101         bool "Enable writing support of OTP pages"
102         depends on BFIN_OTP
103         default n
104         help
105           If you say Y here, you will enable support for writing of the
106           OTP pages.  This is dangerous by nature as you can only program
107           the pages once, so only enable this option when you actually
108           need it so as to not inadvertently clobber data.
110           If unsure, say N.
112 config PRINTER
113         tristate "Parallel printer support"
114         depends on PARPORT
115         ---help---
116           If you intend to attach a printer to the parallel port of your Linux
117           box (as opposed to using a serial printer; if the connector at the
118           printer has 9 or 25 holes ["female"], then it's serial), say Y.
119           Also read the Printing-HOWTO, available from
120           <http://www.tldp.org/docs.html#howto>.
122           It is possible to share one parallel port among several devices
123           (e.g. printer and ZIP drive) and it is safe to compile the
124           corresponding drivers into the kernel.
126           To compile this driver as a module, choose M here and read
127           <file:Documentation/parport.txt>.  The module will be called lp.
129           If you have several parallel ports, you can specify which ports to
130           use with the "lp" kernel command line option.  (Try "man bootparam"
131           or see the documentation of your boot loader (lilo or loadlin) about
132           how to pass options to the kernel at boot time.)  The syntax of the
133           "lp" command line option can be found in <file:drivers/char/lp.c>.
135           If you have more than 8 printers, you need to increase the LP_NO
136           macro in lp.c and the PARPORT_MAX macro in parport.h.
138 config LP_CONSOLE
139         bool "Support for console on line printer"
140         depends on PRINTER
141         ---help---
142           If you want kernel messages to be printed out as they occur, you
143           can have a console on the printer. This option adds support for
144           doing that; to actually get it to happen you need to pass the
145           option "console=lp0" to the kernel at boot time.
147           If the printer is out of paper (or off, or unplugged, or too
148           busy..) the kernel will stall until the printer is ready again.
149           By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
150           can make the kernel continue when this happens,
151           but it'll lose the kernel messages.
153           If unsure, say N.
155 config PPDEV
156         tristate "Support for user-space parallel port device drivers"
157         depends on PARPORT
158         ---help---
159           Saying Y to this adds support for /dev/parport device nodes.  This
160           is needed for programs that want portable access to the parallel
161           port, for instance deviceid (which displays Plug-and-Play device
162           IDs).
164           This is the parallel port equivalent of SCSI generic support (sg).
165           It is safe to say N to this -- it is not needed for normal printing
166           or parallel port CD-ROM/disk support.
168           To compile this driver as a module, choose M here: the
169           module will be called ppdev.
171           If unsure, say N.
173 source "drivers/tty/hvc/Kconfig"
175 config VIRTIO_CONSOLE
176         tristate "Virtio console"
177         depends on VIRTIO
178         select HVC_DRIVER
179         help
180           Virtio console for use with lguest and other hypervisors.
182           Also serves as a general-purpose serial device for data
183           transfer between the guest and host.  Character devices at
184           /dev/vportNpn will be created when corresponding ports are
185           found, where N is the device number and n is the port number
186           within that device.  If specified by the host, a sysfs
187           attribute called 'name' will be populated with a name for
188           the port which can be used by udev scripts to create a
189           symlink to the device.
191 config IBM_BSR
192         tristate "IBM POWER Barrier Synchronization Register support"
193         depends on PPC_PSERIES
194         help
195           This devices exposes a hardware mechanism for fast synchronization
196           of threads across a large system which avoids bouncing a cacheline
197           between several cores on a system
199 source "drivers/char/ipmi/Kconfig"
201 config DS1620
202         tristate "NetWinder thermometer support"
203         depends on ARCH_NETWINDER
204         help
205           Say Y here to include support for the thermal management hardware
206           found in the NetWinder. This driver allows the user to control the
207           temperature set points and to read the current temperature.
209           It is also possible to say M here to build it as a module (ds1620)
210           It is recommended to be used on a NetWinder, but it is not a
211           necessity.
213 config NWBUTTON
214         tristate "NetWinder Button"
215         depends on ARCH_NETWINDER
216         ---help---
217           If you say Y here and create a character device node /dev/nwbutton
218           with major and minor numbers 10 and 158 ("man mknod"), then every
219           time the orange button is pressed a number of times, the number of
220           times the button was pressed will be written to that device.
222           This is most useful for applications, as yet unwritten, which
223           perform actions based on how many times the button is pressed in a
224           row.
226           Do not hold the button down for too long, as the driver does not
227           alter the behaviour of the hardware reset circuitry attached to the
228           button; it will still execute a hard reset if the button is held
229           down for longer than approximately five seconds.
231           To compile this driver as a module, choose M here: the
232           module will be called nwbutton.
234           Most people will answer Y to this question and "Reboot Using Button"
235           below to be able to initiate a system shutdown from the button.
237 config NWBUTTON_REBOOT
238         bool "Reboot Using Button"
239         depends on NWBUTTON
240         help
241           If you say Y here, then you will be able to initiate a system
242           shutdown and reboot by pressing the orange button a number of times.
243           The number of presses to initiate the shutdown is two by default,
244           but this can be altered by modifying the value of NUM_PRESSES_REBOOT
245           in nwbutton.h and recompiling the driver or, if you compile the
246           driver as a module, you can specify the number of presses at load
247           time with "insmod button reboot_count=<something>".
249 config NWFLASH
250         tristate "NetWinder flash support"
251         depends on ARCH_NETWINDER
252         ---help---
253           If you say Y here and create a character device /dev/flash with
254           major 10 and minor 160 you can manipulate the flash ROM containing
255           the NetWinder firmware. Be careful as accidentally overwriting the
256           flash contents can render your computer unbootable. On no account
257           allow random users access to this device. :-)
259           To compile this driver as a module, choose M here: the
260           module will be called nwflash.
262           If you're not sure, say N.
264 source "drivers/char/hw_random/Kconfig"
266 config NVRAM
267         tristate "/dev/nvram support"
268         depends on ATARI || X86 || (ARM && RTC_DRV_CMOS) || GENERIC_NVRAM
269         ---help---
270           If you say Y here and create a character special file /dev/nvram
271           with major number 10 and minor number 144 using mknod ("man mknod"),
272           you get read and write access to the extra bytes of non-volatile
273           memory in the real time clock (RTC), which is contained in every PC
274           and most Ataris.  The actual number of bytes varies, depending on the
275           nvram in the system, but is usually 114 (128-14 for the RTC).
277           This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
278           on Ataris. /dev/nvram may be used to view settings there, or to
279           change them (with some utility). It could also be used to frequently
280           save a few bits of very important data that may not be lost over
281           power-off and for which writing to disk is too insecure. Note
282           however that most NVRAM space in a PC belongs to the BIOS and you
283           should NEVER idly tamper with it. See Ralf Brown's interrupt list
284           for a guide to the use of CMOS bytes by your BIOS.
286           On Atari machines, /dev/nvram is always configured and does not need
287           to be selected.
289           To compile this driver as a module, choose M here: the
290           module will be called nvram.
293 # These legacy RTC drivers just cause too many conflicts with the generic
294 # RTC framework ... let's not even try to coexist any more.
296 if RTC_LIB=n
298 config RTC
299         tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
300         depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \
301                         && !ARM && !SUPERH && !S390 && !AVR32 && !BLACKFIN && !UML
302         ---help---
303           If you say Y here and create a character special file /dev/rtc with
304           major number 10 and minor number 135 using mknod ("man mknod"), you
305           will get access to the real time clock (or hardware clock) built
306           into your computer.
308           Every PC has such a clock built in. It can be used to generate
309           signals from as low as 1Hz up to 8192Hz, and can also be used
310           as a 24 hour alarm. It reports status information via the file
311           /proc/driver/rtc and its behaviour is set by various ioctls on
312           /dev/rtc.
314           If you run Linux on a multiprocessor machine and said Y to
315           "Symmetric Multi Processing" above, you should say Y here to read
316           and set the RTC in an SMP compatible fashion.
318           If you think you have a use for such a device (such as periodic data
319           sampling), then say Y here, and read <file:Documentation/rtc.txt>
320           for details.
322           To compile this driver as a module, choose M here: the
323           module will be called rtc.
325 config JS_RTC
326         tristate "Enhanced Real Time Clock Support"
327         depends on SPARC32 && PCI
328         ---help---
329           If you say Y here and create a character special file /dev/rtc with
330           major number 10 and minor number 135 using mknod ("man mknod"), you
331           will get access to the real time clock (or hardware clock) built
332           into your computer.
334           Every PC has such a clock built in. It can be used to generate
335           signals from as low as 1Hz up to 8192Hz, and can also be used
336           as a 24 hour alarm. It reports status information via the file
337           /proc/driver/rtc and its behaviour is set by various ioctls on
338           /dev/rtc.
340           If you think you have a use for such a device (such as periodic data
341           sampling), then say Y here, and read <file:Documentation/rtc.txt>
342           for details.
344           To compile this driver as a module, choose M here: the
345           module will be called js-rtc.
347 config GEN_RTC
348         tristate "Generic /dev/rtc emulation"
349         depends on RTC!=y && !IA64 && !ARM && !M32R && !MIPS && !SPARC && !FRV && !S390 && !SUPERH && !AVR32 && !BLACKFIN && !UML
350         ---help---
351           If you say Y here and create a character special file /dev/rtc with
352           major number 10 and minor number 135 using mknod ("man mknod"), you
353           will get access to the real time clock (or hardware clock) built
354           into your computer.
356           It reports status information via the file /proc/driver/rtc and its
357           behaviour is set by various ioctls on /dev/rtc. If you enable the
358           "extended RTC operation" below it will also provide an emulation
359           for RTC_UIE which is required by some programs and may improve
360           precision in some cases.
362           To compile this driver as a module, choose M here: the
363           module will be called genrtc.
365 config GEN_RTC_X
366         bool "Extended RTC operation"
367         depends on GEN_RTC
368         help
369           Provides an emulation for RTC_UIE which is required by some programs
370           and may improve precision of the generic RTC support in some cases.
372 config EFI_RTC
373         bool "EFI Real Time Clock Services"
374         depends on IA64
376 config DS1302
377         tristate "DS1302 RTC support"
378         depends on M32R && (PLAT_M32700UT || PLAT_OPSPUT)
379         help
380           If you say Y here and create a character special file /dev/rtc with
381           major number 121 and minor number 0 using mknod ("man mknod"), you
382           will get access to the real time clock (or hardware clock) built
383           into your computer.
385 endif # RTC_LIB
387 config DTLK
388         tristate "Double Talk PC internal speech card support"
389         depends on ISA
390         help
391           This driver is for the DoubleTalk PC, a speech synthesizer
392           manufactured by RC Systems (<http://www.rcsys.com/>).  It is also
393           called the `internal DoubleTalk'.
395           To compile this driver as a module, choose M here: the
396           module will be called dtlk.
398 config XILINX_HWICAP
399         tristate "Xilinx HWICAP Support"
400         depends on XILINX_VIRTEX || MICROBLAZE
401         help
402           This option enables support for Xilinx Internal Configuration
403           Access Port (ICAP) driver.  The ICAP is used on Xilinx Virtex
404           FPGA platforms to partially reconfigure the FPGA at runtime.
406           If unsure, say N.
408 config R3964
409         tristate "Siemens R3964 line discipline"
410         ---help---
411           This driver allows synchronous communication with devices using the
412           Siemens R3964 packet protocol. Unless you are dealing with special
413           hardware like PLCs, you are unlikely to need this.
415           To compile this driver as a module, choose M here: the
416           module will be called n_r3964.
418           If unsure, say N.
420 config APPLICOM
421         tristate "Applicom intelligent fieldbus card support"
422         depends on PCI
423         ---help---
424           This driver provides the kernel-side support for the intelligent
425           fieldbus cards made by Applicom International. More information
426           about these cards can be found on the WWW at the address
427           <http://www.applicom-int.com/>, or by email from David Woodhouse
428           <dwmw2@infradead.org>.
430           To compile this driver as a module, choose M here: the
431           module will be called applicom.
433           If unsure, say N.
435 config SONYPI
436         tristate "Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)"
437         depends on EXPERIMENTAL && X86 && PCI && INPUT && !64BIT
438         ---help---
439           This driver enables access to the Sony Programmable I/O Control
440           Device which can be found in many (all ?) Sony Vaio laptops.
442           If you have one of those laptops, read
443           <file:Documentation/laptops/sonypi.txt>, and say Y or M here.
445           To compile this driver as a module, choose M here: the
446           module will be called sonypi.
448 config GPIO_TB0219
449         tristate "TANBAC TB0219 GPIO support"
450         depends on TANBAC_TB022X
451         select GPIO_VR41XX
453 source "drivers/char/pcmcia/Kconfig"
455 config MWAVE
456         tristate "ACP Modem (Mwave) support"
457         depends on X86
458         select SERIAL_8250
459         ---help---
460           The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
461           kernel driver and a user level application. Together these components
462           support direct attachment to public switched telephone networks (PSTNs)
463           and support selected world wide countries.
465           This version of the ACP Modem driver supports the IBM Thinkpad 600E,
466           600, and 770 that include on board ACP modem hardware.
468           The modem also supports the standard communications port interface
469           (ttySx) and is compatible with the Hayes AT Command Set.
471           The user level application needed to use this driver can be found at
472           the IBM Linux Technology Center (LTC) web site:
473           <http://www.ibm.com/linux/ltc/>.
475           If you own one of the above IBM Thinkpads which has the Mwave chipset
476           in it, say Y.
478           To compile this driver as a module, choose M here: the
479           module will be called mwave.
481 config SCx200_GPIO
482         tristate "NatSemi SCx200 GPIO Support"
483         depends on SCx200
484         select NSC_GPIO
485         help
486           Give userspace access to the GPIO pins on the National
487           Semiconductor SCx200 processors.
489           If compiled as a module, it will be called scx200_gpio.
491 config PC8736x_GPIO
492         tristate "NatSemi PC8736x GPIO Support"
493         depends on X86_32 && !UML
494         default SCx200_GPIO     # mostly N
495         select NSC_GPIO         # needed for support routines
496         help
497           Give userspace access to the GPIO pins on the National
498           Semiconductor PC-8736x (x=[03456]) SuperIO chip.  The chip
499           has multiple functional units, inc several managed by
500           hwmon/pc87360 driver.  Tested with PC-87366
502           If compiled as a module, it will be called pc8736x_gpio.
504 config NSC_GPIO
505         tristate "NatSemi Base GPIO Support"
506         depends on X86_32
507         # selected by SCx200_GPIO and PC8736x_GPIO
508         # what about 2 selectors differing: m != y
509         help
510           Common support used (and needed) by scx200_gpio and
511           pc8736x_gpio drivers.  If those drivers are built as
512           modules, this one will be too, named nsc_gpio
514 config RAW_DRIVER
515         tristate "RAW driver (/dev/raw/rawN)"
516         depends on BLOCK
517         help
518           The raw driver permits block devices to be bound to /dev/raw/rawN.
519           Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
520           See the raw(8) manpage for more details.
522           Applications should preferably open the device (eg /dev/hda1)
523           with the O_DIRECT flag.
525 config MAX_RAW_DEVS
526         int "Maximum number of RAW devices to support (1-65536)"
527         depends on RAW_DRIVER
528         default "256"
529         help
530           The maximum number of RAW devices that are supported.
531           Default is 256. Increase this number in case you need lots of
532           raw devices.
534 config HPET
535         bool "HPET - High Precision Event Timer" if (X86 || IA64)
536         default n
537         depends on ACPI
538         help
539           If you say Y here, you will have a miscdevice named "/dev/hpet/".  Each
540           open selects one of the timers supported by the HPET.  The timers are
541           non-periodic and/or periodic.
543 config HPET_MMAP
544         bool "Allow mmap of HPET"
545         default y
546         depends on HPET
547         help
548           If you say Y here, user applications will be able to mmap
549           the HPET registers.
551           In some hardware implementations, the page containing HPET
552           registers may also contain other things that shouldn't be
553           exposed to the user.  If this applies to your hardware,
554           say N here.
556 config HANGCHECK_TIMER
557         tristate "Hangcheck timer"
558         depends on X86 || IA64 || PPC64 || S390
559         help
560           The hangcheck-timer module detects when the system has gone
561           out to lunch past a certain margin.  It can reboot the system
562           or merely print a warning.
564 config MMTIMER
565         tristate "MMTIMER Memory mapped RTC for SGI Altix"
566         depends on IA64_GENERIC || IA64_SGI_SN2
567         default y
568         help
569           The mmtimer device allows direct userspace access to the
570           Altix system timer.
572 config UV_MMTIMER
573         tristate "UV_MMTIMER Memory mapped RTC for SGI UV"
574         depends on X86_UV
575         default m
576         help
577           The uv_mmtimer device allows direct userspace access to the
578           UV system timer.
580 source "drivers/char/tpm/Kconfig"
582 config TELCLOCK
583         tristate "Telecom clock driver for ATCA SBC"
584         depends on EXPERIMENTAL && X86
585         default n
586         help
587           The telecom clock device is specific to the MPCBL0010 and MPCBL0050
588           ATCA computers and allows direct userspace access to the
589           configuration of the telecom clock configuration settings.  This
590           device is used for hardware synchronization across the ATCA backplane
591           fabric.  Upon loading, the driver exports a sysfs directory,
592           /sys/devices/platform/telco_clock, with a number of files for
593           controlling the behavior of this hardware.
595 config DEVPORT
596         bool
597         depends on !M68K
598         depends on ISA || PCI
599         default y
601 source "drivers/s390/char/Kconfig"
603 config RAMOOPS
604         tristate "Log panic/oops to a RAM buffer"
605         depends on HAS_IOMEM
606         default n
607         help
608           This enables panic and oops messages to be logged to a circular
609           buffer in RAM where it can be read back at some later point.
611 config MSM_SMD_PKT
612         bool "Enable device interface for some SMD packet ports"
613         default n
614         depends on MSM_SMD
615         help
616           Enables userspace clients to read and write to some packet SMD
617           ports via device interface for MSM chipset.
619 config TILE_SROM
620         bool "Character-device access via hypervisor to the Tilera SPI ROM"
621         depends on TILE
622         default y
623         ---help---
624           This device provides character-level read-write access
625           to the SROM, typically via the "0", "1", and "2" devices
626           in /dev/srom/.  The Tilera hypervisor makes the flash
627           device appear much like a simple EEPROM, and knows
628           how to partition a single ROM for multiple purposes.
630 endmenu