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	depends on HAS_IOPORT
152	help
153	  Say Y here if you have a Mobility Docking station with PS/2
154	  keyboard and mice ports.
155
156	  To compile this driver as a module, choose M here: the
157	  module will be called pcips2.
158
159config SERIO_MACEPS2
160	tristate "SGI O2 MACE PS/2 controller"
161	depends on SGI_IP32
162	help
163	  Say Y here if you have SGI O2 workstation and want to use its
164	  PS/2 ports.
165
166	  To compile this driver as a module, choose M here: the
167	  module will be called maceps2.
168
169config SERIO_SGI_IOC3
170	tristate "SGI IOC3 PS/2 controller"
171	depends on SGI_MFD_IOC3
172	help
173	  Say Y here if you have an SGI Onyx2, SGI Octane or IOC3 PCI card
174	  and you want to attach and use a keyboard, mouse, or both.
175
176	  To compile this driver as a module, choose M here: the
177	  module will be called ioc3kbd.
178
179config SERIO_LIBPS2
180	tristate "PS/2 driver library"
181	depends on SERIO_I8042 || SERIO_I8042=n
182	help
183	  Say Y here if you are using a driver for device connected
184	  to a PS/2 port, such as PS/2 mouse or standard AT keyboard.
185
186	  To compile this driver as a module, choose M here: the
187	  module will be called libps2.
188
189config SERIO_RAW
190	tristate "Raw access to serio ports"
191	help
192	  Say Y here if you want to have raw access to serio ports, such as
193	  AUX ports on i8042 keyboard controller. Each serio port that is
194	  bound to this driver will be accessible via a char device with
195	  major 10 and dynamically allocated minor. The driver will try
196	  allocating minor 1 (that historically corresponds to /dev/psaux)
197	  first. To bind this driver to a serio port use sysfs interface:
198
199	      echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl
200
201	  To compile this driver as a module, choose M here: the
202	  module will be called serio_raw.
203
204config SERIO_XILINX_XPS_PS2
205	tristate "Xilinx XPS PS/2 Controller Support"
206	depends on PPC || MICROBLAZE
207	help
208	  This driver supports XPS PS/2 IP from the Xilinx EDK on
209	  PowerPC platform.
210
211	  To compile this driver as a module, choose M here: the
212	  module will be called xilinx_ps2.
213
214config SERIO_ALTERA_PS2
215	tristate "Altera UP PS/2 controller"
216	depends on HAS_IOMEM
217	help
218	  Say Y here if you have Altera University Program PS/2 ports.
219
220	  To compile this driver as a module, choose M here: the
221	  module will be called altera_ps2.
222
223config SERIO_AMS_DELTA
224	tristate "Amstrad Delta (E3) mailboard support"
225	depends on MACH_AMS_DELTA
226	default y
227	help
228	  Say Y here if you have an E3 and want to use its mailboard,
229	  or any standard AT keyboard connected to the mailboard port.
230
231	  When used for the E3 mailboard, a non-standard key table
232	  must be loaded from userspace, possibly using udev extras
233	  provided keymap helper utility.
234
235	  To compile this driver as a module, choose M here;
236	  the module will be called ams_delta_serio.
237
238config SERIO_PS2MULT
239	tristate "TQC PS/2 multiplexer"
240	help
241	  Say Y here if you have the PS/2 line multiplexer like the one
242	  present on TQC boards.
243
244	  To compile this driver as a module, choose M here: the
245	  module will be called ps2mult.
246
247config SERIO_ARC_PS2
248	tristate "ARC PS/2 support"
249	depends on HAS_IOMEM
250	help
251	  Say Y here if you have an ARC FPGA platform with a PS/2
252	  controller in it.
253
254	  To compile this driver as a module, choose M here; the module
255	  will be called arc_ps2.
256
257config SERIO_APBPS2
258	tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller"
259	depends on OF && HAS_IOMEM
260	help
261	  Say Y here if you want support for GRLIB APBPS2 peripherals used
262	  to connect to PS/2 keyboard and/or mouse.
263
264	  To compile this driver as a module, choose M here: the module will
265	  be called apbps2.
266
267config SERIO_OLPC_APSP
268	tristate "OLPC AP-SP input support"
269	depends on ARCH_MMP || COMPILE_TEST
270	help
271	  Say Y here if you want support for the keyboard and touchpad included
272	  in the OLPC XO-1.75 and XO-4 laptops.
273
274	  To compile this driver as a module, choose M here: the module will
275	  be called olpc_apsp.
276
277config HYPERV_KEYBOARD
278	tristate "Microsoft Synthetic Keyboard driver"
279	depends on HYPERV
280	default HYPERV
281	help
282	  Select this option to enable the Hyper-V Keyboard driver.
283
284	  To compile this driver as a module, choose M here: the module will
285	  be called hyperv_keyboard.
286
287config SERIO_SUN4I_PS2
288	tristate "Allwinner A10 PS/2 controller support"
289	depends on ARCH_SUNXI || COMPILE_TEST
290	help
291	  This selects support for the PS/2 Host Controller on
292	  Allwinner A10.
293
294	  To compile this driver as a module, choose M here: the
295	  module will be called sun4i-ps2.
296
297config SERIO_GPIO_PS2
298	tristate "GPIO PS/2 bit banging driver"
299	depends on GPIOLIB
300	help
301	  Say Y here if you want PS/2 bit banging support via GPIO.
302
303	  To compile this driver as a module, choose M here: the
304	  module will be called ps2-gpio.
305
306	  If you are unsure, say N.
307
308config USERIO
309	tristate "User space serio port driver support"
310	help
311	  Say Y here if you want to support user level drivers for serio
312	  subsystem accessible under char device 10:240 - /dev/userio. Using
313	  this facility userspace programs can implement serio ports that
314	  will be used by the standard in-kernel serio consumer drivers,
315	  such as psmouse and atkbd.
316
317	  To compile this driver as a module, choose M here: the module will be
318	  called userio.
319
320	  If you are unsure, say N.
321
322endif
323