Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-block.git] / drivers / char / Kconfig
CommitLineData
b2441318 1# SPDX-License-Identifier: GPL-2.0
1da177e4
LT
2#
3# Character device configuration
4#
5
6menu "Character devices"
7
bdcffc5a 8source "drivers/tty/Kconfig"
13ae6645 9
73f0718e
RW
10config DEVMEM
11 bool "/dev/mem virtual device support"
12 default y
13 help
14 Say Y here if you want to support the /dev/mem device.
15 The /dev/mem device is used to access areas of physical
16 memory.
17 When in doubt, say "Y".
18
b781ecb6
AV
19config DEVKMEM
20 bool "/dev/kmem virtual device support"
06c35ef1
AB
21 # On arm64, VMALLOC_START < PAGE_OFFSET, which confuses kmem read/write
22 depends on !ARM64
b781ecb6
AV
23 help
24 Say Y here if you want to support the /dev/kmem device. The
25 /dev/kmem device is rarely used, but can be used for certain
26 kind of kernel debugging operations.
27 When in doubt, say "N".
28
1da177e4
LT
29config SGI_SNSC
30 bool "SGI Altix system controller communication support"
31 depends on (IA64_SGI_SN2 || IA64_GENERIC)
32 help
33 If you have an SGI Altix and you want to enable system
34 controller communication from user space (you want this!),
35 say Y. Otherwise, say N.
36
e1e19747
BL
37config SGI_TIOCX
38 bool "SGI TIO CX driver support"
39 depends on (IA64_SGI_SN2 || IA64_GENERIC)
40 help
41 If you have an SGI Altix and you have fpga devices attached
42 to your TIO, say Y here, otherwise say N.
43
44config SGI_MBCS
45 tristate "SGI FPGA Core Services driver support"
ae40aae9 46 depends on SGI_TIOCX
e1e19747
BL
47 help
48 If you have an SGI Altix with an attached SABrick
49 say Y or M here, otherwise say N.
50
ab4382d2 51source "drivers/tty/serial/Kconfig"
cd6484e1 52source "drivers/tty/serdev/Kconfig"
1da177e4 53
24b4b67d 54config TTY_PRINTK
b24313a8 55 tristate "TTY driver to output user messages via printk"
4f73bc4d 56 depends on EXPERT && TTY
24b4b67d
SP
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.
61
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.
66
67 If unsure, say N.
68
1da177e4
LT
69config PRINTER
70 tristate "Parallel printer support"
71 depends on PARPORT
72 ---help---
73 If you intend to attach a printer to the parallel port of your Linux
74 box (as opposed to using a serial printer; if the connector at the
75 printer has 9 or 25 holes ["female"], then it's serial), say Y.
76 Also read the Printing-HOWTO, available from
77 <http://www.tldp.org/docs.html#howto>.
78
79 It is possible to share one parallel port among several devices
80 (e.g. printer and ZIP drive) and it is safe to compile the
81 corresponding drivers into the kernel.
82
83 To compile this driver as a module, choose M here and read
5fb94e9c 84 <file:Documentation/admin-guide/parport.rst>. The module will be called lp.
1da177e4
LT
85
86 If you have several parallel ports, you can specify which ports to
87 use with the "lp" kernel command line option. (Try "man bootparam"
88 or see the documentation of your boot loader (lilo or loadlin) about
89 how to pass options to the kernel at boot time.) The syntax of the
90 "lp" command line option can be found in <file:drivers/char/lp.c>.
91
92 If you have more than 8 printers, you need to increase the LP_NO
93 macro in lp.c and the PARPORT_MAX macro in parport.h.
94
95config LP_CONSOLE
96 bool "Support for console on line printer"
97 depends on PRINTER
98 ---help---
99 If you want kernel messages to be printed out as they occur, you
100 can have a console on the printer. This option adds support for
101 doing that; to actually get it to happen you need to pass the
102 option "console=lp0" to the kernel at boot time.
103
104 If the printer is out of paper (or off, or unplugged, or too
105 busy..) the kernel will stall until the printer is ready again.
106 By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
107 can make the kernel continue when this happens,
108 but it'll lose the kernel messages.
109
110 If unsure, say N.
111
112config PPDEV
113 tristate "Support for user-space parallel port device drivers"
114 depends on PARPORT
115 ---help---
116 Saying Y to this adds support for /dev/parport device nodes. This
117 is needed for programs that want portable access to the parallel
118 port, for instance deviceid (which displays Plug-and-Play device
119 IDs).
120
121 This is the parallel port equivalent of SCSI generic support (sg).
122 It is safe to say N to this -- it is not needed for normal printing
123 or parallel port CD-ROM/disk support.
124
125 To compile this driver as a module, choose M here: the
126 module will be called ppdev.
127
128 If unsure, say N.
129
bdcffc5a 130source "drivers/tty/hvc/Kconfig"
5427bcf5 131
31610434 132config VIRTIO_CONSOLE
7721c494 133 tristate "Virtio console"
4f73bc4d 134 depends on VIRTIO && TTY
31610434 135 select HVC_DRIVER
7721c494 136 help
ecda85e7 137 Virtio console for use with hypervisors.
7721c494 138
fb08bd27
AS
139 Also serves as a general-purpose serial device for data
140 transfer between the guest and host. Character devices at
141 /dev/vportNpn will be created when corresponding ports are
142 found, where N is the device number and n is the port number
143 within that device. If specified by the host, a sysfs
144 attribute called 'name' will be populated with a name for
145 the port which can be used by udev scripts to create a
146 symlink to the device.
31610434 147
fe9e8d53
SR
148config IBM_BSR
149 tristate "IBM POWER Barrier Synchronization Register support"
150 depends on PPC_PSERIES
151 help
152 This devices exposes a hardware mechanism for fast synchronization
153 of threads across a large system which avoids bouncing a cacheline
154 between several cores on a system
155
43a1dd9b
SJS
156config POWERNV_OP_PANEL
157 tristate "IBM POWERNV Operator Panel Display support"
158 depends on PPC_POWERNV
159 default m
160 help
161 If you say Y here, a special character device node, /dev/op_panel,
162 will be created which exposes the operator panel display on IBM
163 Power Systems machines with FSPs.
164
165 If you don't require access to the operator panel display from user
166 space, say N.
167
168 If unsure, say M here to build it as a module called powernv-op-panel.
169
1da177e4
LT
170source "drivers/char/ipmi/Kconfig"
171
1da177e4
LT
172config DS1620
173 tristate "NetWinder thermometer support"
174 depends on ARCH_NETWINDER
175 help
176 Say Y here to include support for the thermal management hardware
177 found in the NetWinder. This driver allows the user to control the
178 temperature set points and to read the current temperature.
179
180 It is also possible to say M here to build it as a module (ds1620)
181 It is recommended to be used on a NetWinder, but it is not a
182 necessity.
183
184config NWBUTTON
185 tristate "NetWinder Button"
186 depends on ARCH_NETWINDER
187 ---help---
188 If you say Y here and create a character device node /dev/nwbutton
189 with major and minor numbers 10 and 158 ("man mknod"), then every
190 time the orange button is pressed a number of times, the number of
191 times the button was pressed will be written to that device.
192
193 This is most useful for applications, as yet unwritten, which
194 perform actions based on how many times the button is pressed in a
195 row.
196
197 Do not hold the button down for too long, as the driver does not
198 alter the behaviour of the hardware reset circuitry attached to the
199 button; it will still execute a hard reset if the button is held
200 down for longer than approximately five seconds.
201
202 To compile this driver as a module, choose M here: the
203 module will be called nwbutton.
204
205 Most people will answer Y to this question and "Reboot Using Button"
206 below to be able to initiate a system shutdown from the button.
207
208config NWBUTTON_REBOOT
209 bool "Reboot Using Button"
210 depends on NWBUTTON
211 help
212 If you say Y here, then you will be able to initiate a system
213 shutdown and reboot by pressing the orange button a number of times.
214 The number of presses to initiate the shutdown is two by default,
215 but this can be altered by modifying the value of NUM_PRESSES_REBOOT
216 in nwbutton.h and recompiling the driver or, if you compile the
217 driver as a module, you can specify the number of presses at load
218 time with "insmod button reboot_count=<something>".
219
220config NWFLASH
221 tristate "NetWinder flash support"
222 depends on ARCH_NETWINDER
223 ---help---
224 If you say Y here and create a character device /dev/flash with
225 major 10 and minor 160 you can manipulate the flash ROM containing
226 the NetWinder firmware. Be careful as accidentally overwriting the
227 flash contents can render your computer unbootable. On no account
228 allow random users access to this device. :-)
229
230 To compile this driver as a module, choose M here: the
231 module will be called nwflash.
232
233 If you're not sure, say N.
234
844dd05f
MB
235source "drivers/char/hw_random/Kconfig"
236
1da177e4
LT
237config NVRAM
238 tristate "/dev/nvram support"
3ba9faed 239 depends on ATARI || X86 || GENERIC_NVRAM
1da177e4
LT
240 ---help---
241 If you say Y here and create a character special file /dev/nvram
242 with major number 10 and minor number 144 using mknod ("man mknod"),
243 you get read and write access to the extra bytes of non-volatile
244 memory in the real time clock (RTC), which is contained in every PC
245 and most Ataris. The actual number of bytes varies, depending on the
246 nvram in the system, but is usually 114 (128-14 for the RTC).
247
248 This memory is conventionally called "CMOS RAM" on PCs and "NVRAM"
249 on Ataris. /dev/nvram may be used to view settings there, or to
250 change them (with some utility). It could also be used to frequently
251 save a few bits of very important data that may not be lost over
252 power-off and for which writing to disk is too insecure. Note
253 however that most NVRAM space in a PC belongs to the BIOS and you
254 should NEVER idly tamper with it. See Ralf Brown's interrupt list
255 for a guide to the use of CMOS bytes by your BIOS.
256
257 On Atari machines, /dev/nvram is always configured and does not need
258 to be selected.
259
260 To compile this driver as a module, choose M here: the
261 module will be called nvram.
262
c7500900
DB
263#
264# These legacy RTC drivers just cause too many conflicts with the generic
265# RTC framework ... let's not even try to coexist any more.
266#
267if RTC_LIB=n
268
1da177e4 269config RTC
e6d2bb2b 270 tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
5ee98ab3 271 depends on ALPHA || (MIPS && MACH_LOONGSON64)
1da177e4
LT
272 ---help---
273 If you say Y here and create a character special file /dev/rtc with
274 major number 10 and minor number 135 using mknod ("man mknod"), you
275 will get access to the real time clock (or hardware clock) built
276 into your computer.
277
278 Every PC has such a clock built in. It can be used to generate
279 signals from as low as 1Hz up to 8192Hz, and can also be used
280 as a 24 hour alarm. It reports status information via the file
281 /proc/driver/rtc and its behaviour is set by various ioctls on
282 /dev/rtc.
283
284 If you run Linux on a multiprocessor machine and said Y to
285 "Symmetric Multi Processing" above, you should say Y here to read
286 and set the RTC in an SMP compatible fashion.
287
288 If you think you have a use for such a device (such as periodic data
289 sampling), then say Y here, and read <file:Documentation/rtc.txt>
290 for details.
291
292 To compile this driver as a module, choose M here: the
293 module will be called rtc.
294
2240598c
AV
295config JS_RTC
296 tristate "Enhanced Real Time Clock Support"
297 depends on SPARC32 && PCI
298 ---help---
299 If you say Y here and create a character special file /dev/rtc with
300 major number 10 and minor number 135 using mknod ("man mknod"), you
301 will get access to the real time clock (or hardware clock) built
302 into your computer.
303
304 Every PC has such a clock built in. It can be used to generate
305 signals from as low as 1Hz up to 8192Hz, and can also be used
306 as a 24 hour alarm. It reports status information via the file
307 /proc/driver/rtc and its behaviour is set by various ioctls on
308 /dev/rtc.
309
310 If you think you have a use for such a device (such as periodic data
311 sampling), then say Y here, and read <file:Documentation/rtc.txt>
312 for details.
313
314 To compile this driver as a module, choose M here: the
315 module will be called js-rtc.
316
1da177e4
LT
317config EFI_RTC
318 bool "EFI Real Time Clock Services"
319 depends on IA64
320
c7500900
DB
321endif # RTC_LIB
322
1da177e4
LT
323config DTLK
324 tristate "Double Talk PC internal speech card support"
eeca7a36 325 depends on ISA
1da177e4
LT
326 help
327 This driver is for the DoubleTalk PC, a speech synthesizer
328 manufactured by RC Systems (<http://www.rcsys.com/>). It is also
329 called the `internal DoubleTalk'.
330
331 To compile this driver as a module, choose M here: the
332 module will be called dtlk.
333
ef141a0b
SN
334config XILINX_HWICAP
335 tristate "Xilinx HWICAP Support"
6fa612b5 336 depends on XILINX_VIRTEX || MICROBLAZE
ef141a0b
SN
337 help
338 This option enables support for Xilinx Internal Configuration
339 Access Port (ICAP) driver. The ICAP is used on Xilinx Virtex
340 FPGA platforms to partially reconfigure the FPGA at runtime.
341
342 If unsure, say N.
343
1da177e4
LT
344config R3964
345 tristate "Siemens R3964 line discipline"
4f73bc4d 346 depends on TTY
1da177e4
LT
347 ---help---
348 This driver allows synchronous communication with devices using the
349 Siemens R3964 packet protocol. Unless you are dealing with special
350 hardware like PLCs, you are unlikely to need this.
351
352 To compile this driver as a module, choose M here: the
353 module will be called n_r3964.
354
355 If unsure, say N.
356
357config APPLICOM
358 tristate "Applicom intelligent fieldbus card support"
359 depends on PCI
360 ---help---
361 This driver provides the kernel-side support for the intelligent
362 fieldbus cards made by Applicom International. More information
363 about these cards can be found on the WWW at the address
364 <http://www.applicom-int.com/>, or by email from David Woodhouse
365 <dwmw2@infradead.org>.
366
367 To compile this driver as a module, choose M here: the
368 module will be called applicom.
369
370 If unsure, say N.
371
372config SONYPI
65929215 373 tristate "Sony Vaio Programmable I/O Control Device support"
57dcf020 374 depends on X86_32 && PCI && INPUT
1da177e4
LT
375 ---help---
376 This driver enables access to the Sony Programmable I/O Control
377 Device which can be found in many (all ?) Sony Vaio laptops.
378
379 If you have one of those laptops, read
018a651a 380 <file:Documentation/laptops/sonypi.txt>, and say Y or M here.
1da177e4
LT
381
382 To compile this driver as a module, choose M here: the
383 module will be called sonypi.
384
09762516
YY
385config GPIO_TB0219
386 tristate "TANBAC TB0219 GPIO support"
bef1f402 387 depends on TANBAC_TB022X
584e1236 388 select GPIO_VR41XX
1da177e4 389
1da177e4
LT
390source "drivers/char/pcmcia/Kconfig"
391
392config MWAVE
393 tristate "ACP Modem (Mwave) support"
4f73bc4d 394 depends on X86 && TTY
1da177e4
LT
395 select SERIAL_8250
396 ---help---
397 The ACP modem (Mwave) for Linux is a WinModem. It is composed of a
398 kernel driver and a user level application. Together these components
399 support direct attachment to public switched telephone networks (PSTNs)
400 and support selected world wide countries.
401
402 This version of the ACP Modem driver supports the IBM Thinkpad 600E,
403 600, and 770 that include on board ACP modem hardware.
404
405 The modem also supports the standard communications port interface
406 (ttySx) and is compatible with the Hayes AT Command Set.
407
408 The user level application needed to use this driver can be found at
409 the IBM Linux Technology Center (LTC) web site:
410 <http://www.ibm.com/linux/ltc/>.
411
412 If you own one of the above IBM Thinkpads which has the Mwave chipset
413 in it, say Y.
414
415 To compile this driver as a module, choose M here: the
416 module will be called mwave.
417
418config SCx200_GPIO
419 tristate "NatSemi SCx200 GPIO Support"
420 depends on SCx200
7a8e2a5e 421 select NSC_GPIO
1da177e4
LT
422 help
423 Give userspace access to the GPIO pins on the National
424 Semiconductor SCx200 processors.
425
426 If compiled as a module, it will be called scx200_gpio.
427
7a8e2a5e
JC
428config PC8736x_GPIO
429 tristate "NatSemi PC8736x GPIO Support"
3369465e 430 depends on X86_32 && !UML
7a8e2a5e
JC
431 default SCx200_GPIO # mostly N
432 select NSC_GPIO # needed for support routines
433 help
434 Give userspace access to the GPIO pins on the National
435 Semiconductor PC-8736x (x=[03456]) SuperIO chip. The chip
436 has multiple functional units, inc several managed by
437 hwmon/pc87360 driver. Tested with PC-87366
438
439 If compiled as a module, it will be called pc8736x_gpio.
440
441config NSC_GPIO
442 tristate "NatSemi Base GPIO Support"
699352c3 443 depends on X86_32
7a8e2a5e
JC
444 # selected by SCx200_GPIO and PC8736x_GPIO
445 # what about 2 selectors differing: m != y
446 help
447 Common support used (and needed) by scx200_gpio and
448 pc8736x_gpio drivers. If those drivers are built as
449 modules, this one will be too, named nsc_gpio
450
1da177e4 451config RAW_DRIVER
abd4aa5a 452 tristate "RAW driver (/dev/raw/rawN)"
9361401e 453 depends on BLOCK
1da177e4 454 help
abd4aa5a
DJ
455 The raw driver permits block devices to be bound to /dev/raw/rawN.
456 Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
1da177e4
LT
457 See the raw(8) manpage for more details.
458
abd4aa5a 459 Applications should preferably open the device (eg /dev/hda1)
1da177e4
LT
460 with the O_DIRECT flag.
461
0de502aa 462config MAX_RAW_DEVS
0078bff5 463 int "Maximum number of RAW devices to support (1-65536)"
0de502aa 464 depends on RAW_DRIVER
7143479a 465 range 1 65536
0de502aa
AM
466 default "256"
467 help
468 The maximum number of RAW devices that are supported.
469 Default is 256. Increase this number in case you need lots of
470 raw devices.
471
1da177e4
LT
472config HPET
473 bool "HPET - High Precision Event Timer" if (X86 || IA64)
474 default n
475 depends on ACPI
476 help
477 If you say Y here, you will have a miscdevice named "/dev/hpet/". Each
478 open selects one of the timers supported by the HPET. The timers are
3cb2fccc 479 non-periodic and/or periodic.
1da177e4 480
1da177e4
LT
481config HPET_MMAP
482 bool "Allow mmap of HPET"
483 default y
484 depends on HPET
485 help
486 If you say Y here, user applications will be able to mmap
487 the HPET registers.
488
3d035f58
PB
489config HPET_MMAP_DEFAULT
490 bool "Enable HPET MMAP access by default"
491 default y
492 depends on HPET_MMAP
493 help
1da177e4
LT
494 In some hardware implementations, the page containing HPET
495 registers may also contain other things that shouldn't be
3d035f58
PB
496 exposed to the user. This option selects the default (if
497 kernel parameter hpet_mmap is not set) user access to the
498 registers for applications that require it.
1da177e4 499
1da177e4
LT
500config HANGCHECK_TIMER
501 tristate "Hangcheck timer"
abf3ea1b 502 depends on X86 || IA64 || PPC64 || S390
1da177e4
LT
503 help
504 The hangcheck-timer module detects when the system has gone
505 out to lunch past a certain margin. It can reboot the system
506 or merely print a warning.
507
fbd8ae10
DS
508config UV_MMTIMER
509 tristate "UV_MMTIMER Memory mapped RTC for SGI UV"
510 depends on X86_UV
511 default m
512 help
513 The uv_mmtimer device allows direct userspace access to the
514 UV system timer.
515
1da177e4
LT
516source "drivers/char/tpm/Kconfig"
517
1a80ba88 518config TELCLOCK
03154a27 519 tristate "Telecom clock driver for ATCA SBC"
65929215 520 depends on X86
1a80ba88
MG
521 default n
522 help
03154a27
MG
523 The telecom clock device is specific to the MPCBL0010 and MPCBL0050
524 ATCA computers and allows direct userspace access to the
525 configuration of the telecom clock configuration settings. This
526 device is used for hardware synchronization across the ATCA backplane
527 fabric. Upon loading, the driver exports a sysfs directory,
528 /sys/devices/platform/telco_clock, with a number of files for
529 controlling the behavior of this hardware.
1a80ba88 530
4f911d64 531config DEVPORT
f2cfa58b 532 bool "/dev/port character device"
4f911d64
RK
533 depends on ISA || PCI
534 default y
f2cfa58b
MB
535 help
536 Say Y here if you want to support the /dev/port device. The /dev/port
537 device is similar to /dev/mem, but for I/O ports.
4f911d64 538
61d48c2c
MS
539source "drivers/s390/char/Kconfig"
540
7051924f
EB
541source "drivers/char/xillybus/Kconfig"
542
873c38a4
TH
543config ADI
544 tristate "SPARC Privileged ADI driver"
545 depends on SPARC64
546 default m
547 help
548 SPARC M7 and newer processors utilize ADI (Application Data
549 Integrity) to version and protect memory. This driver provides
550 read/write access to the ADI versions for privileged processes.
551 This feature is also known as MCD (Memory Corruption Detection)
552 and SSM (Silicon Secured Memory). Intended consumers of this
553 driver include crash and makedumpfile.
554
1da177e4
LT
555endmenu
556
39a8883a
TT
557config RANDOM_TRUST_CPU
558 bool "Trust the CPU manufacturer to initialize Linux's CRNG"
559 depends on X86 || S390 || PPC
560 default n
561 help
562 Assume that CPU manufacturer (e.g., Intel or AMD for RDSEED or
563 RDRAND, IBM for the S390 and Power PC architectures) is trustworthy
564 for the purposes of initializing Linux's CRNG. Since this is not
565 something that can be independently audited, this amounts to trusting
566 that CPU manufacturer (perhaps with the insistence or mandate
567 of a Nation State's intelligence or law enforcement agencies)
568 has not installed a hidden back door to compromise the CPU's
9b254366
KC
569 random number generation facilities. This can also be configured
570 at boot with "random.trust_cpu=on/off".