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