1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Input core configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvaldsconfig SERIO 6bcd26230STom Gundersen tristate "Serial I/O support" 71da177e4SLinus Torvalds default y 8fed94549SDmitry Torokhov help 91da177e4SLinus Torvalds Say Yes here if you have any input device that uses serial I/O to 101da177e4SLinus Torvalds communicate with the system. This includes the 111da177e4SLinus Torvalds * standard AT keyboard and PS/2 mouse * 121da177e4SLinus Torvalds as well as serial mice, Sun keyboards, some joysticks and 6dof 131da177e4SLinus Torvalds devices and more. 141da177e4SLinus Torvalds 151da177e4SLinus Torvalds If unsure, say Y. 161da177e4SLinus Torvalds 171da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 181da177e4SLinus Torvalds module will be called serio. 191da177e4SLinus Torvalds 205cd3f8f8SMark Salterconfig ARCH_MIGHT_HAVE_PC_SERIO 215cd3f8f8SMark Salter bool 225cd3f8f8SMark Salter help 235cd3f8f8SMark Salter Select this config option from the architecture Kconfig if 245cd3f8f8SMark Salter the architecture might use a PC serio device (i8042) to 255cd3f8f8SMark Salter communicate with keyboard, mouse, etc. 265cd3f8f8SMark Salter 271da177e4SLinus Torvaldsif SERIO 281da177e4SLinus Torvalds 291da177e4SLinus Torvaldsconfig SERIO_I8042 30bcd26230STom Gundersen tristate "i8042 PC Keyboard controller" 311da177e4SLinus Torvalds default y 325cd3f8f8SMark Salter depends on ARCH_MIGHT_HAVE_PC_SERIO 33fed94549SDmitry Torokhov help 341da177e4SLinus Torvalds i8042 is the chip over which the standard AT keyboard and PS/2 351da177e4SLinus Torvalds mouse are connected to the computer. If you use these devices, 361da177e4SLinus Torvalds you'll need to say Y here. 371da177e4SLinus Torvalds 381da177e4SLinus Torvalds If unsure, say Y. 391da177e4SLinus Torvalds 401da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 411da177e4SLinus Torvalds module will be called i8042. 421da177e4SLinus Torvalds 431da177e4SLinus Torvaldsconfig SERIO_SERPORT 441da177e4SLinus Torvalds tristate "Serial port line discipline" 451da177e4SLinus Torvalds default y 46238d9f6eSJoe Millenbach depends on TTY 47fed94549SDmitry Torokhov help 481da177e4SLinus Torvalds Say Y here if you plan to use an input device (mouse, joystick, 491da177e4SLinus Torvalds tablet, 6dof) that communicates over the RS232 serial (COM) port. 501da177e4SLinus Torvalds 51ec15872dSMauro Carvalho Chehab More information is available: <file:Documentation/input/input.rst> 521da177e4SLinus Torvalds 531da177e4SLinus Torvalds If unsure, say Y. 541da177e4SLinus Torvalds 551da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 561da177e4SLinus Torvalds module will be called serport. 571da177e4SLinus Torvalds 581da177e4SLinus Torvaldsconfig SERIO_Q40KBD 591da177e4SLinus Torvalds tristate "Q40 keyboard controller" 601da177e4SLinus Torvalds depends on Q40 611da177e4SLinus Torvalds 621da177e4SLinus Torvaldsconfig SERIO_PARKBD 631da177e4SLinus Torvalds tristate "Parallel port keyboard adapter" 641da177e4SLinus Torvalds depends on PARPORT 65fed94549SDmitry Torokhov help 661da177e4SLinus Torvalds Say Y here if you built a simple parallel port adapter to attach 671da177e4SLinus Torvalds an additional AT keyboard, XT keyboard or PS/2 mouse. 681da177e4SLinus Torvalds 69ec15872dSMauro Carvalho Chehab More information is available: <file:Documentation/input/input.rst> 701da177e4SLinus Torvalds 711da177e4SLinus Torvalds If unsure, say N. 721da177e4SLinus Torvalds 731da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 741da177e4SLinus Torvalds module will be called parkbd. 751da177e4SLinus Torvalds 761da177e4SLinus Torvaldsconfig SERIO_RPCKBD 771da177e4SLinus Torvalds tristate "Acorn RiscPC keyboard controller" 78635f0258SRussell King depends on ARCH_ACORN 791da177e4SLinus Torvalds default y 801da177e4SLinus Torvalds help 811da177e4SLinus Torvalds Say Y here if you have the Acorn RiscPC and want to use an AT 821da177e4SLinus Torvalds keyboard connected to its keyboard controller. 831da177e4SLinus Torvalds 841da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 851da177e4SLinus Torvalds module will be called rpckbd. 861da177e4SLinus Torvalds 871da177e4SLinus Torvaldsconfig SERIO_AMBAKMI 881da177e4SLinus Torvalds tristate "AMBA KMI keyboard controller" 891da177e4SLinus Torvalds depends on ARM_AMBA 901da177e4SLinus Torvalds 911da177e4SLinus Torvaldsconfig SERIO_SA1111 921da177e4SLinus Torvalds tristate "Intel SA1111 keyboard controller" 931da177e4SLinus Torvalds depends on SA1111 941da177e4SLinus Torvalds 951da177e4SLinus Torvaldsconfig SERIO_GSCPS2 961da177e4SLinus Torvalds tristate "HP GSC PS/2 keyboard and PS/2 mouse controller" 971da177e4SLinus Torvalds depends on GSC 981da177e4SLinus Torvalds default y 991da177e4SLinus Torvalds help 1001da177e4SLinus Torvalds This driver provides support for the PS/2 ports on PA-RISC machines 1011da177e4SLinus Torvalds over which HP PS/2 keyboards and PS/2 mice may be connected. 1021da177e4SLinus Torvalds If you use these devices, you'll need to say Y here. 1031da177e4SLinus Torvalds 1041da177e4SLinus Torvalds It's safe to enable this driver, so if unsure, say Y. 1051da177e4SLinus Torvalds 1061da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 1071da177e4SLinus Torvalds module will be called gscps2. 1081da177e4SLinus Torvalds 1091da177e4SLinus Torvaldsconfig SERIO_GSCPS2_RDI_KEYCODES 1101da177e4SLinus Torvalds bool "Use PrecisionBook keyboard scancodes" 111da96d0b5SGeert Uytterhoeven depends on SERIO_GSCPS2 1121da177e4SLinus Torvalds default n 113fed94549SDmitry Torokhov help 11409509603SMatt LaPlante If you have an RDI PrecisionBook, say Y here if you want to use its 1151da177e4SLinus Torvalds built-in keyboard (as opposed to an external keyboard). 11609509603SMatt LaPlante 1171da177e4SLinus Torvalds The PrecisionBook has five keys that conflict with those used by most 1181da177e4SLinus Torvalds AT and PS/2 keyboards. These are as follows: 1191da177e4SLinus Torvalds 1201da177e4SLinus Torvalds PrecisionBook Standard AT or PS/2 1211da177e4SLinus Torvalds 1221da177e4SLinus Torvalds F1 F12 1231da177e4SLinus Torvalds Left Ctrl Left Alt 1241da177e4SLinus Torvalds Caps Lock Left Ctrl 1251da177e4SLinus Torvalds Right Ctrl Caps Lock 1261da177e4SLinus Torvalds Left 102nd key (the key to the right of Left Shift) 1271da177e4SLinus Torvalds 1281da177e4SLinus Torvalds If you say N here, and use the PrecisionBook keyboard, then each key 1291da177e4SLinus Torvalds in the left-hand column will be interpreted as the corresponding key 1301da177e4SLinus Torvalds in the right-hand column. 1311da177e4SLinus Torvalds 1321da177e4SLinus Torvalds If you say Y here, and use an external keyboard, then each key in the 1331da177e4SLinus Torvalds right-hand column will be interpreted as the key shown in the 1341da177e4SLinus Torvalds left-hand column. 1351da177e4SLinus Torvalds 1361da177e4SLinus Torvaldsconfig HP_SDC 1371da177e4SLinus Torvalds tristate "HP System Device Controller i8042 Support" 13850cd8714SNiklas Schnelle depends on (GSC || HP300) && SERIO 1391da177e4SLinus Torvalds default y 1401da177e4SLinus Torvalds help 1411da177e4SLinus Torvalds This option enables support for the "System Device 1421da177e4SLinus Torvalds Controller", an i8042 carrying microcode to manage a 1431da177e4SLinus Torvalds few miscellaneous devices on some Hewlett Packard systems. 1441da177e4SLinus Torvalds The SDC itself contains a 10ms resolution timer/clock capable 1451da177e4SLinus Torvalds of delivering interrupts on a periodic and one-shot basis. 1461da177e4SLinus Torvalds The SDC may also be connected to a battery-backed real-time 1471da177e4SLinus Torvalds clock, a basic audio waveform generator, and an HP-HIL Master 1481da177e4SLinus Torvalds Link Controller serving up to seven input devices. 1491da177e4SLinus Torvalds 1501da177e4SLinus Torvalds By itself this option is rather useless, but enabling it will 1511da177e4SLinus Torvalds enable selection of drivers for the abovementioned devices. 1521da177e4SLinus Torvalds It is, however, incompatible with the old, reliable HIL keyboard 1531da177e4SLinus Torvalds driver, and the new HIL driver is experimental, so if you plan 1541da177e4SLinus Torvalds to use a HIL keyboard as your primary keyboard, you may wish 1551da177e4SLinus Torvalds to keep using that driver until the new HIL drivers have had 156273db8f0SThomas Bogendoerfer more testing. 157273db8f0SThomas Bogendoerfer 158273db8f0SThomas Bogendoerferconfig HIL_MLC 159273db8f0SThomas Bogendoerfer tristate "HIL MLC Support (needed for HIL input devices)" 160273db8f0SThomas Bogendoerfer depends on HP_SDC 161273db8f0SThomas Bogendoerfer 162273db8f0SThomas Bogendoerferconfig SERIO_PCIPS2 163273db8f0SThomas Bogendoerfer tristate "PCI PS/2 keyboard and PS/2 mouse controller" 164273db8f0SThomas Bogendoerfer depends on PCI 165273db8f0SThomas Bogendoerfer depends on HAS_IOPORT 1661da177e4SLinus Torvalds help 167bcd26230STom Gundersen Say Y here if you have a Mobility Docking station with PS/2 168fed94549SDmitry Torokhov keyboard and mice ports. 1691da177e4SLinus Torvalds 1701da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 1711da177e4SLinus Torvalds module will be called pcips2. 1721da177e4SLinus Torvalds 1731da177e4SLinus Torvaldsconfig SERIO_MACEPS2 1741da177e4SLinus Torvalds tristate "SGI O2 MACE PS/2 controller" 1751da177e4SLinus Torvalds depends on SGI_IP32 1761da177e4SLinus Torvalds help 1771da177e4SLinus Torvalds Say Y here if you have SGI O2 workstation and want to use its 1781da177e4SLinus Torvalds PS/2 ports. 1791da177e4SLinus Torvalds 1801da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 1811da177e4SLinus Torvalds module will be called maceps2. 1821da177e4SLinus Torvalds 1831da177e4SLinus Torvaldsconfig SERIO_SGI_IOC3 1841da177e4SLinus Torvalds tristate "SGI IOC3 PS/2 controller" 1851da177e4SLinus Torvalds depends on SGI_MFD_IOC3 186bef5a66fSNeil Brown help 1871da177e4SLinus Torvalds Say Y here if you have an SGI Onyx2, SGI Octane or IOC3 PCI card 1881da177e4SLinus Torvalds and you want to attach and use a keyboard, mouse, or both. 1891da177e4SLinus Torvalds 1901da177e4SLinus Torvalds To compile this driver as a module, choose M here: the 191fb5bbee0SThomas Chou module will be called ioc3kbd. 192fb5bbee0SThomas Chou 193150e5928SBen Hutchingsconfig SERIO_LIBPS2 194fb5bbee0SThomas Chou tristate "PS/2 driver library" 195fb5bbee0SThomas Chou depends on SERIO_I8042 || SERIO_I8042=n 196fb5bbee0SThomas Chou help 197fb5bbee0SThomas Chou Say Y here if you are using a driver for device connected 198fb5bbee0SThomas Chou to a PS/2 port, such as PS/2 mouse or standard AT keyboard. 199fb5bbee0SThomas Chou 20029453932SJanusz Krzysztofik To compile this driver as a module, choose M here: the 20129453932SJanusz Krzysztofik module will be called libps2. 20229453932SJanusz Krzysztofik 20329453932SJanusz Krzysztofikconfig SERIO_RAW 204a7f7f624SMasahiro Yamada tristate "Raw access to serio ports" 20529453932SJanusz Krzysztofik help 20629453932SJanusz Krzysztofik Say Y here if you want to have raw access to serio ports, such as 20729453932SJanusz Krzysztofik AUX ports on i8042 keyboard controller. Each serio port that is 20829453932SJanusz Krzysztofik bound to this driver will be accessible via a char device with 20929453932SJanusz Krzysztofik major 10 and dynamically allocated minor. The driver will try 21029453932SJanusz Krzysztofik allocating minor 1 (that historically corresponds to /dev/psaux) 21129453932SJanusz Krzysztofik first. To bind this driver to a serio port use sysfs interface: 21229453932SJanusz Krzysztofik 21329453932SJanusz Krzysztofik echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl 21429453932SJanusz Krzysztofik 215fc58d12bSDmitry Eremin-Solenikov To compile this driver as a module, choose M here: the 216fc58d12bSDmitry Eremin-Solenikov module will be called serio_raw. 217fc58d12bSDmitry Eremin-Solenikov 218fc58d12bSDmitry Eremin-Solenikovconfig SERIO_ALTERA_PS2 219de7fd0fcSMichael Witten tristate "Altera UP PS/2 controller" 220fc58d12bSDmitry Eremin-Solenikov depends on HAS_IOMEM 221fc58d12bSDmitry Eremin-Solenikov help 222fc58d12bSDmitry Eremin-Solenikov Say Y here if you have Altera University Program PS/2 ports. 223fc58d12bSDmitry Eremin-Solenikov 224e4b29009SMischa Jonker To compile this driver as a module, choose M here: the 225e4b29009SMischa Jonker module will be called altera_ps2. 226580a64bfSSebastian Ott 227e4b29009SMischa Jonkerconfig SERIO_AMS_DELTA 228e4b29009SMischa Jonker tristate "Amstrad Delta (E3) mailboard support" 229e4b29009SMischa Jonker depends on MACH_AMS_DELTA 230e4b29009SMischa Jonker default y 231e4b29009SMischa Jonker help 232e4b29009SMischa Jonker Say Y here if you have an E3 and want to use its mailboard, 233e4b29009SMischa Jonker or any standard AT keyboard connected to the mailboard port. 234b4a034daSDaniel Hellstrom 235b4a034daSDaniel Hellstrom When used for the E3 mailboard, a non-standard key table 236b2e3543bSDmitry Torokhov must be loaded from userspace, possibly using udev extras 237b4a034daSDaniel Hellstrom provided keymap helper utility. 238b4a034daSDaniel Hellstrom 239b4a034daSDaniel Hellstrom To compile this driver as a module, choose M here; 240b4a034daSDaniel Hellstrom the module will be called ams_delta_serio. 241b4a034daSDaniel Hellstrom 242b4a034daSDaniel Hellstromconfig SERIO_PS2MULT 243b4a034daSDaniel Hellstrom tristate "TQC PS/2 multiplexer" 244b56ece9aSDaniel Drake help 245b56ece9aSDaniel Drake Say Y here if you have the PS/2 line multiplexer like the one 246841cb0f3SJean Delvare present on TQC boards. 247b56ece9aSDaniel Drake 248b56ece9aSDaniel Drake To compile this driver as a module, choose M here: the 249b56ece9aSDaniel Drake module will be called ps2mult. 250b56ece9aSDaniel Drake 251b56ece9aSDaniel Drakeconfig SERIO_ARC_PS2 252b56ece9aSDaniel Drake tristate "ARC PS/2 support" 253b56ece9aSDaniel Drake depends on HAS_IOMEM 254aed06b9cSK. Y. Srinivasan help 255aed06b9cSK. Y. Srinivasan Say Y here if you have an ARC FPGA platform with a PS/2 256*94b04355SMukesh Rathor controller in it. 257*94b04355SMukesh Rathor 258aed06b9cSK. Y. Srinivasan To compile this driver as a module, choose M here; the module 259aed06b9cSK. Y. Srinivasan will be called arc_ps2. 260aed06b9cSK. Y. Srinivasan 261aed06b9cSK. Y. Srinivasanconfig SERIO_APBPS2 262aed06b9cSK. Y. Srinivasan tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller" 263aed06b9cSK. Y. Srinivasan depends on OF && HAS_IOMEM 264e443631dSVishnu Patekar help 265e443631dSVishnu Patekar Say Y here if you want support for GRLIB APBPS2 peripherals used 266e443631dSVishnu Patekar to connect to PS/2 keyboard and/or mouse. 267e443631dSVishnu Patekar 268e443631dSVishnu Patekar To compile this driver as a module, choose M here: the module will 269e443631dSVishnu Patekar be called apbps2. 270e443631dSVishnu Patekar 271e443631dSVishnu Patekarconfig SERIO_OLPC_APSP 272e443631dSVishnu Patekar tristate "OLPC AP-SP input support" 273e443631dSVishnu Patekar depends on ARCH_MMP || COMPILE_TEST 2749ee0a055SDanilo Krummrich help 2759ee0a055SDanilo Krummrich Say Y here if you want support for the keyboard and touchpad included 2769ee0a055SDanilo Krummrich in the OLPC XO-1.75 and XO-4 laptops. 2779ee0a055SDanilo Krummrich 2789ee0a055SDanilo Krummrich To compile this driver as a module, choose M here: the module will 2799ee0a055SDanilo Krummrich be called olpc_apsp. 2809ee0a055SDanilo Krummrich 2819ee0a055SDanilo Krummrichconfig HYPERV_KEYBOARD 2829ee0a055SDanilo Krummrich tristate "Microsoft Synthetic Keyboard driver" 2839ee0a055SDanilo Krummrich depends on HYPERV_VMBUS 2849ee0a055SDanilo Krummrich default HYPERV_VMBUS 2855523662eSStephen Chandler Paul help 2865523662eSStephen Chandler Paul Select this option to enable the Hyper-V Keyboard driver. 2875523662eSStephen Chandler Paul 2885523662eSStephen Chandler Paul To compile this driver as a module, choose M here: the module will 2895523662eSStephen Chandler Paul be called hyperv_keyboard. 2905523662eSStephen Chandler Paul 2915523662eSStephen Chandler Paulconfig SERIO_SUN4I_PS2 2925523662eSStephen Chandler Paul tristate "Allwinner A10 PS/2 controller support" 2935523662eSStephen Chandler Paul depends on ARCH_SUNXI || COMPILE_TEST 2945523662eSStephen Chandler Paul help 2955523662eSStephen Chandler Paul This selects support for the PS/2 Host Controller on 2965523662eSStephen Chandler Paul Allwinner A10. 2975523662eSStephen Chandler Paul 2985523662eSStephen Chandler Paul To compile this driver as a module, choose M here: the 2991da177e4SLinus Torvalds 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