xref: /linux/drivers/input/serio/Kconfig (revision 92e6b06858caf79227c19a4846b47a4e700e47d4)
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_ALTERA_PS2
192	tristate "Altera UP PS/2 controller"
193	depends on HAS_IOMEM
194	help
195	  Say Y here if you have Altera University Program PS/2 ports.
196
197	  To compile this driver as a module, choose M here: the
198	  module will be called altera_ps2.
199
200config SERIO_AMS_DELTA
201	tristate "Amstrad Delta (E3) mailboard support"
202	depends on MACH_AMS_DELTA
203	default y
204	help
205	  Say Y here if you have an E3 and want to use its mailboard,
206	  or any standard AT keyboard connected to the mailboard port.
207
208	  When used for the E3 mailboard, a non-standard key table
209	  must be loaded from userspace, possibly using udev extras
210	  provided keymap helper utility.
211
212	  To compile this driver as a module, choose M here;
213	  the module will be called ams_delta_serio.
214
215config SERIO_PS2MULT
216	tristate "TQC PS/2 multiplexer"
217	help
218	  Say Y here if you have the PS/2 line multiplexer like the one
219	  present on TQC boards.
220
221	  To compile this driver as a module, choose M here: the
222	  module will be called ps2mult.
223
224config SERIO_ARC_PS2
225	tristate "ARC PS/2 support"
226	depends on HAS_IOMEM
227	help
228	  Say Y here if you have an ARC FPGA platform with a PS/2
229	  controller in it.
230
231	  To compile this driver as a module, choose M here; the module
232	  will be called arc_ps2.
233
234config SERIO_APBPS2
235	tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller"
236	depends on OF && HAS_IOMEM
237	help
238	  Say Y here if you want support for GRLIB APBPS2 peripherals used
239	  to connect to PS/2 keyboard and/or mouse.
240
241	  To compile this driver as a module, choose M here: the module will
242	  be called apbps2.
243
244config SERIO_OLPC_APSP
245	tristate "OLPC AP-SP input support"
246	depends on ARCH_MMP || COMPILE_TEST
247	help
248	  Say Y here if you want support for the keyboard and touchpad included
249	  in the OLPC XO-1.75 and XO-4 laptops.
250
251	  To compile this driver as a module, choose M here: the module will
252	  be called olpc_apsp.
253
254config HYPERV_KEYBOARD
255	tristate "Microsoft Synthetic Keyboard driver"
256	depends on HYPERV_VMBUS
257	default HYPERV_VMBUS
258	help
259	  Select this option to enable the Hyper-V Keyboard driver.
260
261	  To compile this driver as a module, choose M here: the module will
262	  be called hyperv_keyboard.
263
264config SERIO_SUN4I_PS2
265	tristate "Allwinner A10 PS/2 controller support"
266	depends on ARCH_SUNXI || COMPILE_TEST
267	help
268	  This selects support for the PS/2 Host Controller on
269	  Allwinner A10.
270
271	  To compile this driver as a module, choose M here: the
272	  module will be called sun4i-ps2.
273
274config SERIO_GPIO_PS2
275	tristate "GPIO PS/2 bit banging driver"
276	depends on GPIOLIB
277	help
278	  Say Y here if you want PS/2 bit banging support via GPIO.
279
280	  To compile this driver as a module, choose M here: the
281	  module will be called ps2-gpio.
282
283	  If you are unsure, say N.
284
285config USERIO
286	tristate "User space serio port driver support"
287	help
288	  Say Y here if you want to support user level drivers for serio
289	  subsystem accessible under char device 10:240 - /dev/userio. Using
290	  this facility userspace programs can implement serio ports that
291	  will be used by the standard in-kernel serio consumer drivers,
292	  such as psmouse and atkbd.
293
294	  To compile this driver as a module, choose M here: the module will be
295	  called userio.
296
297	  If you are unsure, say N.
298
299endif
300