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_CT82C710
59	tristate "ct82c710 Aux port controller"
60	depends on X86
61	help
62	  Say Y here if you have a Texas Instruments TravelMate notebook
63	  equipped with the ct82c710 chip and want to use a mouse connected
64	  to the "QuickPort".
65
66	  If unsure, say N.
67
68	  To compile this driver as a module, choose M here: the
69	  module will be called ct82c710.
70
71config SERIO_Q40KBD
72	tristate "Q40 keyboard controller"
73	depends on Q40
74
75config SERIO_PARKBD
76	tristate "Parallel port keyboard adapter"
77	depends on PARPORT
78	help
79	  Say Y here if you built a simple parallel port adapter to attach
80	  an additional AT keyboard, XT keyboard or PS/2 mouse.
81
82	  More information is available: <file:Documentation/input/input.rst>
83
84	  If unsure, say N.
85
86	  To compile this driver as a module, choose M here: the
87	  module will be called parkbd.
88
89config SERIO_RPCKBD
90	tristate "Acorn RiscPC keyboard controller"
91	depends on ARCH_ACORN
92	default y
93	help
94	  Say Y here if you have the Acorn RiscPC and want to use an AT
95	  keyboard connected to its keyboard controller.
96
97	  To compile this driver as a module, choose M here: the
98	  module will be called rpckbd.
99
100config SERIO_AMBAKMI
101	tristate "AMBA KMI keyboard controller"
102	depends on ARM_AMBA
103
104config SERIO_SA1111
105	tristate "Intel SA1111 keyboard controller"
106	depends on SA1111
107
108config SERIO_GSCPS2
109	tristate "HP GSC PS/2 keyboard and PS/2 mouse controller"
110	depends on GSC
111	default y
112	help
113	  This driver provides support for the PS/2 ports on PA-RISC machines
114	  over which HP PS/2 keyboards and PS/2 mice may be connected.
115	  If you use these devices, you'll need to say Y here.
116
117	  It's safe to enable this driver, so if unsure, say Y.
118
119	  To compile this driver as a module, choose M here: the
120	  module will be called gscps2.
121
122config HP_SDC
123	tristate "HP System Device Controller i8042 Support"
124	depends on (GSC || HP300) && SERIO
125	default y
126	help
127	  This option enables support for the "System Device
128	  Controller", an i8042 carrying microcode to manage a
129	  few miscellaneous devices on some Hewlett Packard systems.
130	  The SDC itself contains a 10ms resolution timer/clock capable
131	  of delivering interrupts on a periodic and one-shot basis.
132	  The SDC may also be connected to a battery-backed real-time
133	  clock, a basic audio waveform generator, and an HP-HIL Master
134	  Link Controller serving up to seven input devices.
135
136	  By itself this option is rather useless, but enabling it will
137	  enable selection of drivers for the abovementioned devices.
138	  It is, however, incompatible with the old, reliable HIL keyboard
139	  driver, and the new HIL driver is experimental, so if you plan
140	  to use a HIL keyboard as your primary keyboard, you may wish
141	  to keep using that driver until the new HIL drivers have had
142	  more testing.
143
144config HIL_MLC
145	tristate "HIL MLC Support (needed for HIL input devices)"
146	depends on HP_SDC
147
148config SERIO_PCIPS2
149	tristate "PCI PS/2 keyboard and PS/2 mouse controller"
150	depends on PCI
151	help
152	  Say Y here if you have a Mobility Docking station with PS/2
153	  keyboard and mice ports.
154
155	  To compile this driver as a module, choose M here: the
156	  module will be called pcips2.
157
158config SERIO_MACEPS2
159	tristate "SGI O2 MACE PS/2 controller"
160	depends on SGI_IP32
161	help
162	  Say Y here if you have SGI O2 workstation and want to use its
163	  PS/2 ports.
164
165	  To compile this driver as a module, choose M here: the
166	  module will be called maceps2.
167
168config SERIO_SGI_IOC3
169	tristate "SGI IOC3 PS/2 controller"
170	depends on SGI_MFD_IOC3
171	help
172	  Say Y here if you have an SGI Onyx2, SGI Octane or IOC3 PCI card
173	  and you want to attach and use a keyboard, mouse, or both.
174
175	  To compile this driver as a module, choose M here: the
176	  module will be called ioc3kbd.
177
178config SERIO_LIBPS2
179	tristate "PS/2 driver library"
180	depends on SERIO_I8042 || SERIO_I8042=n
181	help
182	  Say Y here if you are using a driver for device connected
183	  to a PS/2 port, such as PS/2 mouse or standard AT keyboard.
184
185	  To compile this driver as a module, choose M here: the
186	  module will be called libps2.
187
188config SERIO_RAW
189	tristate "Raw access to serio ports"
190	help
191	  Say Y here if you want to have raw access to serio ports, such as
192	  AUX ports on i8042 keyboard controller. Each serio port that is
193	  bound to this driver will be accessible via a char device with
194	  major 10 and dynamically allocated minor. The driver will try
195	  allocating minor 1 (that historically corresponds to /dev/psaux)
196	  first. To bind this driver to a serio port use sysfs interface:
197
198	      echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl
199
200	  To compile this driver as a module, choose M here: the
201	  module will be called serio_raw.
202
203config SERIO_XILINX_XPS_PS2
204	tristate "Xilinx XPS PS/2 Controller Support"
205	depends on PPC || MICROBLAZE
206	help
207	  This driver supports XPS PS/2 IP from the Xilinx EDK on
208	  PowerPC platform.
209
210	  To compile this driver as a module, choose M here: the
211	  module will be called xilinx_ps2.
212
213config SERIO_ALTERA_PS2
214	tristate "Altera UP PS/2 controller"
215	depends on HAS_IOMEM
216	help
217	  Say Y here if you have Altera University Program PS/2 ports.
218
219	  To compile this driver as a module, choose M here: the
220	  module will be called altera_ps2.
221
222config SERIO_AMS_DELTA
223	tristate "Amstrad Delta (E3) mailboard support"
224	depends on MACH_AMS_DELTA
225	default y
226	help
227	  Say Y here if you have an E3 and want to use its mailboard,
228	  or any standard AT keyboard connected to the mailboard port.
229
230	  When used for the E3 mailboard, a non-standard key table
231	  must be loaded from userspace, possibly using udev extras
232	  provided keymap helper utility.
233
234	  To compile this driver as a module, choose M here;
235	  the module will be called ams_delta_serio.
236
237config SERIO_PS2MULT
238	tristate "TQC PS/2 multiplexer"
239	help
240	  Say Y here if you have the PS/2 line multiplexer like the one
241	  present on TQC boards.
242
243	  To compile this driver as a module, choose M here: the
244	  module will be called ps2mult.
245
246config SERIO_ARC_PS2
247	tristate "ARC PS/2 support"
248	depends on HAS_IOMEM
249	help
250	  Say Y here if you have an ARC FPGA platform with a PS/2
251	  controller in it.
252
253	  To compile this driver as a module, choose M here; the module
254	  will be called arc_ps2.
255
256config SERIO_APBPS2
257	tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller"
258	depends on OF
259	help
260	  Say Y here if you want support for GRLIB APBPS2 peripherals used
261	  to connect to PS/2 keyboard and/or mouse.
262
263	  To compile this driver as a module, choose M here: the module will
264	  be called apbps2.
265
266config SERIO_OLPC_APSP
267	tristate "OLPC AP-SP input support"
268	depends on ARCH_MMP || COMPILE_TEST
269	help
270	  Say Y here if you want support for the keyboard and touchpad included
271	  in the OLPC XO-1.75 and XO-4 laptops.
272
273	  To compile this driver as a module, choose M here: the module will
274	  be called olpc_apsp.
275
276config HYPERV_KEYBOARD
277	tristate "Microsoft Synthetic Keyboard driver"
278	depends on HYPERV
279	default HYPERV
280	help
281	  Select this option to enable the Hyper-V Keyboard driver.
282
283	  To compile this driver as a module, choose M here: the module will
284	  be called hyperv_keyboard.
285
286config SERIO_SUN4I_PS2
287	tristate "Allwinner A10 PS/2 controller support"
288	depends on ARCH_SUNXI || COMPILE_TEST
289	help
290	  This selects support for the PS/2 Host Controller on
291	  Allwinner A10.
292
293	  To compile this driver as a module, choose M here: the
294	  module will be called sun4i-ps2.
295
296config SERIO_GPIO_PS2
297	tristate "GPIO PS/2 bit banging driver"
298	depends on GPIOLIB
299	help
300	  Say Y here if you want PS/2 bit banging support via GPIO.
301
302	  To compile this driver as a module, choose M here: the
303	  module will be called ps2-gpio.
304
305	  If you are unsure, say N.
306
307config USERIO
308	tristate "User space serio port driver support"
309	help
310	  Say Y here if you want to support user level drivers for serio
311	  subsystem accessible under char device 10:240 - /dev/userio. Using
312	  this facility userspace programs can implement serio ports that
313	  will be used by the standard in-kernel serio consumer drivers,
314	  such as psmouse and atkbd.
315
316	  To compile this driver as a module, choose M here: the module will be
317	  called userio.
318
319	  If you are unsure, say N.
320
321endif
322