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