xref: /linux/drivers/input/serio/Kconfig (revision fab183d632628381b466a41479489541ac0e29a0)
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