2 # Character device configuration
5 menu "Character devices"
7 source "drivers/tty/Kconfig"
10 bool "/dev/mem virtual device support"
13 Say Y here if you want to support the /dev/mem device.
14 The /dev/mem device is used to access areas of physical
16 When in doubt, say "Y".
19 bool "/dev/kmem virtual device support"
20 # On arm64, VMALLOC_START < PAGE_OFFSET, which confuses kmem read/write
23 Say Y here if you want to support the /dev/kmem device. The
24 /dev/kmem device is rarely used, but can be used for certain
25 kind of kernel debugging operations.
26 When in doubt, say "N".
29 bool "SGI Altix system controller communication support"
30 depends on (IA64_SGI_SN2 || IA64_GENERIC)
32 If you have an SGI Altix and you want to enable system
33 controller communication from user space (you want this!),
34 say Y. Otherwise, say N.
37 bool "SGI TIO CX driver support"
38 depends on (IA64_SGI_SN2 || IA64_GENERIC)
40 If you have an SGI Altix and you have fpga devices attached
41 to your TIO, say Y here, otherwise say N.
44 tristate "SGI FPGA Core Services driver support"
47 If you have an SGI Altix with an attached SABrick
48 say Y or M here, otherwise say N.
50 source "drivers/tty/serial/Kconfig"
51 source "drivers/tty/serdev/Kconfig"
54 tristate "TTY driver to output user messages via printk"
55 depends on EXPERT && TTY
58 If you say Y here, the support for writing user messages (i.e.
59 console messages) via printk is available.
61 The feature is useful to inline user messages with kernel
63 In order to use this feature, you should output user messages
64 to /dev/ttyprintk or redirect console to this TTY.
69 tristate "Blackfin On-Chip OTP Memory Support"
70 depends on BLACKFIN && (BF51x || BF52x || BF54x)
73 If you say Y here, you will get support for a character device
74 interface into the One Time Programmable memory pages that are
75 stored on the Blackfin processor. This will not get you access
76 to the secure memory pages however. You will need to write your
77 own secure code and reader for that.
79 To compile this driver as a module, choose M here: the module
80 will be called bfin-otp.
82 If unsure, it is safe to say Y.
84 config BFIN_OTP_WRITE_ENABLE
85 bool "Enable writing support of OTP pages"
89 If you say Y here, you will enable support for writing of the
90 OTP pages. This is dangerous by nature as you can only program
91 the pages once, so only enable this option when you actually
92 need it so as to not inadvertently clobber data.
97 tristate "Parallel printer support"
100 If you intend to attach a printer to the parallel port of your Linux
101 box (as opposed to using a serial printer; if the connector at the
102 printer has 9 or 25 holes ["female"], then it's serial), say Y.
103 Also read the Printing-HOWTO, available from
104 <http://www.tldp.org/docs.html#howto>.
106 It is possible to share one parallel port among several devices
107 (e.g. printer and ZIP drive) and it is safe to compile the
108 corresponding drivers into the kernel.
110 To compile this driver as a module, choose M here and read
111 <file:Documentation/parport.txt>. The module will be called lp.
113 If you have several parallel ports, you can specify which ports to
114 use with the "lp" kernel command line option. (Try "man bootparam"
115 or see the documentation of your boot loader (lilo or loadlin) about
116 how to pass options to the kernel at boot time.) The syntax of the
117 "lp" command line option can be found in <file:drivers/char/lp.c>.
119 If you have more than 8 printers, you need to increase the LP_NO
120 macro in lp.c and the PARPORT_MAX macro in parport.h.
123 bool "Support for console on line printer"
126 If you want kernel messages to be printed out as they occur, you
127 can have a console on the printer. This option adds support for
128 doing that; to actually get it to happen you need to pass the
129 option "console=lp0" to the kernel at boot time.
131 If the printer is out of paper (or off, or unplugged, or too
132 busy..) the kernel will stall until the printer is ready again.
133 By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
134 can make the kernel continue when this happens,
135 but it'll lose the kernel messages.
140 tristate "Support for user-space parallel port device drivers"
143 Saying Y to this adds support for /dev/parport device nodes. This
144 is needed for programs that want portable access to the parallel
145 port, for instance deviceid (which displays Plug-and-Play device
148 This is the parallel port equivalent of SCSI generic support (sg).
149 It is safe to say N to this -- it is not needed for normal printing
150 or parallel port CD-ROM/disk support.
152 To compile this driver as a module, choose M here: the
153 module will be called ppdev.
157 source "drivers/tty/hvc/Kconfig"
159 config VIRTIO_CONSOLE
160 tristate "Virtio console"
161 depends on VIRTIO && TTY
164 Virtio console for use with lguest and other hypervisors.
166 Also serves as a general-purpose serial device for data
167 transfer between the guest and host. Character devices at
168 /dev/vportNpn will be created when corresponding ports are
169 found, where N is the device number and n is the port number
170 within that device. If specified by the host, a sysfs
171 attribute called 'name' will be populated with a name for
172 the port which can be used by udev scripts to create a
173 symlink to the device.
176 tristate "IBM POWER Barrier Synchronization Register support"
177 depends on PPC_PSERIES
179 This devices exposes a hardware mechanism for fast synchronization
180 of threads across a large system which avoids bouncing a cacheline
181 between several cores on a system
183 config POWERNV_OP_PANEL
184 tristate "IBM POWERNV Operator Panel Display support"
185 depends on PPC_POWERNV
188 If you say Y here, a special character device node, /dev/op_panel,
189 will be created which exposes the operator panel display on IBM
190 Power Systems machines with FSPs.
192 If you don't require access to the operator panel display from user
195 If unsure, say M here to build it as a module called powernv-op-panel.
197 source "drivers/char/ipmi/Kconfig"
200 tristate "NetWinder thermometer support"
201 depends on ARCH_NETWINDER
203 Say Y here to include support for the thermal management hardware
204 found in the NetWinder. This driver allows the user to control the
205 temperature set points and to read the current temperature.
207 It is also possible to say M here to build it as a module (ds1620)
208 It is recommended to be used on a NetWinder, but it is not a
212 tristate "NetWinder Button"
213 depends on ARCH_NETWINDER
215 If you say Y here and create a character device node /dev/nwbutton
216 with major and minor numbers 10 and 158 ("man mknod"), then every
217 time the orange button is pressed a number of times, the number of
218 times the button was pressed will be written to that device.
220 This is most useful for applications, as yet unwritten, which
221 perform actions based on how many times the button is pressed in a
224 Do not hold the button down for too long, as the driver does not
225 alter the behaviour of the hardware reset circuitry attached to the
226 button; it will still execute a hard reset if the button is held
227 down for longer than approximately five seconds.
229 To compile this driver as a module, choose M here: the
230 module will be called nwbutton.
232 Most people will answer Y to this question and "Reboot Using Button"
233 below to be able to initiate a system shutdown from the button.
235 config NWBUTTON_REBOOT
236 bool "Reboot Using Button"
239 If you say Y here, then you will be able to initiate a system
240 shutdown and reboot by pressing the orange button a number of times.
241 The number of presses to initiate the shutdown is two by default,
242 but this can be altered by modifying the value of NUM_PRESSES_REBOOT
243 in nwbutton.h and recompiling the driver or, if you compile the
244 driver as a module, you can specify the number of presses at load
245 time with "insmod button reboot_count=<something>".
248 tristate "NetWinder flash support"
249 depends on ARCH_NETWINDER
251 If you say Y here and create a character device /dev/flash with
252 major 10 and minor 160 you can manipulate the flash ROM containing
253 the NetWinder firmware. Be careful as accidentally overwriting the
254 flash contents can render your computer unbootable. On no account
255 allow random users access to this device. :-)
257 To compile this driver as a module, choose M here: the
258 module will be called nwflash.
260 If you're not sure, say N.
262 source "drivers/char/hw_random/Kconfig"
265 tristate "/dev/nvram support"
266 depends on ATARI || X86 || (ARM && RTC_DRV_CMOS) || GENERIC_NVRAM
268 If you say Y here and create a character special file /dev/nvram
269 with major number 10 and minor number 144 using mknod ("man mknod"),
270 you get read and write access to the extra bytes of non-volatile
271 memory in the real time clock (RTC), which is contained in every PC
272 and most Ataris. The actual number of bytes varies, depending on the
273 nvram in the system, but is usually 114 (128-14 for the RTC).
275 This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
276 on Ataris. /dev/nvram may be used to view settings there, or to
277 change them (with some utility). It could also be used to frequently
278 save a few bits of very important data that may not be lost over
279 power-off and for which writing to disk is too insecure. Note
280 however that most NVRAM space in a PC belongs to the BIOS and you
281 should NEVER idly tamper with it. See Ralf Brown's interrupt list
282 for a guide to the use of CMOS bytes by your BIOS.
284 On Atari machines, /dev/nvram is always configured and does not need
287 To compile this driver as a module, choose M here: the
288 module will be called nvram.
291 # These legacy RTC drivers just cause too many conflicts with the generic
292 # RTC framework ... let's not even try to coexist any more.
297 tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
298 depends on ALPHA || (MIPS && MACH_LOONGSON64)
300 If you say Y here and create a character special file /dev/rtc with
301 major number 10 and minor number 135 using mknod ("man mknod"), you
302 will get access to the real time clock (or hardware clock) built
305 Every PC has such a clock built in. It can be used to generate
306 signals from as low as 1Hz up to 8192Hz, and can also be used
307 as a 24 hour alarm. It reports status information via the file
308 /proc/driver/rtc and its behaviour is set by various ioctls on
311 If you run Linux on a multiprocessor machine and said Y to
312 "Symmetric Multi Processing" above, you should say Y here to read
313 and set the RTC in an SMP compatible fashion.
315 If you think you have a use for such a device (such as periodic data
316 sampling), then say Y here, and read <file:Documentation/rtc.txt>
319 To compile this driver as a module, choose M here: the
320 module will be called rtc.
323 tristate "Enhanced Real Time Clock Support"
324 depends on SPARC32 && PCI
326 If you say Y here and create a character special file /dev/rtc with
327 major number 10 and minor number 135 using mknod ("man mknod"), you
328 will get access to the real time clock (or hardware clock) built
331 Every PC has such a clock built in. It can be used to generate
332 signals from as low as 1Hz up to 8192Hz, and can also be used
333 as a 24 hour alarm. It reports status information via the file
334 /proc/driver/rtc and its behaviour is set by various ioctls on
337 If you think you have a use for such a device (such as periodic data
338 sampling), then say Y here, and read <file:Documentation/rtc.txt>
341 To compile this driver as a module, choose M here: the
342 module will be called js-rtc.
345 bool "EFI Real Time Clock Services"
349 tristate "DS1302 RTC support"
350 depends on M32R && (PLAT_M32700UT || PLAT_OPSPUT)
352 If you say Y here and create a character special file /dev/rtc with
353 major number 121 and minor number 0 using mknod ("man mknod"), you
354 will get access to the real time clock (or hardware clock) built
360 tristate "Double Talk PC internal speech card support"
363 This driver is for the DoubleTalk PC, a speech synthesizer
364 manufactured by RC Systems (<http://www.rcsys.com/>). It is also
365 called the `internal DoubleTalk'.
367 To compile this driver as a module, choose M here: the
368 module will be called dtlk.
371 tristate "Xilinx HWICAP Support"
372 depends on XILINX_VIRTEX || MICROBLAZE
374 This option enables support for Xilinx Internal Configuration
375 Access Port (ICAP) driver. The ICAP is used on Xilinx Virtex
376 FPGA platforms to partially reconfigure the FPGA at runtime.
381 tristate "Siemens R3964 line discipline"
384 This driver allows synchronous communication with devices using the
385 Siemens R3964 packet protocol. Unless you are dealing with special
386 hardware like PLCs, you are unlikely to need this.
388 To compile this driver as a module, choose M here: the
389 module will be called n_r3964.
394 tristate "Applicom intelligent fieldbus card support"
397 This driver provides the kernel-side support for the intelligent
398 fieldbus cards made by Applicom International. More information
399 about these cards can be found on the WWW at the address
400 <http://www.applicom-int.com/>, or by email from David Woodhouse
401 <dwmw2@infradead.org>.
403 To compile this driver as a module, choose M here: the
404 module will be called applicom.
409 tristate "Sony Vaio Programmable I/O Control Device support"
410 depends on X86_32 && PCI && INPUT
412 This driver enables access to the Sony Programmable I/O Control
413 Device which can be found in many (all ?) Sony Vaio laptops.
415 If you have one of those laptops, read
416 <file:Documentation/laptops/sonypi.txt>, and say Y or M here.
418 To compile this driver as a module, choose M here: the
419 module will be called sonypi.
422 tristate "TANBAC TB0219 GPIO support"
423 depends on TANBAC_TB022X
426 source "drivers/char/pcmcia/Kconfig"
429 tristate "ACP Modem (Mwave) support"
430 depends on X86 && TTY
433 The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
434 kernel driver and a user level application. Together these components
435 support direct attachment to public switched telephone networks (PSTNs)
436 and support selected world wide countries.
438 This version of the ACP Modem driver supports the IBM Thinkpad 600E,
439 600, and 770 that include on board ACP modem hardware.
441 The modem also supports the standard communications port interface
442 (ttySx) and is compatible with the Hayes AT Command Set.
444 The user level application needed to use this driver can be found at
445 the IBM Linux Technology Center (LTC) web site:
446 <http://www.ibm.com/linux/ltc/>.
448 If you own one of the above IBM Thinkpads which has the Mwave chipset
451 To compile this driver as a module, choose M here: the
452 module will be called mwave.
455 tristate "NatSemi SCx200 GPIO Support"
459 Give userspace access to the GPIO pins on the National
460 Semiconductor SCx200 processors.
462 If compiled as a module, it will be called scx200_gpio.
465 tristate "NatSemi PC8736x GPIO Support"
466 depends on X86_32 && !UML
467 default SCx200_GPIO # mostly N
468 select NSC_GPIO # needed for support routines
470 Give userspace access to the GPIO pins on the National
471 Semiconductor PC-8736x (x=[03456]) SuperIO chip. The chip
472 has multiple functional units, inc several managed by
473 hwmon/pc87360 driver. Tested with PC-87366
475 If compiled as a module, it will be called pc8736x_gpio.
478 tristate "NatSemi Base GPIO Support"
480 # selected by SCx200_GPIO and PC8736x_GPIO
481 # what about 2 selectors differing: m != y
483 Common support used (and needed) by scx200_gpio and
484 pc8736x_gpio drivers. If those drivers are built as
485 modules, this one will be too, named nsc_gpio
488 tristate "RAW driver (/dev/raw/rawN)"
491 The raw driver permits block devices to be bound to /dev/raw/rawN.
492 Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
493 See the raw(8) manpage for more details.
495 Applications should preferably open the device (eg /dev/hda1)
496 with the O_DIRECT flag.
499 int "Maximum number of RAW devices to support (1-65536)"
500 depends on RAW_DRIVER
504 The maximum number of RAW devices that are supported.
505 Default is 256. Increase this number in case you need lots of
509 bool "HPET - High Precision Event Timer" if (X86 || IA64)
513 If you say Y here, you will have a miscdevice named "/dev/hpet/". Each
514 open selects one of the timers supported by the HPET. The timers are
515 non-periodic and/or periodic.
518 bool "Allow mmap of HPET"
522 If you say Y here, user applications will be able to mmap
525 config HPET_MMAP_DEFAULT
526 bool "Enable HPET MMAP access by default"
530 In some hardware implementations, the page containing HPET
531 registers may also contain other things that shouldn't be
532 exposed to the user. This option selects the default (if
533 kernel parameter hpet_mmap is not set) user access to the
534 registers for applications that require it.
536 config HANGCHECK_TIMER
537 tristate "Hangcheck timer"
538 depends on X86 || IA64 || PPC64 || S390
540 The hangcheck-timer module detects when the system has gone
541 out to lunch past a certain margin. It can reboot the system
542 or merely print a warning.
545 tristate "UV_MMTIMER Memory mapped RTC for SGI UV"
549 The uv_mmtimer device allows direct userspace access to the
552 source "drivers/char/tpm/Kconfig"
555 tristate "Telecom clock driver for ATCA SBC"
559 The telecom clock device is specific to the MPCBL0010 and MPCBL0050
560 ATCA computers and allows direct userspace access to the
561 configuration of the telecom clock configuration settings. This
562 device is used for hardware synchronization across the ATCA backplane
563 fabric. Upon loading, the driver exports a sysfs directory,
564 /sys/devices/platform/telco_clock, with a number of files for
565 controlling the behavior of this hardware.
568 bool "/dev/port character device"
569 depends on ISA || PCI
572 Say Y here if you want to support the /dev/port device. The /dev/port
573 device is similar to /dev/mem, but for I/O ports.
575 source "drivers/s390/char/Kconfig"
578 tristate "Character-device access via hypervisor to the Tilera SPI ROM"
582 This device provides character-level read-write access
583 to the SROM, typically via the "0", "1", and "2" devices
584 in /dev/srom/. The Tilera hypervisor makes the flash
585 device appear much like a simple EEPROM, and knows
586 how to partition a single ROM for multiple purposes.
588 source "drivers/char/xillybus/Kconfig"