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