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