|  | # SPDX-License-Identifier: GPL-2.0 | 
|  | # | 
|  | # Character device configuration | 
|  | # | 
|  |  | 
|  | menu "Character devices" | 
|  |  | 
|  | source "drivers/tty/Kconfig" | 
|  |  | 
|  | config TTY_PRINTK | 
|  | tristate "TTY driver to output user messages via printk" | 
|  | depends on EXPERT && TTY | 
|  | default n | 
|  | help | 
|  | If you say Y here, the support for writing user messages (i.e. | 
|  | console messages) via printk is available. | 
|  |  | 
|  | The feature is useful to inline user messages with kernel | 
|  | messages. | 
|  | In order to use this feature, you should output user messages | 
|  | to /dev/ttyprintk or redirect console to this TTY, or boot | 
|  | the kernel with console=ttyprintk. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config TTY_PRINTK_LEVEL | 
|  | depends on TTY_PRINTK | 
|  | int "ttyprintk log level (1-7)" | 
|  | range 1 7 | 
|  | default "6" | 
|  | help | 
|  | Printk log level to use for ttyprintk messages. | 
|  |  | 
|  | config PRINTER | 
|  | tristate "Parallel printer support" | 
|  | depends on PARPORT | 
|  | depends on HAS_IOPORT || PARPORT_NOT_PC | 
|  | help | 
|  | If you intend to attach a printer to the parallel port of your Linux | 
|  | box (as opposed to using a serial printer; if the connector at the | 
|  | printer has 9 or 25 holes ["female"], then it's serial), say Y. | 
|  | Also read the Printing-HOWTO, available from | 
|  | <https://www.tldp.org/docs.html#howto>. | 
|  |  | 
|  | It is possible to share one parallel port among several devices | 
|  | (e.g. printer and ZIP drive) and it is safe to compile the | 
|  | corresponding drivers into the kernel. | 
|  |  | 
|  | To compile this driver as a module, choose M here and read | 
|  | <file:Documentation/admin-guide/parport.rst>.  The module will be called lp. | 
|  |  | 
|  | If you have several parallel ports, you can specify which ports to | 
|  | use with the "lp" kernel command line option.  (Try "man bootparam" | 
|  | or see the documentation of your boot loader (lilo or loadlin) about | 
|  | how to pass options to the kernel at boot time.)  The syntax of the | 
|  | "lp" command line option can be found in <file:drivers/char/lp.c>. | 
|  |  | 
|  | If you have more than 8 printers, you need to increase the LP_NO | 
|  | macro in lp.c and the PARPORT_MAX macro in parport.h. | 
|  |  | 
|  | config LP_CONSOLE | 
|  | bool "Support for console on line printer" | 
|  | depends on PRINTER | 
|  | help | 
|  | If you want kernel messages to be printed out as they occur, you | 
|  | can have a console on the printer. This option adds support for | 
|  | doing that; to actually get it to happen you need to pass the | 
|  | option "console=lp0" to the kernel at boot time. | 
|  |  | 
|  | If the printer is out of paper (or off, or unplugged, or too | 
|  | busy..) the kernel will stall until the printer is ready again. | 
|  | By defining CONSOLE_LP_STRICT to 0 (at your own risk) you | 
|  | can make the kernel continue when this happens, | 
|  | but it'll lose the kernel messages. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config PPDEV | 
|  | tristate "Support for user-space parallel port device drivers" | 
|  | depends on PARPORT | 
|  | help | 
|  | Saying Y to this adds support for /dev/parport device nodes.  This | 
|  | is needed for programs that want portable access to the parallel | 
|  | port, for instance deviceid (which displays Plug-and-Play device | 
|  | IDs). | 
|  |  | 
|  | This is the parallel port equivalent of SCSI generic support (sg). | 
|  | It is safe to say N to this -- it is not needed for normal printing | 
|  | or parallel port CD-ROM/disk support. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called ppdev. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config VIRTIO_CONSOLE | 
|  | tristate "Virtio console" | 
|  | depends on TTY | 
|  | select HVC_DRIVER | 
|  | select VIRTIO | 
|  | help | 
|  | Virtio console for use with hypervisors. | 
|  |  | 
|  | Also serves as a general-purpose serial device for data | 
|  | transfer between the guest and host.  Character devices at | 
|  | /dev/vportNpn will be created when corresponding ports are | 
|  | found, where N is the device number and n is the port number | 
|  | within that device.  If specified by the host, a sysfs | 
|  | attribute called 'name' will be populated with a name for | 
|  | the port which can be used by udev scripts to create a | 
|  | symlink to the device. | 
|  |  | 
|  | config IBM_BSR | 
|  | tristate "IBM POWER Barrier Synchronization Register support" | 
|  | depends on PPC_PSERIES | 
|  | help | 
|  | This devices exposes a hardware mechanism for fast synchronization | 
|  | of threads across a large system which avoids bouncing a cacheline | 
|  | between several cores on a system | 
|  |  | 
|  | config POWERNV_OP_PANEL | 
|  | tristate "IBM POWERNV Operator Panel Display support" | 
|  | depends on PPC_POWERNV | 
|  | default m | 
|  | help | 
|  | If you say Y here, a special character device node, /dev/op_panel, | 
|  | will be created which exposes the operator panel display on IBM | 
|  | Power Systems machines with FSPs. | 
|  |  | 
|  | If you don't require access to the operator panel display from user | 
|  | space, say N. | 
|  |  | 
|  | If unsure, say M here to build it as a module called powernv-op-panel. | 
|  |  | 
|  | source "drivers/char/ipmi/Kconfig" | 
|  |  | 
|  | config DS1620 | 
|  | tristate "NetWinder thermometer support" | 
|  | depends on ARCH_NETWINDER | 
|  | help | 
|  | Say Y here to include support for the thermal management hardware | 
|  | found in the NetWinder. This driver allows the user to control the | 
|  | temperature set points and to read the current temperature. | 
|  |  | 
|  | It is also possible to say M here to build it as a module (ds1620) | 
|  | It is recommended to be used on a NetWinder, but it is not a | 
|  | necessity. | 
|  |  | 
|  | config NWBUTTON | 
|  | tristate "NetWinder Button" | 
|  | depends on ARCH_NETWINDER | 
|  | help | 
|  | If you say Y here and create a character device node /dev/nwbutton | 
|  | with major and minor numbers 10 and 158 ("man mknod"), then every | 
|  | time the orange button is pressed a number of times, the number of | 
|  | times the button was pressed will be written to that device. | 
|  |  | 
|  | This is most useful for applications, as yet unwritten, which | 
|  | perform actions based on how many times the button is pressed in a | 
|  | row. | 
|  |  | 
|  | Do not hold the button down for too long, as the driver does not | 
|  | alter the behaviour of the hardware reset circuitry attached to the | 
|  | button; it will still execute a hard reset if the button is held | 
|  | down for longer than approximately five seconds. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called nwbutton. | 
|  |  | 
|  | Most people will answer Y to this question and "Reboot Using Button" | 
|  | below to be able to initiate a system shutdown from the button. | 
|  |  | 
|  | config NWBUTTON_REBOOT | 
|  | bool "Reboot Using Button" | 
|  | depends on NWBUTTON | 
|  | help | 
|  | If you say Y here, then you will be able to initiate a system | 
|  | shutdown and reboot by pressing the orange button a number of times. | 
|  | The number of presses to initiate the shutdown is two by default, | 
|  | but this can be altered by modifying the value of NUM_PRESSES_REBOOT | 
|  | in nwbutton.h and recompiling the driver or, if you compile the | 
|  | driver as a module, you can specify the number of presses at load | 
|  | time with "insmod button reboot_count=<something>". | 
|  |  | 
|  | config NWFLASH | 
|  | tristate "NetWinder flash support" | 
|  | depends on ARCH_NETWINDER | 
|  | help | 
|  | If you say Y here and create a character device /dev/flash with | 
|  | major 10 and minor 160 you can manipulate the flash ROM containing | 
|  | the NetWinder firmware. Be careful as accidentally overwriting the | 
|  | flash contents can render your computer unbootable. On no account | 
|  | allow random users access to this device. :-) | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called nwflash. | 
|  |  | 
|  | If you're not sure, say N. | 
|  |  | 
|  | source "drivers/char/hw_random/Kconfig" | 
|  |  | 
|  | config DTLK | 
|  | tristate "Double Talk PC internal speech card support" | 
|  | depends on ISA | 
|  | help | 
|  | This driver is for the DoubleTalk PC, a speech synthesizer | 
|  | manufactured by RC Systems (<https://www.rcsys.com/>).  It is also | 
|  | called the `internal DoubleTalk'. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called dtlk. | 
|  |  | 
|  | config XILINX_HWICAP | 
|  | tristate "Xilinx HWICAP Support" | 
|  | depends on MICROBLAZE | 
|  | help | 
|  | This option enables support for Xilinx Internal Configuration | 
|  | Access Port (ICAP) driver.  The ICAP is used on Xilinx Virtex | 
|  | FPGA platforms to partially reconfigure the FPGA at runtime. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config APPLICOM | 
|  | tristate "Applicom intelligent fieldbus card support" | 
|  | depends on PCI | 
|  | help | 
|  | This driver provides the kernel-side support for the intelligent | 
|  | fieldbus cards made by Applicom International. More information | 
|  | about these cards can be found on the WWW at the address | 
|  | <https://www.applicom-int.com/>, or by email from David Woodhouse | 
|  | <dwmw2@infradead.org>. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called applicom. | 
|  |  | 
|  | If unsure, say N. | 
|  |  | 
|  | config SONYPI | 
|  | tristate "Sony Vaio Programmable I/O Control Device support" | 
|  | depends on X86_32 && PCI && INPUT && HAS_IOPORT | 
|  | depends on ACPI_EC || !ACPI | 
|  | help | 
|  | This driver enables access to the Sony Programmable I/O Control | 
|  | Device which can be found in many (all ?) Sony Vaio laptops. | 
|  |  | 
|  | If you have one of those laptops, read | 
|  | <file:Documentation/admin-guide/laptops/sonypi.rst>, and say Y or M here. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called sonypi. | 
|  |  | 
|  | config MWAVE | 
|  | tristate "ACP Modem (Mwave) support" | 
|  | depends on X86 && TTY | 
|  | select SERIAL_8250 | 
|  | help | 
|  | The ACP modem (Mwave) for Linux is a WinModem. It is composed of a | 
|  | kernel driver and a user level application. Together these components | 
|  | support direct attachment to public switched telephone networks (PSTNs) | 
|  | and support selected world wide countries. | 
|  |  | 
|  | This version of the ACP Modem driver supports the IBM Thinkpad 600E, | 
|  | 600, and 770 that include on board ACP modem hardware. | 
|  |  | 
|  | The modem also supports the standard communications port interface | 
|  | (ttySx) and is compatible with the Hayes AT Command Set. | 
|  |  | 
|  | The user level application needed to use this driver can be found at | 
|  | the IBM Linux Technology Center (LTC) web site: | 
|  | <http://www.ibm.com/linux/ltc/>. | 
|  |  | 
|  | If you own one of the above IBM Thinkpads which has the Mwave chipset | 
|  | in it, say Y. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called mwave. | 
|  |  | 
|  | config SCx200_GPIO | 
|  | tristate "NatSemi SCx200 GPIO Support" | 
|  | depends on SCx200 | 
|  | select NSC_GPIO | 
|  | help | 
|  | Give userspace access to the GPIO pins on the National | 
|  | Semiconductor SCx200 processors. | 
|  |  | 
|  | If compiled as a module, it will be called scx200_gpio. | 
|  |  | 
|  | config PC8736x_GPIO | 
|  | tristate "NatSemi PC8736x GPIO Support" | 
|  | depends on X86_32 && !UML | 
|  | default SCx200_GPIO	# mostly N | 
|  | select NSC_GPIO		# needed for support routines | 
|  | help | 
|  | Give userspace access to the GPIO pins on the National | 
|  | Semiconductor PC-8736x (x=[03456]) SuperIO chip.  The chip | 
|  | has multiple functional units, inc several managed by | 
|  | hwmon/pc87360 driver.  Tested with PC-87366 | 
|  |  | 
|  | If compiled as a module, it will be called pc8736x_gpio. | 
|  |  | 
|  | config NSC_GPIO | 
|  | tristate "NatSemi Base GPIO Support" | 
|  | depends on X86_32 | 
|  | # selected by SCx200_GPIO and PC8736x_GPIO | 
|  | # what about 2 selectors differing: m != y | 
|  | help | 
|  | Common support used (and needed) by scx200_gpio and | 
|  | pc8736x_gpio drivers.  If those drivers are built as | 
|  | modules, this one will be too, named nsc_gpio | 
|  |  | 
|  | config DEVMEM | 
|  | bool "/dev/mem virtual device support" | 
|  | default y | 
|  | help | 
|  | Say Y here if you want to support the /dev/mem device. | 
|  | The /dev/mem device is used to access areas of physical | 
|  | memory. | 
|  | When in doubt, say "Y". | 
|  |  | 
|  | config NVRAM | 
|  | tristate "/dev/nvram support" | 
|  | depends on X86 || HAVE_ARCH_NVRAM_OPS | 
|  | default M68K || PPC | 
|  | help | 
|  | If you say Y here and create a character special file /dev/nvram | 
|  | with major number 10 and minor number 144 using mknod ("man mknod"), | 
|  | you get read and write access to the non-volatile memory. | 
|  |  | 
|  | /dev/nvram may be used to view settings in NVRAM or to change them | 
|  | (with some utility). It could also be used to frequently | 
|  | save a few bits of very important data that may not be lost over | 
|  | power-off and for which writing to disk is too insecure. Note | 
|  | however that most NVRAM space in a PC belongs to the BIOS and you | 
|  | should NEVER idly tamper with it. See Ralf Brown's interrupt list | 
|  | for a guide to the use of CMOS bytes by your BIOS. | 
|  |  | 
|  | This memory is conventionally called "NVRAM" on PowerPC machines, | 
|  | "CMOS RAM" on PCs, "NVRAM" on Ataris and "PRAM" on Macintoshes. | 
|  |  | 
|  | To compile this driver as a module, choose M here: the | 
|  | module will be called nvram. | 
|  |  | 
|  | config DEVPORT | 
|  | bool "/dev/port character device" | 
|  | depends on HAS_IOPORT | 
|  | default y | 
|  | help | 
|  | Say Y here if you want to support the /dev/port device. The /dev/port | 
|  | device is similar to /dev/mem, but for I/O ports. | 
|  |  | 
|  | config HPET | 
|  | bool "HPET - High Precision Event Timer" if X86 | 
|  | default n | 
|  | depends on ACPI | 
|  | help | 
|  | If you say Y here, you will have a miscdevice named "/dev/hpet/".  Each | 
|  | open selects one of the timers supported by the HPET.  The timers are | 
|  | non-periodic and/or periodic. | 
|  |  | 
|  | config HPET_MMAP | 
|  | bool "Allow mmap of HPET" | 
|  | default y | 
|  | depends on HPET | 
|  | help | 
|  | If you say Y here, user applications will be able to mmap | 
|  | the HPET registers. | 
|  |  | 
|  | config HPET_MMAP_DEFAULT | 
|  | bool "Enable HPET MMAP access by default" | 
|  | default y | 
|  | depends on HPET_MMAP | 
|  | help | 
|  | In some hardware implementations, the page containing HPET | 
|  | registers may also contain other things that shouldn't be | 
|  | exposed to the user.  This option selects the default (if | 
|  | kernel parameter hpet_mmap is not set) user access to the | 
|  | registers for applications that require it. | 
|  |  | 
|  | config HANGCHECK_TIMER | 
|  | tristate "Hangcheck timer" | 
|  | depends on X86 || PPC64 || S390 | 
|  | help | 
|  | The hangcheck-timer module detects when the system has gone | 
|  | out to lunch past a certain margin.  It can reboot the system | 
|  | or merely print a warning. | 
|  |  | 
|  | config UV_MMTIMER | 
|  | tristate "UV_MMTIMER Memory mapped RTC for SGI UV" | 
|  | depends on X86_UV | 
|  | default m | 
|  | help | 
|  | The uv_mmtimer device allows direct userspace access to the | 
|  | UV system timer. | 
|  |  | 
|  | source "drivers/char/tpm/Kconfig" | 
|  |  | 
|  | config TELCLOCK | 
|  | tristate "Telecom clock driver for ATCA SBC" | 
|  | depends on X86 | 
|  | default n | 
|  | help | 
|  | The telecom clock device is specific to the MPCBL0010 and MPCBL0050 | 
|  | ATCA computers and allows direct userspace access to the | 
|  | configuration of the telecom clock configuration settings.  This | 
|  | device is used for hardware synchronization across the ATCA backplane | 
|  | fabric.  Upon loading, the driver exports a sysfs directory, | 
|  | /sys/devices/faux/telco_clock, with a number of files for | 
|  | controlling the behavior of this hardware. | 
|  |  | 
|  | source "drivers/s390/char/Kconfig" | 
|  |  | 
|  | source "drivers/char/xillybus/Kconfig" | 
|  |  | 
|  | config ADI | 
|  | tristate "SPARC Privileged ADI driver" | 
|  | depends on SPARC64 | 
|  | default m | 
|  | help | 
|  | SPARC M7 and newer processors utilize ADI (Application Data | 
|  | Integrity) to version and protect memory.  This driver provides | 
|  | read/write access to the ADI versions for privileged processes. | 
|  | This feature is also known as MCD (Memory Corruption Detection) | 
|  | and SSM (Silicon Secured Memory).  Intended consumers of this | 
|  | driver include crash and makedumpfile. | 
|  |  | 
|  | endmenu |