1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Input core configuration
4 #
5 config 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 
20 config 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 
27 if SERIO
28 
29 config 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 
43 config 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 
58 config 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 
71 config SERIO_Q40KBD
72 	tristate "Q40 keyboard controller"
73 	depends on Q40
74 
75 config 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 
89 config 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 
100 config SERIO_AMBAKMI
101 	tristate "AMBA KMI keyboard controller"
102 	depends on ARM_AMBA
103 
104 config SERIO_SA1111
105 	tristate "Intel SA1111 keyboard controller"
106 	depends on SA1111
107 
108 config 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 
122 config 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 
144 config HIL_MLC
145 	tristate "HIL MLC Support (needed for HIL input devices)"
146 	depends on HP_SDC
147 
148 config 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 
158 config 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 
168 config 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 
178 config 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 
188 config 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 
203 config 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 
213 config 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 
222 config 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 
237 config 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 
246 config 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 
256 config SERIO_APBPS2
257 	tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller"
258 	depends on OF && HAS_IOMEM
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 
266 config 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 
276 config 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 
286 config 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 
296 config 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 
307 config 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 
321 endif
322