162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Input core configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ciconfig SERIO
662306a36Sopenharmony_ci	tristate "Serial I/O support"
762306a36Sopenharmony_ci	default y
862306a36Sopenharmony_ci	help
962306a36Sopenharmony_ci	  Say Yes here if you have any input device that uses serial I/O to
1062306a36Sopenharmony_ci	  communicate with the system. This includes the
1162306a36Sopenharmony_ci	  		* standard AT keyboard and PS/2 mouse *
1262306a36Sopenharmony_ci	  as well as serial mice, Sun keyboards, some joysticks and 6dof
1362306a36Sopenharmony_ci	  devices and more.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	  If unsure, say Y.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1862306a36Sopenharmony_ci	  module will be called serio.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciconfig ARCH_MIGHT_HAVE_PC_SERIO
2162306a36Sopenharmony_ci	bool
2262306a36Sopenharmony_ci	help
2362306a36Sopenharmony_ci	  Select this config option from the architecture Kconfig if
2462306a36Sopenharmony_ci	  the architecture might use a PC serio device (i8042) to
2562306a36Sopenharmony_ci	  communicate with keyboard, mouse, etc.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ciif SERIO
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig SERIO_I8042
3062306a36Sopenharmony_ci	tristate "i8042 PC Keyboard controller"
3162306a36Sopenharmony_ci	default y
3262306a36Sopenharmony_ci	depends on ARCH_MIGHT_HAVE_PC_SERIO
3362306a36Sopenharmony_ci	help
3462306a36Sopenharmony_ci	  i8042 is the chip over which the standard AT keyboard and PS/2
3562306a36Sopenharmony_ci	  mouse are connected to the computer. If you use these devices,
3662306a36Sopenharmony_ci	  you'll need to say Y here.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	  If unsure, say Y.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
4162306a36Sopenharmony_ci	  module will be called i8042.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciconfig SERIO_SERPORT
4462306a36Sopenharmony_ci	tristate "Serial port line discipline"
4562306a36Sopenharmony_ci	default y
4662306a36Sopenharmony_ci	depends on TTY
4762306a36Sopenharmony_ci	help
4862306a36Sopenharmony_ci	  Say Y here if you plan to use an input device (mouse, joystick,
4962306a36Sopenharmony_ci	  tablet, 6dof) that communicates over the RS232 serial (COM) port.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  More information is available: <file:Documentation/input/input.rst>
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	  If unsure, say Y.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
5662306a36Sopenharmony_ci	  module will be called serport.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciconfig SERIO_CT82C710
5962306a36Sopenharmony_ci	tristate "ct82c710 Aux port controller"
6062306a36Sopenharmony_ci	depends on X86
6162306a36Sopenharmony_ci	help
6262306a36Sopenharmony_ci	  Say Y here if you have a Texas Instruments TravelMate notebook
6362306a36Sopenharmony_ci	  equipped with the ct82c710 chip and want to use a mouse connected
6462306a36Sopenharmony_ci	  to the "QuickPort".
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	  If unsure, say N.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
6962306a36Sopenharmony_ci	  module will be called ct82c710.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig SERIO_Q40KBD
7262306a36Sopenharmony_ci	tristate "Q40 keyboard controller"
7362306a36Sopenharmony_ci	depends on Q40
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig SERIO_PARKBD
7662306a36Sopenharmony_ci	tristate "Parallel port keyboard adapter"
7762306a36Sopenharmony_ci	depends on PARPORT
7862306a36Sopenharmony_ci	help
7962306a36Sopenharmony_ci	  Say Y here if you built a simple parallel port adapter to attach
8062306a36Sopenharmony_ci	  an additional AT keyboard, XT keyboard or PS/2 mouse.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	  More information is available: <file:Documentation/input/input.rst>
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	  If unsure, say N.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
8762306a36Sopenharmony_ci	  module will be called parkbd.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciconfig SERIO_RPCKBD
9062306a36Sopenharmony_ci	tristate "Acorn RiscPC keyboard controller"
9162306a36Sopenharmony_ci	depends on ARCH_ACORN
9262306a36Sopenharmony_ci	default y
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  Say Y here if you have the Acorn RiscPC and want to use an AT
9562306a36Sopenharmony_ci	  keyboard connected to its keyboard controller.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
9862306a36Sopenharmony_ci	  module will be called rpckbd.
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciconfig SERIO_AMBAKMI
10162306a36Sopenharmony_ci	tristate "AMBA KMI keyboard controller"
10262306a36Sopenharmony_ci	depends on ARM_AMBA
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig SERIO_SA1111
10562306a36Sopenharmony_ci	tristate "Intel SA1111 keyboard controller"
10662306a36Sopenharmony_ci	depends on SA1111
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ciconfig SERIO_GSCPS2
10962306a36Sopenharmony_ci	tristate "HP GSC PS/2 keyboard and PS/2 mouse controller"
11062306a36Sopenharmony_ci	depends on GSC
11162306a36Sopenharmony_ci	default y
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  This driver provides support for the PS/2 ports on PA-RISC machines
11462306a36Sopenharmony_ci	  over which HP PS/2 keyboards and PS/2 mice may be connected.
11562306a36Sopenharmony_ci	  If you use these devices, you'll need to say Y here.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci	  It's safe to enable this driver, so if unsure, say Y.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
12062306a36Sopenharmony_ci	  module will be called gscps2.
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciconfig HP_SDC
12362306a36Sopenharmony_ci	tristate "HP System Device Controller i8042 Support"
12462306a36Sopenharmony_ci	depends on (GSC || HP300) && SERIO
12562306a36Sopenharmony_ci	default y
12662306a36Sopenharmony_ci	help
12762306a36Sopenharmony_ci	  This option enables support for the "System Device
12862306a36Sopenharmony_ci	  Controller", an i8042 carrying microcode to manage a
12962306a36Sopenharmony_ci	  few miscellaneous devices on some Hewlett Packard systems.
13062306a36Sopenharmony_ci	  The SDC itself contains a 10ms resolution timer/clock capable
13162306a36Sopenharmony_ci	  of delivering interrupts on a periodic and one-shot basis.
13262306a36Sopenharmony_ci	  The SDC may also be connected to a battery-backed real-time
13362306a36Sopenharmony_ci	  clock, a basic audio waveform generator, and an HP-HIL Master
13462306a36Sopenharmony_ci	  Link Controller serving up to seven input devices.
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci	  By itself this option is rather useless, but enabling it will
13762306a36Sopenharmony_ci	  enable selection of drivers for the abovementioned devices.
13862306a36Sopenharmony_ci	  It is, however, incompatible with the old, reliable HIL keyboard
13962306a36Sopenharmony_ci	  driver, and the new HIL driver is experimental, so if you plan
14062306a36Sopenharmony_ci	  to use a HIL keyboard as your primary keyboard, you may wish
14162306a36Sopenharmony_ci	  to keep using that driver until the new HIL drivers have had
14262306a36Sopenharmony_ci	  more testing.
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciconfig HIL_MLC
14562306a36Sopenharmony_ci	tristate "HIL MLC Support (needed for HIL input devices)"
14662306a36Sopenharmony_ci	depends on HP_SDC
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ciconfig SERIO_PCIPS2
14962306a36Sopenharmony_ci	tristate "PCI PS/2 keyboard and PS/2 mouse controller"
15062306a36Sopenharmony_ci	depends on PCI
15162306a36Sopenharmony_ci	depends on HAS_IOPORT
15262306a36Sopenharmony_ci	help
15362306a36Sopenharmony_ci	  Say Y here if you have a Mobility Docking station with PS/2
15462306a36Sopenharmony_ci	  keyboard and mice ports.
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
15762306a36Sopenharmony_ci	  module will be called pcips2.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ciconfig SERIO_MACEPS2
16062306a36Sopenharmony_ci	tristate "SGI O2 MACE PS/2 controller"
16162306a36Sopenharmony_ci	depends on SGI_IP32
16262306a36Sopenharmony_ci	help
16362306a36Sopenharmony_ci	  Say Y here if you have SGI O2 workstation and want to use its
16462306a36Sopenharmony_ci	  PS/2 ports.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
16762306a36Sopenharmony_ci	  module will be called maceps2.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciconfig SERIO_SGI_IOC3
17062306a36Sopenharmony_ci	tristate "SGI IOC3 PS/2 controller"
17162306a36Sopenharmony_ci	depends on SGI_MFD_IOC3
17262306a36Sopenharmony_ci	help
17362306a36Sopenharmony_ci	  Say Y here if you have an SGI Onyx2, SGI Octane or IOC3 PCI card
17462306a36Sopenharmony_ci	  and you want to attach and use a keyboard, mouse, or both.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
17762306a36Sopenharmony_ci	  module will be called ioc3kbd.
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ciconfig SERIO_LIBPS2
18062306a36Sopenharmony_ci	tristate "PS/2 driver library"
18162306a36Sopenharmony_ci	depends on SERIO_I8042 || SERIO_I8042=n
18262306a36Sopenharmony_ci	help
18362306a36Sopenharmony_ci	  Say Y here if you are using a driver for device connected
18462306a36Sopenharmony_ci	  to a PS/2 port, such as PS/2 mouse or standard AT keyboard.
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
18762306a36Sopenharmony_ci	  module will be called libps2.
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ciconfig SERIO_RAW
19062306a36Sopenharmony_ci	tristate "Raw access to serio ports"
19162306a36Sopenharmony_ci	help
19262306a36Sopenharmony_ci	  Say Y here if you want to have raw access to serio ports, such as
19362306a36Sopenharmony_ci	  AUX ports on i8042 keyboard controller. Each serio port that is
19462306a36Sopenharmony_ci	  bound to this driver will be accessible via a char device with
19562306a36Sopenharmony_ci	  major 10 and dynamically allocated minor. The driver will try
19662306a36Sopenharmony_ci	  allocating minor 1 (that historically corresponds to /dev/psaux)
19762306a36Sopenharmony_ci	  first. To bind this driver to a serio port use sysfs interface:
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci	      echo -n "serio_raw" > /sys/bus/serio/devices/serioX/drvctl
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
20262306a36Sopenharmony_ci	  module will be called serio_raw.
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ciconfig SERIO_XILINX_XPS_PS2
20562306a36Sopenharmony_ci	tristate "Xilinx XPS PS/2 Controller Support"
20662306a36Sopenharmony_ci	depends on PPC || MICROBLAZE
20762306a36Sopenharmony_ci	help
20862306a36Sopenharmony_ci	  This driver supports XPS PS/2 IP from the Xilinx EDK on
20962306a36Sopenharmony_ci	  PowerPC platform.
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
21262306a36Sopenharmony_ci	  module will be called xilinx_ps2.
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ciconfig SERIO_ALTERA_PS2
21562306a36Sopenharmony_ci	tristate "Altera UP PS/2 controller"
21662306a36Sopenharmony_ci	depends on HAS_IOMEM
21762306a36Sopenharmony_ci	help
21862306a36Sopenharmony_ci	  Say Y here if you have Altera University Program PS/2 ports.
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
22162306a36Sopenharmony_ci	  module will be called altera_ps2.
22262306a36Sopenharmony_ci
22362306a36Sopenharmony_ciconfig SERIO_AMS_DELTA
22462306a36Sopenharmony_ci	tristate "Amstrad Delta (E3) mailboard support"
22562306a36Sopenharmony_ci	depends on MACH_AMS_DELTA
22662306a36Sopenharmony_ci	default y
22762306a36Sopenharmony_ci	help
22862306a36Sopenharmony_ci	  Say Y here if you have an E3 and want to use its mailboard,
22962306a36Sopenharmony_ci	  or any standard AT keyboard connected to the mailboard port.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ci	  When used for the E3 mailboard, a non-standard key table
23262306a36Sopenharmony_ci	  must be loaded from userspace, possibly using udev extras
23362306a36Sopenharmony_ci	  provided keymap helper utility.
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here;
23662306a36Sopenharmony_ci	  the module will be called ams_delta_serio.
23762306a36Sopenharmony_ci
23862306a36Sopenharmony_ciconfig SERIO_PS2MULT
23962306a36Sopenharmony_ci	tristate "TQC PS/2 multiplexer"
24062306a36Sopenharmony_ci	help
24162306a36Sopenharmony_ci	  Say Y here if you have the PS/2 line multiplexer like the one
24262306a36Sopenharmony_ci	  present on TQC boards.
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
24562306a36Sopenharmony_ci	  module will be called ps2mult.
24662306a36Sopenharmony_ci
24762306a36Sopenharmony_ciconfig SERIO_ARC_PS2
24862306a36Sopenharmony_ci	tristate "ARC PS/2 support"
24962306a36Sopenharmony_ci	depends on HAS_IOMEM
25062306a36Sopenharmony_ci	help
25162306a36Sopenharmony_ci	  Say Y here if you have an ARC FPGA platform with a PS/2
25262306a36Sopenharmony_ci	  controller in it.
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here; the module
25562306a36Sopenharmony_ci	  will be called arc_ps2.
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ciconfig SERIO_APBPS2
25862306a36Sopenharmony_ci	tristate "GRLIB APBPS2 PS/2 keyboard/mouse controller"
25962306a36Sopenharmony_ci	depends on OF && HAS_IOMEM
26062306a36Sopenharmony_ci	help
26162306a36Sopenharmony_ci	  Say Y here if you want support for GRLIB APBPS2 peripherals used
26262306a36Sopenharmony_ci	  to connect to PS/2 keyboard and/or mouse.
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
26562306a36Sopenharmony_ci	  be called apbps2.
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ciconfig SERIO_OLPC_APSP
26862306a36Sopenharmony_ci	tristate "OLPC AP-SP input support"
26962306a36Sopenharmony_ci	depends on ARCH_MMP || COMPILE_TEST
27062306a36Sopenharmony_ci	help
27162306a36Sopenharmony_ci	  Say Y here if you want support for the keyboard and touchpad included
27262306a36Sopenharmony_ci	  in the OLPC XO-1.75 and XO-4 laptops.
27362306a36Sopenharmony_ci
27462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
27562306a36Sopenharmony_ci	  be called olpc_apsp.
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ciconfig HYPERV_KEYBOARD
27862306a36Sopenharmony_ci	tristate "Microsoft Synthetic Keyboard driver"
27962306a36Sopenharmony_ci	depends on HYPERV
28062306a36Sopenharmony_ci	default HYPERV
28162306a36Sopenharmony_ci	help
28262306a36Sopenharmony_ci	  Select this option to enable the Hyper-V Keyboard driver.
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will
28562306a36Sopenharmony_ci	  be called hyperv_keyboard.
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ciconfig SERIO_SUN4I_PS2
28862306a36Sopenharmony_ci	tristate "Allwinner A10 PS/2 controller support"
28962306a36Sopenharmony_ci	depends on ARCH_SUNXI || COMPILE_TEST
29062306a36Sopenharmony_ci	help
29162306a36Sopenharmony_ci	  This selects support for the PS/2 Host Controller on
29262306a36Sopenharmony_ci	  Allwinner A10.
29362306a36Sopenharmony_ci
29462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
29562306a36Sopenharmony_ci	  module will be called sun4i-ps2.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ciconfig SERIO_GPIO_PS2
29862306a36Sopenharmony_ci	tristate "GPIO PS/2 bit banging driver"
29962306a36Sopenharmony_ci	depends on GPIOLIB
30062306a36Sopenharmony_ci	help
30162306a36Sopenharmony_ci	  Say Y here if you want PS/2 bit banging support via GPIO.
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
30462306a36Sopenharmony_ci	  module will be called ps2-gpio.
30562306a36Sopenharmony_ci
30662306a36Sopenharmony_ci	  If you are unsure, say N.
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ciconfig USERIO
30962306a36Sopenharmony_ci	tristate "User space serio port driver support"
31062306a36Sopenharmony_ci	help
31162306a36Sopenharmony_ci	  Say Y here if you want to support user level drivers for serio
31262306a36Sopenharmony_ci	  subsystem accessible under char device 10:240 - /dev/userio. Using
31362306a36Sopenharmony_ci	  this facility userspace programs can implement serio ports that
31462306a36Sopenharmony_ci	  will be used by the standard in-kernel serio consumer drivers,
31562306a36Sopenharmony_ci	  such as psmouse and atkbd.
31662306a36Sopenharmony_ci
31762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module will be
31862306a36Sopenharmony_ci	  called userio.
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ci	  If you are unsure, say N.
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ciendif
323