| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | # |
| 3 | # Character device configuration |
| 4 | # |
| 5 | |
| 6 | menu "Character devices" |
| 7 | |
| 8 | source "drivers/tty/Kconfig" |
| 9 | |
| 10 | config TTY_PRINTK |
| 11 | tristate "TTY driver to output user messages via printk" |
| 12 | depends on EXPERT && TTY |
| 13 | default n |
| 14 | help |
| 15 | If you say Y here, the support for writing user messages (i.e. |
| 16 | console messages) via printk is available. |
| 17 | |
| 18 | The feature is useful to inline user messages with kernel |
| 19 | messages. |
| 20 | In order to use this feature, you should output user messages |
| 21 | to /dev/ttyprintk or redirect console to this TTY, or boot |
| 22 | the kernel with console=ttyprintk. |
| 23 | |
| 24 | If unsure, say N. |
| 25 | |
| 26 | config TTY_PRINTK_LEVEL |
| 27 | depends on TTY_PRINTK |
| 28 | int "ttyprintk log level (1-7)" |
| 29 | range 1 7 |
| 30 | default "6" |
| 31 | help |
| 32 | Printk log level to use for ttyprintk messages. |
| 33 | |
| 34 | config PRINTER |
| 35 | tristate "Parallel printer support" |
| 36 | depends on PARPORT |
| 37 | depends on HAS_IOPORT || PARPORT_NOT_PC |
| 38 | help |
| 39 | If you intend to attach a printer to the parallel port of your Linux |
| 40 | box (as opposed to using a serial printer; if the connector at the |
| 41 | printer has 9 or 25 holes ["female"], then it's serial), say Y. |
| 42 | Also read the Printing-HOWTO, available from |
| 43 | <https://www.tldp.org/docs.html#howto>. |
| 44 | |
| 45 | It is possible to share one parallel port among several devices |
| 46 | (e.g. printer and ZIP drive) and it is safe to compile the |
| 47 | corresponding drivers into the kernel. |
| 48 | |
| 49 | To compile this driver as a module, choose M here and read |
| 50 | <file:Documentation/admin-guide/parport.rst>. The module will be called lp. |
| 51 | |
| 52 | If you have several parallel ports, you can specify which ports to |
| 53 | use with the "lp" kernel command line option. (Try "man bootparam" |
| 54 | or see the documentation of your boot loader (lilo or loadlin) about |
| 55 | how to pass options to the kernel at boot time.) The syntax of the |
| 56 | "lp" command line option can be found in <file:drivers/char/lp.c>. |
| 57 | |
| 58 | If you have more than 8 printers, you need to increase the LP_NO |
| 59 | macro in lp.c and the PARPORT_MAX macro in parport.h. |
| 60 | |
| 61 | config LP_CONSOLE |
| 62 | bool "Support for console on line printer" |
| 63 | depends on PRINTER |
| 64 | help |
| 65 | If you want kernel messages to be printed out as they occur, you |
| 66 | can have a console on the printer. This option adds support for |
| 67 | doing that; to actually get it to happen you need to pass the |
| 68 | option "console=lp0" to the kernel at boot time. |
| 69 | |
| 70 | If the printer is out of paper (or off, or unplugged, or too |
| 71 | busy..) the kernel will stall until the printer is ready again. |
| 72 | By defining CONSOLE_LP_STRICT to 0 (at your own risk) you |
| 73 | can make the kernel continue when this happens, |
| 74 | but it'll lose the kernel messages. |
| 75 | |
| 76 | If unsure, say N. |
| 77 | |
| 78 | config PPDEV |
| 79 | tristate "Support for user-space parallel port device drivers" |
| 80 | depends on PARPORT |
| 81 | help |
| 82 | Saying Y to this adds support for /dev/parport device nodes. This |
| 83 | is needed for programs that want portable access to the parallel |
| 84 | port, for instance deviceid (which displays Plug-and-Play device |
| 85 | IDs). |
| 86 | |
| 87 | This is the parallel port equivalent of SCSI generic support (sg). |
| 88 | It is safe to say N to this -- it is not needed for normal printing |
| 89 | or parallel port CD-ROM/disk support. |
| 90 | |
| 91 | To compile this driver as a module, choose M here: the |
| 92 | module will be called ppdev. |
| 93 | |
| 94 | If unsure, say N. |
| 95 | |
| 96 | config VIRTIO_CONSOLE |
| 97 | tristate "Virtio console" |
| 98 | depends on TTY |
| 99 | select HVC_DRIVER |
| 100 | select VIRTIO |
| 101 | help |
| 102 | Virtio console for use with hypervisors. |
| 103 | |
| 104 | Also serves as a general-purpose serial device for data |
| 105 | transfer between the guest and host. Character devices at |
| 106 | /dev/vportNpn will be created when corresponding ports are |
| 107 | found, where N is the device number and n is the port number |
| 108 | within that device. If specified by the host, a sysfs |
| 109 | attribute called 'name' will be populated with a name for |
| 110 | the port which can be used by udev scripts to create a |
| 111 | symlink to the device. |
| 112 | |
| 113 | config IBM_BSR |
| 114 | tristate "IBM POWER Barrier Synchronization Register support" |
| 115 | depends on PPC_PSERIES |
| 116 | help |
| 117 | This devices exposes a hardware mechanism for fast synchronization |
| 118 | of threads across a large system which avoids bouncing a cacheline |
| 119 | between several cores on a system |
| 120 | |
| 121 | config POWERNV_OP_PANEL |
| 122 | tristate "IBM POWERNV Operator Panel Display support" |
| 123 | depends on PPC_POWERNV |
| 124 | default m |
| 125 | help |
| 126 | If you say Y here, a special character device node, /dev/op_panel, |
| 127 | will be created which exposes the operator panel display on IBM |
| 128 | Power Systems machines with FSPs. |
| 129 | |
| 130 | If you don't require access to the operator panel display from user |
| 131 | space, say N. |
| 132 | |
| 133 | If unsure, say M here to build it as a module called powernv-op-panel. |
| 134 | |
| 135 | source "drivers/char/ipmi/Kconfig" |
| 136 | |
| 137 | config DS1620 |
| 138 | tristate "NetWinder thermometer support" |
| 139 | depends on ARCH_NETWINDER |
| 140 | help |
| 141 | Say Y here to include support for the thermal management hardware |
| 142 | found in the NetWinder. This driver allows the user to control the |
| 143 | temperature set points and to read the current temperature. |
| 144 | |
| 145 | It is also possible to say M here to build it as a module (ds1620) |
| 146 | It is recommended to be used on a NetWinder, but it is not a |
| 147 | necessity. |
| 148 | |
| 149 | config NWBUTTON |
| 150 | tristate "NetWinder Button" |
| 151 | depends on ARCH_NETWINDER |
| 152 | help |
| 153 | If you say Y here and create a character device node /dev/nwbutton |
| 154 | with major and minor numbers 10 and 158 ("man mknod"), then every |
| 155 | time the orange button is pressed a number of times, the number of |
| 156 | times the button was pressed will be written to that device. |
| 157 | |
| 158 | This is most useful for applications, as yet unwritten, which |
| 159 | perform actions based on how many times the button is pressed in a |
| 160 | row. |
| 161 | |
| 162 | Do not hold the button down for too long, as the driver does not |
| 163 | alter the behaviour of the hardware reset circuitry attached to the |
| 164 | button; it will still execute a hard reset if the button is held |
| 165 | down for longer than approximately five seconds. |
| 166 | |
| 167 | To compile this driver as a module, choose M here: the |
| 168 | module will be called nwbutton. |
| 169 | |
| 170 | Most people will answer Y to this question and "Reboot Using Button" |
| 171 | below to be able to initiate a system shutdown from the button. |
| 172 | |
| 173 | config NWBUTTON_REBOOT |
| 174 | bool "Reboot Using Button" |
| 175 | depends on NWBUTTON |
| 176 | help |
| 177 | If you say Y here, then you will be able to initiate a system |
| 178 | shutdown and reboot by pressing the orange button a number of times. |
| 179 | The number of presses to initiate the shutdown is two by default, |
| 180 | but this can be altered by modifying the value of NUM_PRESSES_REBOOT |
| 181 | in nwbutton.h and recompiling the driver or, if you compile the |
| 182 | driver as a module, you can specify the number of presses at load |
| 183 | time with "insmod button reboot_count=<something>". |
| 184 | |
| 185 | config NWFLASH |
| 186 | tristate "NetWinder flash support" |
| 187 | depends on ARCH_NETWINDER |
| 188 | help |
| 189 | If you say Y here and create a character device /dev/flash with |
| 190 | major 10 and minor 160 you can manipulate the flash ROM containing |
| 191 | the NetWinder firmware. Be careful as accidentally overwriting the |
| 192 | flash contents can render your computer unbootable. On no account |
| 193 | allow random users access to this device. :-) |
| 194 | |
| 195 | To compile this driver as a module, choose M here: the |
| 196 | module will be called nwflash. |
| 197 | |
| 198 | If you're not sure, say N. |
| 199 | |
| 200 | source "drivers/char/hw_random/Kconfig" |
| 201 | |
| 202 | config XILINX_HWICAP |
| 203 | tristate "Xilinx HWICAP Support" |
| 204 | depends on MICROBLAZE |
| 205 | help |
| 206 | This option enables support for Xilinx Internal Configuration |
| 207 | Access Port (ICAP) driver. The ICAP is used on Xilinx Virtex |
| 208 | FPGA platforms to partially reconfigure the FPGA at runtime. |
| 209 | |
| 210 | If unsure, say N. |
| 211 | |
| 212 | config SONYPI |
| 213 | tristate "Sony Vaio Programmable I/O Control Device support" |
| 214 | depends on X86_32 && PCI && INPUT && HAS_IOPORT |
| 215 | depends on ACPI_EC || !ACPI |
| 216 | help |
| 217 | This driver enables access to the Sony Programmable I/O Control |
| 218 | Device which can be found in many (all ?) Sony Vaio laptops. |
| 219 | |
| 220 | If you have one of those laptops, read |
| 221 | <file:Documentation/admin-guide/laptops/sonypi.rst>, and say Y or M here. |
| 222 | |
| 223 | To compile this driver as a module, choose M here: the |
| 224 | module will be called sonypi. |
| 225 | |
| 226 | config SCx200_GPIO |
| 227 | tristate "NatSemi SCx200 GPIO Support" |
| 228 | depends on SCx200 |
| 229 | select NSC_GPIO |
| 230 | help |
| 231 | Give userspace access to the GPIO pins on the National |
| 232 | Semiconductor SCx200 processors. |
| 233 | |
| 234 | If compiled as a module, it will be called scx200_gpio. |
| 235 | |
| 236 | config PC8736x_GPIO |
| 237 | tristate "NatSemi PC8736x GPIO Support" |
| 238 | depends on X86_32 && !UML |
| 239 | default SCx200_GPIO # mostly N |
| 240 | select NSC_GPIO # needed for support routines |
| 241 | help |
| 242 | Give userspace access to the GPIO pins on the National |
| 243 | Semiconductor PC-8736x (x=[03456]) SuperIO chip. The chip |
| 244 | has multiple functional units, inc several managed by |
| 245 | hwmon/pc87360 driver. Tested with PC-87366 |
| 246 | |
| 247 | If compiled as a module, it will be called pc8736x_gpio. |
| 248 | |
| 249 | config NSC_GPIO |
| 250 | tristate "NatSemi Base GPIO Support" |
| 251 | depends on X86_32 |
| 252 | # selected by SCx200_GPIO and PC8736x_GPIO |
| 253 | # what about 2 selectors differing: m != y |
| 254 | help |
| 255 | Common support used (and needed) by scx200_gpio and |
| 256 | pc8736x_gpio drivers. If those drivers are built as |
| 257 | modules, this one will be too, named nsc_gpio |
| 258 | |
| 259 | config DEVMEM |
| 260 | bool "/dev/mem virtual device support" |
| 261 | default y |
| 262 | help |
| 263 | Say Y here if you want to support the /dev/mem device. |
| 264 | The /dev/mem device is used to access areas of physical |
| 265 | memory. |
| 266 | When in doubt, say "Y". |
| 267 | |
| 268 | config NVRAM |
| 269 | tristate "/dev/nvram support" |
| 270 | depends on X86 || HAVE_ARCH_NVRAM_OPS |
| 271 | default M68K || PPC |
| 272 | help |
| 273 | If you say Y here and create a character special file /dev/nvram |
| 274 | with major number 10 and minor number 144 using mknod ("man mknod"), |
| 275 | you get read and write access to the non-volatile memory. |
| 276 | |
| 277 | /dev/nvram may be used to view settings in NVRAM or to change them |
| 278 | (with some utility). It could also be used to frequently |
| 279 | save a few bits of very important data that may not be lost over |
| 280 | power-off and for which writing to disk is too insecure. Note |
| 281 | however that most NVRAM space in a PC belongs to the BIOS and you |
| 282 | should NEVER idly tamper with it. See Ralf Brown's interrupt list |
| 283 | for a guide to the use of CMOS bytes by your BIOS. |
| 284 | |
| 285 | This memory is conventionally called "NVRAM" on PowerPC machines, |
| 286 | "CMOS RAM" on PCs, "NVRAM" on Ataris and "PRAM" on Macintoshes. |
| 287 | |
| 288 | To compile this driver as a module, choose M here: the |
| 289 | module will be called nvram. |
| 290 | |
| 291 | config DEVPORT |
| 292 | bool "/dev/port character device" |
| 293 | depends on HAS_IOPORT |
| 294 | default y |
| 295 | help |
| 296 | Say Y here if you want to support the /dev/port device. The /dev/port |
| 297 | device is similar to /dev/mem, but for I/O ports. |
| 298 | |
| 299 | config HPET |
| 300 | bool "HPET - High Precision Event Timer" if X86 |
| 301 | default n |
| 302 | depends on ACPI |
| 303 | help |
| 304 | If you say Y here, you will have a miscdevice named "/dev/hpet/". Each |
| 305 | open selects one of the timers supported by the HPET. The timers are |
| 306 | non-periodic and/or periodic. |
| 307 | |
| 308 | config HPET_MMAP |
| 309 | bool "Allow mmap of HPET" |
| 310 | default y |
| 311 | depends on HPET |
| 312 | help |
| 313 | If you say Y here, user applications will be able to mmap |
| 314 | the HPET registers. |
| 315 | |
| 316 | config HPET_MMAP_DEFAULT |
| 317 | bool "Enable HPET MMAP access by default" |
| 318 | default y |
| 319 | depends on HPET_MMAP |
| 320 | help |
| 321 | In some hardware implementations, the page containing HPET |
| 322 | registers may also contain other things that shouldn't be |
| 323 | exposed to the user. This option selects the default (if |
| 324 | kernel parameter hpet_mmap is not set) user access to the |
| 325 | registers for applications that require it. |
| 326 | |
| 327 | config HANGCHECK_TIMER |
| 328 | tristate "Hangcheck timer" |
| 329 | depends on X86 || PPC64 || S390 |
| 330 | help |
| 331 | The hangcheck-timer module detects when the system has gone |
| 332 | out to lunch past a certain margin. It can reboot the system |
| 333 | or merely print a warning. |
| 334 | |
| 335 | config UV_MMTIMER |
| 336 | tristate "UV_MMTIMER Memory mapped RTC for SGI UV" |
| 337 | depends on X86_UV |
| 338 | default m |
| 339 | help |
| 340 | The uv_mmtimer device allows direct userspace access to the |
| 341 | UV system timer. |
| 342 | |
| 343 | source "drivers/char/tpm/Kconfig" |
| 344 | |
| 345 | config TELCLOCK |
| 346 | tristate "Telecom clock driver for ATCA SBC" |
| 347 | depends on X86 |
| 348 | default n |
| 349 | help |
| 350 | The telecom clock device is specific to the MPCBL0010 and MPCBL0050 |
| 351 | ATCA computers and allows direct userspace access to the |
| 352 | configuration of the telecom clock configuration settings. This |
| 353 | device is used for hardware synchronization across the ATCA backplane |
| 354 | fabric. Upon loading, the driver exports a sysfs directory, |
| 355 | /sys/devices/faux/telco_clock, with a number of files for |
| 356 | controlling the behavior of this hardware. |
| 357 | |
| 358 | source "drivers/s390/char/Kconfig" |
| 359 | |
| 360 | source "drivers/char/xillybus/Kconfig" |
| 361 | |
| 362 | config ADI |
| 363 | tristate "SPARC Privileged ADI driver" |
| 364 | depends on SPARC64 |
| 365 | default m |
| 366 | help |
| 367 | SPARC M7 and newer processors utilize ADI (Application Data |
| 368 | Integrity) to version and protect memory. This driver provides |
| 369 | read/write access to the ADI versions for privileged processes. |
| 370 | This feature is also known as MCD (Memory Corruption Detection) |
| 371 | and SSM (Silicon Secured Memory). Intended consumers of this |
| 372 | driver include crash and makedumpfile. |
| 373 | |
| 374 | endmenu |