1 # SPDX-License-Identifier: GPL-2.0-only
3 # Input core configuration
5 menuconfig INPUT_KEYBOARD
9 Say Y here, and a list of supported keyboards will be displayed.
10 This option doesn't affect the kernel.
17 tristate "ADC Ladder Buttons"
20 This driver implements support for buttons connected
21 to an ADC using a resistor ladder.
23 Say Y here if your device has such buttons connected to an ADC. Your
24 board-specific setup logic must also provide a configuration data
25 for mapping voltages to buttons.
27 To compile this driver as a module, choose M here: the
28 module will be called adc_keys.
30 config KEYBOARD_ADP5520
31 tristate "Keypad Support for ADP5520 PMIC"
32 depends on PMIC_ADP5520
34 This option enables support for the keypad scan matrix
35 on Analog Devices ADP5520 PMICs.
37 To compile this driver as a module, choose M here: the module will
38 be called adp5520-keys.
40 config KEYBOARD_ADP5588
41 tristate "ADP5588/87 I2C QWERTY Keypad and IO Expander"
44 Say Y here if you want to use a ADP5588/87 attached to your
47 To compile this driver as a module, choose M here: the
48 module will be called adp5588-keys.
50 config KEYBOARD_ADP5589
51 tristate "ADP5585/ADP5589 I2C QWERTY Keypad and IO Expander"
54 Say Y here if you want to use a ADP5585/ADP5589 attached to your
57 To compile this driver as a module, choose M here: the
58 module will be called adp5589-keys.
61 tristate "Amiga keyboard"
64 Say Y here if you are running Linux on any AMIGA and have a keyboard
67 To compile this driver as a module, choose M here: the
68 module will be called amikbd.
70 config KEYBOARD_APPLESPI
71 tristate "Apple SPI keyboard and trackpad"
72 depends on ACPI && EFI
74 depends on X86 || COMPILE_TEST
78 Say Y here if you are running Linux on any Apple MacBook8,1 or later,
79 or any MacBookPro13,* or MacBookPro14,*.
81 You will also need to enable appropriate SPI master controllers:
82 spi_pxa2xx_platform and spi_pxa2xx_pci for MacBook8,1, and
83 spi_pxa2xx_platform and intel_lpss_pci for the rest.
85 To compile this driver as a module, choose M here: the
86 module will be called applespi.
89 tristate "Atari keyboard"
93 Say Y here if you are running Linux on any Atari and have a keyboard
96 To compile this driver as a module, choose M here: the
97 module will be called atakbd.
100 tristate "AT keyboard"
104 select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
105 select SERIO_GSCPS2 if GSC
107 Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
108 you'll need this, unless you have a different type keyboard (USB, ADB
109 or other). This also works for AT and PS/2 keyboards connected over a
110 PS/2 to serial converter.
114 To compile this driver as a module, choose M here: the
115 module will be called atkbd.
117 config KEYBOARD_ATKBD_HP_KEYCODES
118 bool "Use HP keyboard scancodes"
119 depends on PARISC && KEYBOARD_ATKBD
122 Say Y here if you have a PA-RISC machine and want to use an AT or
123 PS/2 keyboard, and your keyboard uses keycodes that are specific to
126 Say N if you use a standard keyboard.
128 config KEYBOARD_ATKBD_RDI_KEYCODES
129 bool "Use PrecisionBook keyboard scancodes"
130 depends on KEYBOARD_ATKBD_HP_KEYCODES
133 If you have an RDI PrecisionBook, say Y here if you want to use its
134 built-in keyboard (as opposed to an external keyboard).
136 The PrecisionBook has five keys that conflict with those used by most
137 AT and PS/2 keyboards. These are as follows:
139 PrecisionBook Standard AT or PS/2
145 Left 102nd key (the key to the right of Left Shift)
147 If you say N here, and use the PrecisionBook keyboard, then each key
148 in the left-hand column will be interpreted as the corresponding key
149 in the right-hand column.
151 If you say Y here, and use an external keyboard, then each key in the
152 right-hand column will be interpreted as the key shown in the
155 config KEYBOARD_QT1050
156 tristate "Microchip AT42QT1050 Touch Sensor Chip"
160 Say Y here if you want to use Microchip AT42QT1050 QTouch
161 Sensor chip as input device.
163 To compile this driver as a module, choose M here:
164 the module will be called qt1050
166 config KEYBOARD_QT1070
167 tristate "Atmel AT42QT1070 Touch Sensor Chip"
170 Say Y here if you want to use Atmel AT42QT1070 QTouch
171 Sensor chip as input device.
173 To compile this driver as a module, choose M here:
174 the module will be called qt1070
176 config KEYBOARD_QT2160
177 tristate "Atmel AT42QT2160 Touch Sensor Chip"
180 If you say yes here you get support for Atmel AT42QT2160 Touch
181 Sensor chip as a keyboard input.
183 This driver can also be built as a module. If so, the module
184 will be called qt2160.
186 config KEYBOARD_CLPS711X
187 tristate "CLPS711X Keypad support"
188 depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
189 select INPUT_MATRIXKMAP
191 Say Y here to enable the matrix keypad on the Cirrus Logic
194 To compile this driver as a module, choose M here: the
195 module will be called clps711x-keypad.
197 config KEYBOARD_DLINK_DIR685
198 tristate "D-Link DIR-685 touchkeys support"
202 If you say yes here you get support for the D-Link DIR-685
205 To compile this driver as a module, choose M here: the
206 module will be called dlink-dir685-touchkeys.
208 config KEYBOARD_LKKBD
209 tristate "DECstation/VAXstation LK201/LK401 keyboard"
212 Say Y here if you want to use a LK201 or LK401 style serial
213 keyboard. This keyboard is also useable on PCs if you attach
214 it with the inputattach program. The connector pinout is
215 described within lkkbd.c.
217 To compile this driver as a module, choose M here: the
218 module will be called lkkbd.
220 config KEYBOARD_EP93XX
221 tristate "EP93xx Matrix Keypad support"
222 depends on ARCH_EP93XX || COMPILE_TEST
223 select INPUT_MATRIXKMAP
225 Say Y here to enable the matrix keypad on the Cirrus EP93XX.
227 To compile this driver as a module, choose M here: the
228 module will be called ep93xx_keypad.
231 tristate "GPIO Buttons"
232 depends on GPIOLIB || COMPILE_TEST
234 This driver implements support for buttons connected
235 to GPIO pins of various CPUs (and some other chips).
237 Say Y here if your device has buttons connected
238 directly to such GPIO pins. Your board-specific
239 setup logic must also provide a platform device,
240 with configuration data saying which GPIOs are used.
242 To compile this driver as a module, choose M here: the
243 module will be called gpio_keys.
245 config KEYBOARD_GPIO_POLLED
246 tristate "Polled GPIO buttons"
249 This driver implements support for buttons connected
250 to GPIO pins that are not capable of generating interrupts.
252 Say Y here if your device has buttons connected
253 directly to such GPIO pins. Your board-specific
254 setup logic must also provide a platform device,
255 with configuration data saying which GPIOs are used.
257 To compile this driver as a module, choose M here: the
258 module will be called gpio_keys_polled.
260 config KEYBOARD_TCA6416
261 tristate "TCA6416/TCA6408A Keypad Support"
264 This driver implements basic keypad functionality
265 for keys connected through TCA6416/TCA6408A IO expanders.
267 Say Y here if your device has keys connected to
268 TCA6416/TCA6408A IO expander. Your board-specific setup logic
269 must also provide pin-mask details(of which TCA6416 pins
270 are used for keypad).
272 If enabled the entire TCA6416 device will be managed through
275 To compile this driver as a module, choose M here: the
276 module will be called tca6416_keypad.
278 config KEYBOARD_TCA8418
279 tristate "TCA8418 Keypad Support"
281 select INPUT_MATRIXKMAP
283 This driver implements basic keypad functionality
284 for keys connected through TCA8418 keypad decoder.
286 Say Y here if your device has keys connected to
287 TCA8418 keypad decoder.
289 If enabled the complete TCA8418 device will be managed through
292 To compile this driver as a module, choose M here: the
293 module will be called tca8418_keypad.
295 config KEYBOARD_MATRIX
296 tristate "GPIO driven matrix keypad support"
297 depends on GPIOLIB || COMPILE_TEST
298 select INPUT_MATRIXKMAP
300 Enable support for GPIO driven matrix keypad.
302 To compile this driver as a module, choose M here: the
303 module will be called matrix_keypad.
305 config KEYBOARD_HIL_OLD
306 tristate "HP HIL keyboard support (simple driver)"
307 depends on GSC || HP300
310 The "Human Interface Loop" is a older, 8-channel USB-like
311 controller used in several Hewlett Packard models. This driver
312 was adapted from the one written for m68k/hp300, and implements
313 support for a keyboard attached to the HIL port, but not for
314 any other types of HIL input devices like mice or tablets.
315 However, it has been thoroughly tested and is stable.
317 If you want full HIL support including support for multiple
318 keyboards, mice, and tablets, you have to enable the
319 "HP System Device Controller i8042 Support" in the input/serio
323 tristate "HP HIL keyboard/pointer support"
324 depends on GSC || HP300
330 The "Human Interface Loop" is a older, 8-channel USB-like
331 controller used in several Hewlett Packard models.
332 This driver implements support for HIL-keyboards and pointing
333 devices (mice, tablets, touchscreens) attached
334 to your machine, so normally you should say Y here.
336 config KEYBOARD_HP6XX
337 tristate "HP Jornada 6xx keyboard"
340 Say Y here if you have a HP Jornada 620/660/680/690 and want to
341 support the built-in keyboard.
343 To compile this driver as a module, choose M here: the
344 module will be called jornada680_kbd.
346 config KEYBOARD_HP7XX
347 tristate "HP Jornada 7xx keyboard"
348 depends on SA1100_JORNADA720_SSP && SA1100_SSP
350 Say Y here if you have a HP Jornada 710/720/728 and want to
351 support the built-in keyboard.
353 To compile this driver as a module, choose M here: the
354 module will be called jornada720_kbd.
356 config KEYBOARD_LM8323
357 tristate "LM8323 keypad chip"
359 depends on LEDS_CLASS
361 If you say yes here you get support for the National Semiconductor
362 LM8323 keypad controller.
364 To compile this driver as a module, choose M here: the
365 module will be called lm8323.
367 config KEYBOARD_LM8333
368 tristate "LM8333 keypad chip"
370 select INPUT_MATRIXKMAP
372 If you say yes here you get support for the National Semiconductor
373 LM8333 keypad controller.
375 To compile this driver as a module, choose M here: the
376 module will be called lm8333.
378 config KEYBOARD_LOCOMO
379 tristate "LoCoMo Keyboard Support"
380 depends on SHARP_LOCOMO
382 Say Y here if you are running Linux on a Sharp Zaurus Collie or Poodle based PDA
384 To compile this driver as a module, choose M here: the
385 module will be called locomokbd.
387 config KEYBOARD_LPC32XX
388 tristate "LPC32XX matrix key scanner support"
389 depends on ARCH_LPC32XX && OF
390 select INPUT_MATRIXKMAP
392 Say Y here if you want to use NXP LPC32XX SoC key scanner interface,
393 connected to a key matrix.
395 To compile this driver as a module, choose M here: the
396 module will be called lpc32xx-keys.
398 config KEYBOARD_MAPLE
399 tristate "Maple bus keyboard"
400 depends on SH_DREAMCAST && MAPLE
402 Say Y here if you have a Dreamcast console running Linux and have
403 a keyboard attached to its Maple bus.
405 To compile this driver as a module, choose M here: the
406 module will be called maple_keyb.
408 config KEYBOARD_MAX7359
409 tristate "Maxim MAX7359 Key Switch Controller"
410 select INPUT_MATRIXKMAP
413 If you say yes here you get support for the Maxim MAX7359 Key
414 Switch Controller chip. This providers microprocessors with
415 management of up to 64 key switches
417 To compile this driver as a module, choose M here: the
418 module will be called max7359_keypad.
421 tristate "MELFAS MCS Touchkey"
424 Say Y here if you have the MELFAS MCS5000/5080 touchkey controller
429 To compile this driver as a module, choose M here: the
430 module will be called mcs_touchkey.
432 config KEYBOARD_MPR121
433 tristate "Freescale MPR121 Touchkey"
436 Say Y here if you have Freescale MPR121 touchkey controller
441 To compile this driver as a module, choose M here: the
442 module will be called mpr121_touchkey.
444 config KEYBOARD_SNVS_PWRKEY
445 tristate "IMX SNVS Power Key Driver"
446 depends on ARCH_MXC || COMPILE_TEST
449 This is the snvs powerkey driver for the Freescale i.MX application
452 To compile this driver as a module, choose M here; the
453 module will be called snvs_pwrkey.
456 tristate "IMX keypad support"
458 select INPUT_MATRIXKMAP
460 Enable support for IMX keypad port.
462 To compile this driver as a module, choose M here: the
463 module will be called imx_keypad.
465 config KEYBOARD_IMX_SC_KEY
466 tristate "IMX SCU Key Driver"
469 This is the system controller key driver for NXP i.MX SoCs with
470 system controller inside.
472 To compile this driver as a module, choose M here: the
473 module will be called imx_sc_key.
475 config KEYBOARD_NEWTON
476 tristate "Newton keyboard"
479 Say Y here if you have a Newton keyboard on a serial port.
481 To compile this driver as a module, choose M here: the
482 module will be called newtonkbd.
484 config KEYBOARD_NOMADIK
485 tristate "ST-Ericsson Nomadik SKE keyboard"
486 depends on (ARCH_NOMADIK || ARCH_U8500)
487 select INPUT_MATRIXKMAP
489 Say Y here if you want to use a keypad provided on the SKE controller
490 used on the Ux500 and Nomadik platforms
492 To compile this driver as a module, choose M here: the
493 module will be called nmk-ske-keypad.
495 config KEYBOARD_NSPIRE
496 tristate "TI-NSPIRE built-in keyboard"
497 depends on ARCH_NSPIRE && OF
498 select INPUT_MATRIXKMAP
500 Say Y here if you want to use the built-in keypad on TI-NSPIRE.
502 To compile this driver as a module, choose M here: the
503 module will be called nspire-keypad.
505 config KEYBOARD_TEGRA
506 tristate "NVIDIA Tegra internal matrix keyboard controller support"
507 depends on ARCH_TEGRA && OF
508 select INPUT_MATRIXKMAP
510 Say Y here if you want to use a matrix keyboard connected directly
511 to the internal keyboard controller on Tegra SoCs.
513 To compile this driver as a module, choose M here: the
514 module will be called tegra-kbc.
516 config KEYBOARD_OPENCORES
517 tristate "OpenCores Keyboard Controller"
520 Say Y here if you want to use the OpenCores Keyboard Controller
521 http://www.opencores.org/project,keyboardcontroller
523 To compile this driver as a module, choose M here; the
524 module will be called opencores-kbd.
526 config KEYBOARD_PXA27x
527 tristate "PXA27x/PXA3xx keypad support"
528 depends on PXA27x || PXA3xx || ARCH_MMP
529 select INPUT_MATRIXKMAP
531 Enable support for PXA27x/PXA3xx keypad controller.
533 To compile this driver as a module, choose M here: the
534 module will be called pxa27x_keypad.
536 config KEYBOARD_PXA930_ROTARY
537 tristate "PXA930/PXA935 Enhanced Rotary Controller Support"
538 depends on CPU_PXA930 || CPU_PXA935
540 Enable support for PXA930/PXA935 Enhanced Rotary Controller.
542 To compile this driver as a module, choose M here: the
543 module will be called pxa930_rotary.
545 config KEYBOARD_PMIC8XXX
546 tristate "Qualcomm PMIC8XXX keypad support"
547 depends on MFD_PM8XXX
548 select INPUT_MATRIXKMAP
550 Say Y here if you want to enable the driver for the PMIC8XXX
551 keypad provided as a reference design from Qualcomm. This is intended
552 to support upto 18x8 matrix based keypad design.
554 To compile this driver as a module, choose M here: the module will
555 be called pmic8xxx-keypad.
557 config KEYBOARD_SAMSUNG
558 tristate "Samsung keypad support"
559 depends on HAS_IOMEM && HAVE_CLK
560 select INPUT_MATRIXKMAP
562 Say Y here if you want to use the keypad on your Samsung mobile
565 To compile this driver as a module, choose M here: the
566 module will be called samsung-keypad.
568 config KEYBOARD_GOLDFISH_EVENTS
569 depends on GOLDFISH || COMPILE_TEST
570 tristate "Generic Input Event device for Goldfish"
572 Say Y here to get an input event device for the Goldfish virtual
575 To compile this driver as a module, choose M here: the
576 module will be called goldfish-events.
578 config KEYBOARD_STOWAWAY
579 tristate "Stowaway keyboard"
582 Say Y here if you have a Stowaway keyboard on a serial port.
583 Stowaway compatible keyboards like Dicota Input-PDA keyboard
584 are also supported by this driver.
586 To compile this driver as a module, choose M here: the
587 module will be called stowaway.
589 config KEYBOARD_ST_KEYSCAN
590 tristate "STMicroelectronics keyscan support"
591 depends on ARCH_STI || COMPILE_TEST
592 select INPUT_MATRIXKMAP
594 Say Y here if you want to use a keypad attached to the keyscan block
595 on some STMicroelectronics SoC devices.
597 To compile this driver as a module, choose M here: the
598 module will be called st-keyscan.
600 config KEYBOARD_SUNKBD
601 tristate "Sun Type 4 and Type 5 keyboard"
604 Say Y here if you want to use a Sun Type 4 or Type 5 keyboard,
605 connected either to the Sun keyboard connector or to an serial
606 (RS-232) port via a simple adapter.
608 To compile this driver as a module, choose M here: the
609 module will be called sunkbd.
611 config KEYBOARD_SH_KEYSC
612 tristate "SuperH KEYSC keypad support"
613 depends on ARCH_SHMOBILE || COMPILE_TEST
615 Say Y here if you want to use a keypad attached to the KEYSC block
616 on SuperH processors such as sh7722 and sh7343.
618 To compile this driver as a module, choose M here: the
619 module will be called sh_keysc.
621 config KEYBOARD_STMPE
622 tristate "STMPE keypad support"
625 select INPUT_MATRIXKMAP
627 Say Y here if you want to use the keypad controller on STMPE I/O
630 To compile this driver as a module, choose M here: the module will be
633 config KEYBOARD_SUN4I_LRADC
634 tristate "Allwinner sun4i low res adc attached tablet keys support"
635 depends on ARCH_SUNXI
637 This selects support for the Allwinner low res adc attached tablet
638 keys found on Allwinner sunxi SoCs.
640 To compile this driver as a module, choose M here: the
641 module will be called sun4i-lradc-keys.
643 config KEYBOARD_DAVINCI
644 tristate "TI DaVinci Key Scan"
645 depends on ARCH_DAVINCI_DM365
647 Say Y to enable keypad module support for the TI DaVinci
650 To compile this driver as a module, choose M here: the
651 module will be called davinci_keyscan.
653 config KEYBOARD_IPAQ_MICRO
654 tristate "Buttons on Micro SoC (iPaq h3100,h3600,h3700)"
655 depends on MFD_IPAQ_MICRO
657 Say Y to enable support for the buttons attached to
658 Micro peripheral controller on iPAQ h3100/h3600/h3700
660 To compile this driver as a module, choose M here: the
661 module will be called ipaq-micro-keys.
663 config KEYBOARD_IQS62X
664 tristate "Azoteq IQS620A/621/622/624/625 keys and switches"
665 depends on MFD_IQS62X
667 Say Y here to enable key and switch support for the Azoteq IQS620A,
668 IQS621, IQS622, IQS624 and IQS625 multi-function sensors.
670 To compile this driver as a module, choose M here: the module will
671 be called iqs62x-keys.
674 tristate "TI OMAP keypad support"
675 depends on ARCH_OMAP1
676 select INPUT_MATRIXKMAP
678 Say Y here if you want to use the OMAP keypad.
680 To compile this driver as a module, choose M here: the
681 module will be called omap-keypad.
683 config KEYBOARD_OMAP4
684 tristate "TI OMAP4+ keypad support"
685 depends on OF || ARCH_OMAP2PLUS
686 select INPUT_MATRIXKMAP
688 Say Y here if you want to use the OMAP4+ keypad.
690 To compile this driver as a module, choose M here: the
691 module will be called omap4-keypad.
693 config KEYBOARD_SPEAR
694 tristate "ST SPEAR keyboard support"
695 depends on PLAT_SPEAR
696 select INPUT_MATRIXKMAP
698 Say Y here if you want to use the SPEAR keyboard.
700 To compile this driver as a module, choose M here: the
701 module will be called spear-keyboard.
703 config KEYBOARD_TC3589X
704 tristate "TC3589X Keypad support"
705 depends on MFD_TC3589X
706 select INPUT_MATRIXKMAP
708 Say Y here if you want to use the keypad controller on
709 TC35892/3 I/O expander.
711 To compile this driver as a module, choose M here: the
712 module will be called tc3589x-keypad.
714 config KEYBOARD_TM2_TOUCHKEY
715 tristate "TM2 touchkey support"
717 depends on LEDS_CLASS
719 Say Y here to enable device driver for tm2-touchkey with
720 LED control for the Exynos5433 TM2 board.
722 To compile this driver as a module, choose M here.
723 module will be called tm2-touchkey.
725 config KEYBOARD_TWL4030
726 tristate "TI TWL4030/TWL5030/TPS659x0 keypad support"
727 depends on TWL4030_CORE
728 select INPUT_MATRIXKMAP
730 Say Y here if your board use the keypad controller on
731 TWL4030 family chips. It's safe to say enable this
732 even on boards that don't use the keypad controller.
734 To compile this driver as a module, choose M here: the
735 module will be called twl4030_keypad.
737 config KEYBOARD_XTKBD
738 tristate "XT keyboard"
741 Say Y here if you want to use the old IBM PC/XT keyboard (or
742 compatible) on your system. This is only possible with a
743 parallel port keyboard adapter, you cannot connect it to the
744 keyboard port on a PC that runs Linux.
746 To compile this driver as a module, choose M here: the
747 module will be called xtkbd.
749 config KEYBOARD_CROS_EC
750 tristate "ChromeOS EC keyboard"
751 select INPUT_MATRIXKMAP
754 Say Y here to enable the matrix keyboard used by ChromeOS devices
755 and implemented on the ChromeOS EC. You must enable one bus option
756 (CROS_EC_I2C or CROS_EC_SPI) to use this.
758 To compile this driver as a module, choose M here: the
759 module will be called cros_ec_keyb.
761 config KEYBOARD_CAP11XX
762 tristate "Microchip CAP11XX based touch sensors"
766 Say Y here to enable the CAP11XX touch sensor driver.
768 To compile this driver as a module, choose M here: the
769 module will be called cap11xx.
772 tristate "Broadcom keypad driver"
773 depends on OF && HAVE_CLK
774 select INPUT_MATRIXKMAP
775 default ARCH_BCM_CYGNUS
777 Say Y here if you want to use Broadcom keypad.
779 To compile this driver as a module, choose M here: the
780 module will be called bcm-keypad.
782 config KEYBOARD_MTK_PMIC
783 tristate "MediaTek PMIC keys support"
784 depends on MFD_MT6397
786 Say Y here if you want to use the pmic keys (powerkey/homekey).
788 To compile this driver as a module, choose M here: the
789 module will be called pmic-keys.