xref: /linux/drivers/input/serio/Kconfig (revision 59e6295fac26b8e85c1ea859cdd89fa1e47519d7)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Input core configuration
4#
5config SERIO
6	tristate "Serial I/O support"
7	default y
8	help
9	  Say Yes here if you have any input device that uses serial I/O to
10	  communicate with the system. This includes the
11	  		* standard AT keyboard and PS/2 mouse *
12	  as well as serial mice, Sun keyboards, some joysticks and 6dof
13	  devices and more.
14
15	  If unsure, say Y.
16
17	  To compile this driver as a module, choose M here: the
18	  module will be called serio.
19
20config ARCH_MIGHT_HAVE_PC_SERIO
21	bool
22	help
23	  Select this config option from the architecture Kconfig if
24	  the architecture might use a PC serio device (i8042) to
25	  communicate with keyboard, mouse, etc.
26
27if SERIO
28
29config SERIO_I8042
30	tristate "i8042 PC Keyboard controller"
31	default y
32	depends on ARCH_MIGHT_HAVE_PC_SERIO
33	help
34	  i8042 is the chip over which the standard AT keyboard and PS/2
35	  mouse are connected to the computer. If you use these devices,
36	  you'll need to say Y here.
37
38	  If unsure, say Y.
39
40	  To compile this driver as a module, choose M here: the
41	  module will be called i8042.
42
43config SERIO_SERPORT
44	tristate "Serial port line discipline"
45	default y
46	depends on TTY
47	help
48	  Say Y here if you plan to use an input device (mouse, joystick,
49	  tablet, 6dof) that communicates over the RS232 serial (COM) port.
50
51	  More information is available: <file:Documentation/input/input.rst>
52
53	  If unsure, say Y.
54
55	  To compile this driver as a module, choose M here: the
56	  module will be called serport.
57
58config SERIO_Q40KBD
59	tristate "Q40 keyboard controller"
60	depends on Q40
61
62config SERIO_PARKBD
63	tristate "Parallel port keyboard adapter"
64	depends on PARPORT
65	help
66	  Say Y here if you built a simple parallel port adapter to attach
67	  an additional AT keyboard, XT keyboard or PS/2 mouse.
68
69	  More information is available: <file:Documentation/input/input.rst>
70
71	  If unsure, say N.
72
73	  To compile this driver as a module, choose M here: the
74	  module will be called parkbd.
75
76config SERIO_RPCKBD
77	tristate "Acorn RiscPC keyboard controller"
78	depends on ARCH_ACORN
79	default y
80	help
81	  Say Y here if you have the Acorn RiscPC and want to use an AT
82	  keyboard connected to its keyboard controller.
83
84	  To compile this driver as a module, choose M here: the
85	  module will be called rpckbd.
86
87config SERIO_AMBAKMI
88	tristate "AMBA KMI keyboard controller"
89	depends on ARM_AMBA
90
91config SERIO_SA1111
92	tristate "Intel SA1111 keyboard controller"
93	depends on SA1111
94
95config SERIO_GSCPS2
96	tristate "HP GSC PS/2 keyboard and PS/2 mouse controller"
97	depends on GSC
98	default y
99	help
100	  This driver provides support for the PS/2 ports on PA-RISC machines
101	  over which HP PS/2 keyboards and PS/2 mice may be connected.
102	  If you use these devices, you'll need to say Y here.
103
104	  It's safe to enable this driver, so if unsure, say Y.
105
106	  To compile this driver as a module, choose M here: the
107	  module will be called gscps2.
108
109config SERIO_GSCPS2_RDI_KEYCODES
110	bool "Use PrecisionBook keyboard scancodes"
111	depends on SERIO_GSCPS2
112	default n
113	help
114	  If you have an RDI PrecisionBook, say Y here if you want to use its
115	  built-in keyboard (as opposed to an external keyboard).
116
117	  The PrecisionBook has five keys that conflict with those used by most
118	  AT and PS/2 keyboards. These are as follows:
119
120	    PrecisionBook    Standard AT or PS/2
121
122	    F1               F12
123	    Left Ctrl        Left Alt
124	    Caps Lock        Left Ctrl
125	    Right Ctrl       Caps Lock
126	    Left             102nd key (the key to the right of Left Shift)
127
128	  If you say N here, and use the PrecisionBook keyboard, then each key
129	  in the left-hand column will be interpreted as the corresponding key
130	  in the right-hand column.
131
132	  If you say Y here, and use an external keyboard, then each key in the
133	  right-hand column will be interpreted as the key shown in the
134	  left-hand column.
135
136config HP_SDC
137	tristate "HP System Device Controller i8042 Support"
138	depends on (GSC || HP300) && SERIO
139	default y
140	help
141	  This option enables support for the "System Device
142	  Controller", an i8042 carrying microcode to manage a
143	  few miscellaneous devices on some Hewlett Packard systems.
144	  The SDC itself contains a 10ms resolution timer/clock capable
145	  of delivering interrupts on a periodic and one-shot basis.
146	  The SDC may also be connected to a battery-backed real-time
147	  clock, a basic audio waveform generator, and an HP-HIL Master
148	  Link Controller serving up to seven input devices.
149
150	  By itself this option is rather useless, but enabling it will
151	  enable selection of drivers for the abovementioned devices.
152	  It is, however, incompatible with the old, reliable HIL keyboard
153	  driver, and the new HIL driver is experimental, so if you plan
154	  to use a HIL keyboard as your primary keyboard, you may wish
155	  to keep using that driver until the new HIL drivers have had
156	  more testing.
157
158config HIL_MLC
159	tristate "HIL MLC Support (needed for HIL input devices)"
160	depends on HP_SDC
161
162config SERIO_PCIPS2
163	tristate "PCI PS/2 keyboard and PS/2 mouse controller"
164	depends on PCI
165	depends on HAS_IOPORT
166	help
167	  Say Y here if you have a Mobility Docking station with PS/2
168	  keyboard and mice ports.
169
170	  To compile this driver as a module, choose M here: the
171	  module will be called pcips2.
172
173config SERIO_MACEPS2
174	tristate "SGI O2 MACE PS/2 controller"
175	depends on SGI_IP32
176	help
177	  Say Y here if you have SGI O2 workstation and want to use its
178	  PS/2 ports.
179
180	  To compile this driver as a module, choose M here: the
181	  module will be called maceps2.
182
183config SERIO_SGI_IOC3
184	tristate "SGI IOC3 PS/2 controller"
185	depends on SGI_MFD_IOC3
186	help
187	  Say Y here if you have an SGI Onyx2, SGI Octane or IOC3 PCI card
188	  and you want to attach and use a keyboard, mouse, or both.
189
190	  To compile this driver as a module, choose M here: the
191	  module will be called ioc3kbd.
192
193config SERIO_LIBPS2
194	tristate "PS/2 driver library"
195	depends on SERIO_I8042 || SERIO_I8042=n
196	help
197	  Say Y here if you are using a driver for device connected
198	  to a PS/2 port, such as PS/2 mouse or standard AT keyboard.
199
200	  To compile this driver as a module, choose M here: the
201	  module will be called libps2.
202
203config SERIO_RAW
204	tristate "Raw access to serio ports"
205	help
206	  Say Y here if you want to have raw access to serio ports, such as
207	  AUX ports on i8042 keyboard controller. Each serio port that is
208	  bound to this driver will be accessible via a char device with
209	  major 10 and dynamically allocated minor. The driver will try
210	  allocating minor 1 (that historically corresponds to /dev/psaux)
211	  first. To bind this driver to a serio port use sysfs interface:
212
213	      echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl
214
215	  To compile this driver as a module, choose M here: the
216	  module will be called serio_raw.
217
218config SERIO_ALTERA_PS2
219	tristate "Altera UP PS/2 controller"
220	depends on HAS_IOMEM
221	help
222	  Say Y here if you have Altera University Program PS/2 ports.
223
224	  To compile this driver as a module, choose M here: the
225	  module will be called altera_ps2.
226
227config SERIO_AMS_DELTA
228	tristate "Amstrad Delta (E3) mailboard support"
229	depends on MACH_AMS_DELTA
230	default y
231	help
232	  Say Y here if you have an E3 and want to use its mailboard,
233	  or any standard AT keyboard connected to the mailboard port.
234
235	  When used for the E3 mailboard, a non-standard key table
236	  must be loaded from userspace, possibly using udev extras
237	  provided keymap helper utility.
238
239	  To compile this driver as a module, choose M here;
240	  the module will be called ams_delta_serio.
241
242config SERIO_PS2MULT
243	tristate "TQC PS/2 multiplexer"
244	help
245	  Say Y here if you have the PS/2 line multiplexer like the one
246	  present on TQC boards.
247
248	  To compile this driver as a module, choose M here: the
249	  module will be called ps2mult.
250
251config SERIO_ARC_PS2
252	tristate "ARC PS/2 support"
253	depends on HAS_IOMEM
254	help
255	  Say Y here if you have an ARC FPGA platform with a PS/2
256	  controller in it.
257
258	  To compile this driver as a module, choose M here; the module
259	  will be called arc_ps2.
260
261config SERIO_APBPS2
262	tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller"
263	depends on OF && HAS_IOMEM
264	help
265	  Say Y here if you want support for GRLIB APBPS2 peripherals used
266	  to connect to PS/2 keyboard and/or mouse.
267
268	  To compile this driver as a module, choose M here: the module will
269	  be called apbps2.
270
271config SERIO_OLPC_APSP
272	tristate "OLPC AP-SP input support"
273	depends on ARCH_MMP || COMPILE_TEST
274	help
275	  Say Y here if you want support for the keyboard and touchpad included
276	  in the OLPC XO-1.75 and XO-4 laptops.
277
278	  To compile this driver as a module, choose M here: the module will
279	  be called olpc_apsp.
280
281config HYPERV_KEYBOARD
282	tristate "Microsoft Synthetic Keyboard driver"
283	depends on HYPERV_VMBUS
284	default HYPERV_VMBUS
285	help
286	  Select this option to enable the Hyper-V Keyboard driver.
287
288	  To compile this driver as a module, choose M here: the module will
289	  be called hyperv_keyboard.
290
291config SERIO_SUN4I_PS2
292	tristate "Allwinner A10 PS/2 controller support"
293	depends on ARCH_SUNXI || COMPILE_TEST
294	help
295	  This selects support for the PS/2 Host Controller on
296	  Allwinner A10.
297
298	  To compile this driver as a module, choose M here: the
299	  module will be called sun4i-ps2.
300
301config SERIO_GPIO_PS2
302	tristate "GPIO PS/2 bit banging driver"
303	depends on GPIOLIB
304	help
305	  Say Y here if you want PS/2 bit banging support via GPIO.
306
307	  To compile this driver as a module, choose M here: the
308	  module will be called ps2-gpio.
309
310	  If you are unsure, say N.
311
312config USERIO
313	tristate "User space serio port driver support"
314	help
315	  Say Y here if you want to support user level drivers for serio
316	  subsystem accessible under char device 10:240 - /dev/userio. Using
317	  this facility userspace programs can implement serio ports that
318	  will be used by the standard in-kernel serio consumer drivers,
319	  such as psmouse and atkbd.
320
321	  To compile this driver as a module, choose M here: the module will be
322	  called userio.
323
324	  If you are unsure, say N.
325
326endif
327