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
106 select INPUT_VIVALDIFMAP
108 Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
109 you'll need this, unless you have a different type keyboard (USB, ADB
110 or other). This also works for AT and PS/2 keyboards connected over a
111 PS/2 to serial converter.
115 To compile this driver as a module, choose M here: the
116 module will be called atkbd.
118 config KEYBOARD_ATKBD_HP_KEYCODES
119 bool "Use HP keyboard scancodes"
120 depends on PARISC && KEYBOARD_ATKBD
123 Say Y here if you have a PA-RISC machine and want to use an AT or
124 PS/2 keyboard, and your keyboard uses keycodes that are specific to
127 Say N if you use a standard keyboard.
129 config KEYBOARD_ATKBD_RDI_KEYCODES
130 bool "Use PrecisionBook keyboard scancodes"
131 depends on KEYBOARD_ATKBD_HP_KEYCODES
134 If you have an RDI PrecisionBook, say Y here if you want to use its
135 built-in keyboard (as opposed to an external keyboard).
137 The PrecisionBook has five keys that conflict with those used by most
138 AT and PS/2 keyboards. These are as follows:
140 PrecisionBook Standard AT or PS/2
146 Left 102nd key (the key to the right of Left Shift)
148 If you say N here, and use the PrecisionBook keyboard, then each key
149 in the left-hand column will be interpreted as the corresponding key
150 in the right-hand column.
152 If you say Y here, and use an external keyboard, then each key in the
153 right-hand column will be interpreted as the key shown in the
156 config KEYBOARD_QT1050
157 tristate "Microchip AT42QT1050 Touch Sensor Chip"
161 Say Y here if you want to use Microchip AT42QT1050 QTouch
162 Sensor chip as input device.
164 To compile this driver as a module, choose M here:
165 the module will be called qt1050
167 config KEYBOARD_QT1070
168 tristate "Atmel AT42QT1070 Touch Sensor Chip"
171 Say Y here if you want to use Atmel AT42QT1070 QTouch
172 Sensor chip as input device.
174 To compile this driver as a module, choose M here:
175 the module will be called qt1070
177 config KEYBOARD_QT2160
178 tristate "Atmel AT42QT2160 Touch Sensor Chip"
181 If you say yes here you get support for Atmel AT42QT2160 Touch
182 Sensor chip as a keyboard input.
184 This driver can also be built as a module. If so, the module
185 will be called qt2160.
187 config KEYBOARD_CLPS711X
188 tristate "CLPS711X Keypad support"
189 depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
190 select INPUT_MATRIXKMAP
192 Say Y here to enable the matrix keypad on the Cirrus Logic
195 To compile this driver as a module, choose M here: the
196 module will be called clps711x-keypad.
198 config KEYBOARD_DLINK_DIR685
199 tristate "D-Link DIR-685 touchkeys support"
203 If you say yes here you get support for the D-Link DIR-685
206 To compile this driver as a module, choose M here: the
207 module will be called dlink-dir685-touchkeys.
209 config KEYBOARD_LKKBD
210 tristate "DECstation/VAXstation LK201/LK401 keyboard"
213 Say Y here if you want to use a LK201 or LK401 style serial
214 keyboard. This keyboard is also usable on PCs if you attach
215 it with the inputattach program. The connector pinout is
216 described within lkkbd.c.
218 To compile this driver as a module, choose M here: the
219 module will be called lkkbd.
221 config KEYBOARD_EP93XX
222 tristate "EP93xx Matrix Keypad support"
223 depends on ARCH_EP93XX || COMPILE_TEST
224 select INPUT_MATRIXKMAP
226 Say Y here to enable the matrix keypad on the Cirrus EP93XX.
228 To compile this driver as a module, choose M here: the
229 module will be called ep93xx_keypad.
232 tristate "GPIO Buttons"
233 depends on GPIOLIB || COMPILE_TEST
235 This driver implements support for buttons connected
236 to GPIO pins of various CPUs (and some other chips).
238 Say Y here if your device has buttons connected
239 directly to such GPIO pins. Your board-specific
240 setup logic must also provide a platform device,
241 with configuration data saying which GPIOs are used.
243 To compile this driver as a module, choose M here: the
244 module will be called gpio_keys.
246 config KEYBOARD_GPIO_POLLED
247 tristate "Polled GPIO buttons"
250 This driver implements support for buttons connected
251 to GPIO pins that are not capable of generating interrupts.
253 Say Y here if your device has buttons connected
254 directly to such GPIO pins. Your board-specific
255 setup logic must also provide a platform device,
256 with configuration data saying which GPIOs are used.
258 To compile this driver as a module, choose M here: the
259 module will be called gpio_keys_polled.
261 config KEYBOARD_TCA6416
262 tristate "TCA6416/TCA6408A Keypad Support"
265 This driver implements basic keypad functionality
266 for keys connected through TCA6416/TCA6408A IO expanders.
268 Say Y here if your device has keys connected to
269 TCA6416/TCA6408A IO expander. Your board-specific setup logic
270 must also provide pin-mask details(of which TCA6416 pins
271 are used for keypad).
273 If enabled the entire TCA6416 device will be managed through
276 To compile this driver as a module, choose M here: the
277 module will be called tca6416_keypad.
279 config KEYBOARD_TCA8418
280 tristate "TCA8418 Keypad Support"
282 select INPUT_MATRIXKMAP
284 This driver implements basic keypad functionality
285 for keys connected through TCA8418 keypad decoder.
287 Say Y here if your device has keys connected to
288 TCA8418 keypad decoder.
290 If enabled the complete TCA8418 device will be managed through
293 To compile this driver as a module, choose M here: the
294 module will be called tca8418_keypad.
296 config KEYBOARD_MATRIX
297 tristate "GPIO driven matrix keypad support"
298 depends on GPIOLIB || COMPILE_TEST
299 select INPUT_MATRIXKMAP
301 Enable support for GPIO driven matrix keypad.
303 To compile this driver as a module, choose M here: the
304 module will be called matrix_keypad.
306 config KEYBOARD_HIL_OLD
307 tristate "HP HIL keyboard support (simple driver)"
308 depends on GSC || HP300
311 The "Human Interface Loop" is a older, 8-channel USB-like
312 controller used in several Hewlett Packard models. This driver
313 was adapted from the one written for m68k/hp300, and implements
314 support for a keyboard attached to the HIL port, but not for
315 any other types of HIL input devices like mice or tablets.
316 However, it has been thoroughly tested and is stable.
318 If you want full HIL support including support for multiple
319 keyboards, mice, and tablets, you have to enable the
320 "HP System Device Controller i8042 Support" in the input/serio
324 tristate "HP HIL keyboard/pointer support"
325 depends on GSC || HP300
331 The "Human Interface Loop" is a older, 8-channel USB-like
332 controller used in several Hewlett Packard models.
333 This driver implements support for HIL-keyboards and pointing
334 devices (mice, tablets, touchscreens) attached
335 to your machine, so normally you should say Y here.
337 config KEYBOARD_HP6XX
338 tristate "HP Jornada 6xx keyboard"
341 Say Y here if you have a HP Jornada 620/660/680/690 and want to
342 support the built-in keyboard.
344 To compile this driver as a module, choose M here: the
345 module will be called jornada680_kbd.
347 config KEYBOARD_HP7XX
348 tristate "HP Jornada 7xx keyboard"
349 depends on SA1100_JORNADA720_SSP && SA1100_SSP
351 Say Y here if you have a HP Jornada 710/720/728 and want to
352 support the built-in keyboard.
354 To compile this driver as a module, choose M here: the
355 module will be called jornada720_kbd.
357 config KEYBOARD_LM8323
358 tristate "LM8323 keypad chip"
360 depends on LEDS_CLASS
362 If you say yes here you get support for the National Semiconductor
363 LM8323 keypad controller.
365 To compile this driver as a module, choose M here: the
366 module will be called lm8323.
368 config KEYBOARD_LM8333
369 tristate "LM8333 keypad chip"
371 select INPUT_MATRIXKMAP
373 If you say yes here you get support for the National Semiconductor
374 LM8333 keypad controller.
376 To compile this driver as a module, choose M here: the
377 module will be called lm8333.
379 config KEYBOARD_LOCOMO
380 tristate "LoCoMo Keyboard Support"
381 depends on SHARP_LOCOMO
383 Say Y here if you are running Linux on a Sharp Zaurus Collie or Poodle based PDA
385 To compile this driver as a module, choose M here: the
386 module will be called locomokbd.
388 config KEYBOARD_LPC32XX
389 tristate "LPC32XX matrix key scanner support"
390 depends on ARCH_LPC32XX && OF
391 select INPUT_MATRIXKMAP
393 Say Y here if you want to use NXP LPC32XX SoC key scanner interface,
394 connected to a key matrix.
396 To compile this driver as a module, choose M here: the
397 module will be called lpc32xx-keys.
399 config KEYBOARD_MAPLE
400 tristate "Maple bus keyboard"
401 depends on SH_DREAMCAST && MAPLE
403 Say Y here if you have a Dreamcast console running Linux and have
404 a keyboard attached to its Maple bus.
406 To compile this driver as a module, choose M here: the
407 module will be called maple_keyb.
409 config KEYBOARD_MAX7359
410 tristate "Maxim MAX7359 Key Switch Controller"
411 select INPUT_MATRIXKMAP
414 If you say yes here you get support for the Maxim MAX7359 Key
415 Switch Controller chip. This providers microprocessors with
416 management of up to 64 key switches
418 To compile this driver as a module, choose M here: the
419 module will be called max7359_keypad.
422 tristate "MELFAS MCS Touchkey"
425 Say Y here if you have the MELFAS MCS5000/5080 touchkey controller
430 To compile this driver as a module, choose M here: the
431 module will be called mcs_touchkey.
433 config KEYBOARD_MPR121
434 tristate "Freescale MPR121 Touchkey"
437 Say Y here if you have Freescale MPR121 touchkey controller
442 To compile this driver as a module, choose M here: the
443 module will be called mpr121_touchkey.
445 config KEYBOARD_SNVS_PWRKEY
446 tristate "IMX SNVS Power Key Driver"
447 depends on ARCH_MXC || (COMPILE_TEST && HAS_IOMEM)
450 This is the snvs powerkey driver for the Freescale i.MX application
453 To compile this driver as a module, choose M here; the
454 module will be called snvs_pwrkey.
457 tristate "IMX keypad support"
458 depends on ARCH_MXC || COMPILE_TEST
459 select INPUT_MATRIXKMAP
461 Enable support for IMX keypad port.
463 To compile this driver as a module, choose M here: the
464 module will be called imx_keypad.
466 config KEYBOARD_IMX_SC_KEY
467 tristate "IMX SCU Key Driver"
470 This is the system controller key driver for NXP i.MX SoCs with
471 system controller inside.
473 To compile this driver as a module, choose M here: the
474 module will be called imx_sc_key.
476 config KEYBOARD_NEWTON
477 tristate "Newton keyboard"
480 Say Y here if you have a Newton keyboard on a serial port.
482 To compile this driver as a module, choose M here: the
483 module will be called newtonkbd.
485 config KEYBOARD_NOMADIK
486 tristate "ST-Ericsson Nomadik SKE keyboard"
487 depends on (ARCH_NOMADIK || ARCH_U8500)
488 select INPUT_MATRIXKMAP
490 Say Y here if you want to use a keypad provided on the SKE controller
491 used on the Ux500 and Nomadik platforms
493 To compile this driver as a module, choose M here: the
494 module will be called nmk-ske-keypad.
496 config KEYBOARD_NSPIRE
497 tristate "TI-NSPIRE built-in keyboard"
498 depends on ARCH_NSPIRE && OF
499 select INPUT_MATRIXKMAP
501 Say Y here if you want to use the built-in keypad on TI-NSPIRE.
503 To compile this driver as a module, choose M here: the
504 module will be called nspire-keypad.
506 config KEYBOARD_TEGRA
507 tristate "NVIDIA Tegra internal matrix keyboard controller support"
508 depends on ARCH_TEGRA && OF
509 select INPUT_MATRIXKMAP
511 Say Y here if you want to use a matrix keyboard connected directly
512 to the internal keyboard controller on Tegra SoCs.
514 To compile this driver as a module, choose M here: the
515 module will be called tegra-kbc.
517 config KEYBOARD_OPENCORES
518 tristate "OpenCores Keyboard Controller"
521 Say Y here if you want to use the OpenCores Keyboard Controller
522 http://www.opencores.org/project,keyboardcontroller
524 To compile this driver as a module, choose M here; the
525 module will be called opencores-kbd.
527 config KEYBOARD_PXA27x
528 tristate "PXA27x/PXA3xx keypad support"
529 depends on PXA27x || PXA3xx || ARCH_MMP
530 select INPUT_MATRIXKMAP
532 Enable support for PXA27x/PXA3xx keypad controller.
534 To compile this driver as a module, choose M here: the
535 module will be called pxa27x_keypad.
537 config KEYBOARD_PXA930_ROTARY
538 tristate "PXA930/PXA935 Enhanced Rotary Controller Support"
539 depends on CPU_PXA930 || CPU_PXA935
541 Enable support for PXA930/PXA935 Enhanced Rotary Controller.
543 To compile this driver as a module, choose M here: the
544 module will be called pxa930_rotary.
546 config KEYBOARD_PMIC8XXX
547 tristate "Qualcomm PMIC8XXX keypad support"
548 depends on MFD_PM8XXX
549 select INPUT_MATRIXKMAP
551 Say Y here if you want to enable the driver for the PMIC8XXX
552 keypad provided as a reference design from Qualcomm. This is intended
553 to support upto 18x8 matrix based keypad design.
555 To compile this driver as a module, choose M here: the module will
556 be called pmic8xxx-keypad.
558 config KEYBOARD_SAMSUNG
559 tristate "Samsung keypad support"
560 depends on HAS_IOMEM && HAVE_CLK
561 select INPUT_MATRIXKMAP
563 Say Y here if you want to use the keypad on your Samsung mobile
566 To compile this driver as a module, choose M here: the
567 module will be called samsung-keypad.
569 config KEYBOARD_GOLDFISH_EVENTS
570 depends on GOLDFISH || COMPILE_TEST
571 tristate "Generic Input Event device for Goldfish"
573 Say Y here to get an input event device for the Goldfish virtual
576 To compile this driver as a module, choose M here: the
577 module will be called goldfish-events.
579 config KEYBOARD_STOWAWAY
580 tristate "Stowaway keyboard"
583 Say Y here if you have a Stowaway keyboard on a serial port.
584 Stowaway compatible keyboards like Dicota Input-PDA keyboard
585 are also supported by this driver.
587 To compile this driver as a module, choose M here: the
588 module will be called stowaway.
590 config KEYBOARD_ST_KEYSCAN
591 tristate "STMicroelectronics keyscan support"
592 depends on ARCH_STI || COMPILE_TEST
593 select INPUT_MATRIXKMAP
595 Say Y here if you want to use a keypad attached to the keyscan block
596 on some STMicroelectronics SoC devices.
598 To compile this driver as a module, choose M here: the
599 module will be called st-keyscan.
601 config KEYBOARD_SUNKBD
602 tristate "Sun Type 4 and Type 5 keyboard"
605 Say Y here if you want to use a Sun Type 4 or Type 5 keyboard,
606 connected either to the Sun keyboard connector or to an serial
607 (RS-232) port via a simple adapter.
609 To compile this driver as a module, choose M here: the
610 module will be called sunkbd.
612 config KEYBOARD_SH_KEYSC
613 tristate "SuperH KEYSC keypad support"
614 depends on ARCH_SHMOBILE || COMPILE_TEST
616 Say Y here if you want to use a keypad attached to the KEYSC block
617 on SuperH processors such as sh7722 and sh7343.
619 To compile this driver as a module, choose M here: the
620 module will be called sh_keysc.
622 config KEYBOARD_STMPE
623 tristate "STMPE keypad support"
626 select INPUT_MATRIXKMAP
628 Say Y here if you want to use the keypad controller on STMPE I/O
631 To compile this driver as a module, choose M here: the module will be
634 config KEYBOARD_SUN4I_LRADC
635 tristate "Allwinner sun4i low res adc attached tablet keys support"
636 depends on ARCH_SUNXI
638 This selects support for the Allwinner low res adc attached tablet
639 keys found on Allwinner sunxi SoCs.
641 To compile this driver as a module, choose M here: the
642 module will be called sun4i-lradc-keys.
644 config KEYBOARD_DAVINCI
645 tristate "TI DaVinci Key Scan"
646 depends on ARCH_DAVINCI_DM365
648 Say Y to enable keypad module support for the TI DaVinci
651 To compile this driver as a module, choose M here: the
652 module will be called davinci_keyscan.
654 config KEYBOARD_IPAQ_MICRO
655 tristate "Buttons on Micro SoC (iPaq h3100,h3600,h3700)"
656 depends on MFD_IPAQ_MICRO
658 Say Y to enable support for the buttons attached to
659 Micro peripheral controller on iPAQ h3100/h3600/h3700
661 To compile this driver as a module, choose M here: the
662 module will be called ipaq-micro-keys.
664 config KEYBOARD_IQS62X
665 tristate "Azoteq IQS620A/621/622/624/625 keys and switches"
666 depends on MFD_IQS62X
668 Say Y here to enable key and switch support for the Azoteq IQS620A,
669 IQS621, IQS622, IQS624 and IQS625 multi-function sensors.
671 To compile this driver as a module, choose M here: the module will
672 be called iqs62x-keys.
675 tristate "TI OMAP keypad support"
676 depends on ARCH_OMAP1
677 select INPUT_MATRIXKMAP
679 Say Y here if you want to use the OMAP keypad.
681 To compile this driver as a module, choose M here: the
682 module will be called omap-keypad.
684 config KEYBOARD_OMAP4
685 tristate "TI OMAP4+ keypad support"
686 depends on (OF && HAS_IOMEM) || ARCH_OMAP2PLUS
687 select INPUT_MATRIXKMAP
689 Say Y here if you want to use the OMAP4+ keypad.
691 To compile this driver as a module, choose M here: the
692 module will be called omap4-keypad.
694 config KEYBOARD_SPEAR
695 tristate "ST SPEAR keyboard support"
696 depends on PLAT_SPEAR
697 select INPUT_MATRIXKMAP
699 Say Y here if you want to use the SPEAR keyboard.
701 To compile this driver as a module, choose M here: the
702 module will be called spear-keyboard.
704 config KEYBOARD_TC3589X
705 tristate "TC3589X Keypad support"
706 depends on MFD_TC3589X
707 select INPUT_MATRIXKMAP
709 Say Y here if you want to use the keypad controller on
710 TC35892/3 I/O expander.
712 To compile this driver as a module, choose M here: the
713 module will be called tc3589x-keypad.
715 config KEYBOARD_TM2_TOUCHKEY
716 tristate "TM2 touchkey support"
718 depends on LEDS_CLASS
720 Say Y here to enable device driver for tm2-touchkey with
721 LED control for the Exynos5433 TM2 board.
723 To compile this driver as a module, choose M here.
724 module will be called tm2-touchkey.
726 config KEYBOARD_TWL4030
727 tristate "TI TWL4030/TWL5030/TPS659x0 keypad support"
728 depends on TWL4030_CORE
729 select INPUT_MATRIXKMAP
731 Say Y here if your board use the keypad controller on
732 TWL4030 family chips. It's safe to say enable this
733 even on boards that don't use the keypad controller.
735 To compile this driver as a module, choose M here: the
736 module will be called twl4030_keypad.
738 config KEYBOARD_XTKBD
739 tristate "XT keyboard"
742 Say Y here if you want to use the old IBM PC/XT keyboard (or
743 compatible) on your system. This is only possible with a
744 parallel port keyboard adapter, you cannot connect it to the
745 keyboard port on a PC that runs Linux.
747 To compile this driver as a module, choose M here: the
748 module will be called xtkbd.
750 config KEYBOARD_CROS_EC
751 tristate "ChromeOS EC keyboard"
752 select INPUT_MATRIXKMAP
753 select INPUT_VIVALDIFMAP
756 Say Y here to enable the matrix keyboard used by ChromeOS devices
757 and implemented on the ChromeOS EC. You must enable one bus option
758 (CROS_EC_I2C or CROS_EC_SPI) to use this.
760 To compile this driver as a module, choose M here: the
761 module will be called cros_ec_keyb.
763 config KEYBOARD_CAP11XX
764 tristate "Microchip CAP11XX based touch sensors"
768 Say Y here to enable the CAP11XX touch sensor driver.
770 To compile this driver as a module, choose M here: the
771 module will be called cap11xx.
774 tristate "Broadcom keypad driver"
775 depends on OF && HAVE_CLK && HAS_IOMEM
776 select INPUT_MATRIXKMAP
777 default ARCH_BCM_CYGNUS
779 Say Y here if you want to use Broadcom keypad.
781 To compile this driver as a module, choose M here: the
782 module will be called bcm-keypad.
784 config KEYBOARD_MT6779
785 tristate "MediaTek Keypad Support"
786 depends on ARCH_MEDIATEK || COMPILE_TEST
788 select INPUT_MATRIXKMAP
790 Say Y here if you want to use the keypad on MediaTek SoCs.
793 To compile this driver as a module, choose M here: the
794 module will be called mt6779-keypad.
796 config KEYBOARD_MTK_PMIC
797 tristate "MediaTek PMIC keys support"
798 depends on MFD_MT6397
800 Say Y here if you want to use the pmic keys (powerkey/homekey).
802 To compile this driver as a module, choose M here: the
803 module will be called pmic-keys.
805 config KEYBOARD_CYPRESS_SF
806 tristate "Cypress StreetFighter touchkey support"
809 Say Y here if you want to enable support for Cypress StreetFighter
812 To compile this driver as a module, choose M here: the
813 module will be called cypress-sf.