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"
21 This driver implements support for buttons connected
22 to an ADC using a resistor ladder.
24 Say Y here if your device has such buttons connected to an ADC. Your
25 board-specific setup logic must also provide a configuration data
26 for mapping voltages to buttons.
28 To compile this driver as a module, choose M here: the
29 module will be called adc_keys.
31 config KEYBOARD_ADP5520
32 tristate "Keypad Support for ADP5520 PMIC"
33 depends on PMIC_ADP5520
35 This option enables support for the keypad scan matrix
36 on Analog Devices ADP5520 PMICs.
38 To compile this driver as a module, choose M here: the module will
39 be called adp5520-keys.
41 config KEYBOARD_ADP5588
42 tristate "ADP5588/87 I2C QWERTY Keypad and IO Expander"
45 Say Y here if you want to use a ADP5588/87 attached to your
48 To compile this driver as a module, choose M here: the
49 module will be called adp5588-keys.
51 config KEYBOARD_ADP5589
52 tristate "ADP5585/ADP5589 I2C QWERTY Keypad and IO Expander"
55 Say Y here if you want to use a ADP5585/ADP5589 attached to your
58 To compile this driver as a module, choose M here: the
59 module will be called adp5589-keys.
62 tristate "Amiga keyboard"
65 Say Y here if you are running Linux on any AMIGA and have a keyboard
68 To compile this driver as a module, choose M here: the
69 module will be called amikbd.
74 config KEYBOARD_APPLESPI
75 tristate "Apple SPI keyboard and trackpad"
76 depends on ACPI && EFI
78 depends on X86 || COMPILE_TEST
80 Say Y here if you are running Linux on any Apple MacBook8,1 or later,
81 or any MacBookPro13,* or MacBookPro14,*.
83 You will also need to enable appropriate SPI master controllers:
84 spi_pxa2xx_platform and spi_pxa2xx_pci for MacBook8,1, and
85 spi_pxa2xx_platform and intel_lpss_pci for the rest.
87 To compile this driver as a module, choose M here: the
88 module will be called applespi.
91 tristate "Atari keyboard"
95 Say Y here if you are running Linux on any Atari and have a keyboard
98 To compile this driver as a module, choose M here: the
99 module will be called atakbd.
101 config KEYBOARD_ATKBD
102 tristate "AT keyboard"
106 select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
107 select SERIO_GSCPS2 if GSC
109 Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
110 you'll need this, unless you have a different type keyboard (USB, ADB
111 or other). This also works for AT and PS/2 keyboards connected over a
112 PS/2 to serial converter.
116 To compile this driver as a module, choose M here: the
117 module will be called atkbd.
119 config KEYBOARD_ATKBD_HP_KEYCODES
120 bool "Use HP keyboard scancodes"
121 depends on PARISC && KEYBOARD_ATKBD
124 Say Y here if you have a PA-RISC machine and want to use an AT or
125 PS/2 keyboard, and your keyboard uses keycodes that are specific to
128 Say N if you use a standard keyboard.
130 config KEYBOARD_ATKBD_RDI_KEYCODES
131 bool "Use PrecisionBook keyboard scancodes"
132 depends on KEYBOARD_ATKBD_HP_KEYCODES
135 If you have an RDI PrecisionBook, say Y here if you want to use its
136 built-in keyboard (as opposed to an external keyboard).
138 The PrecisionBook has five keys that conflict with those used by most
139 AT and PS/2 keyboards. These are as follows:
141 PrecisionBook Standard AT or PS/2
147 Left 102nd key (the key to the right of Left Shift)
149 If you say N here, and use the PrecisionBook keyboard, then each key
150 in the left-hand column will be interpreted as the corresponding key
151 in the right-hand column.
153 If you say Y here, and use an external keyboard, then each key in the
154 right-hand column will be interpreted as the key shown in the
157 config KEYBOARD_QT1050
158 tristate "Microchip AT42QT1050 Touch Sensor Chip"
162 Say Y here if you want to use Microchip AT42QT1050 QTouch
163 Sensor chip as input device.
165 To compile this driver as a module, choose M here:
166 the module will be called qt1050
168 config KEYBOARD_QT1070
169 tristate "Atmel AT42QT1070 Touch Sensor Chip"
172 Say Y here if you want to use Atmel AT42QT1070 QTouch
173 Sensor chip as input device.
175 To compile this driver as a module, choose M here:
176 the module will be called qt1070
178 config KEYBOARD_QT2160
179 tristate "Atmel AT42QT2160 Touch Sensor Chip"
182 If you say yes here you get support for Atmel AT42QT2160 Touch
183 Sensor chip as a keyboard input.
185 This driver can also be built as a module. If so, the module
186 will be called qt2160.
188 config KEYBOARD_CLPS711X
189 tristate "CLPS711X Keypad support"
190 depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
191 select INPUT_MATRIXKMAP
194 Say Y here to enable the matrix keypad on the Cirrus Logic
197 To compile this driver as a module, choose M here: the
198 module will be called clps711x-keypad.
200 config KEYBOARD_DLINK_DIR685
201 tristate "D-Link DIR-685 touchkeys support"
205 If you say yes here you get support for the D-Link DIR-685
208 To compile this driver as a module, choose M here: the
209 module will be called dlink-dir685-touchkeys.
211 config KEYBOARD_LKKBD
212 tristate "DECstation/VAXstation LK201/LK401 keyboard"
215 Say Y here if you want to use a LK201 or LK401 style serial
216 keyboard. This keyboard is also useable on PCs if you attach
217 it with the inputattach program. The connector pinout is
218 described within lkkbd.c.
220 To compile this driver as a module, choose M here: the
221 module will be called lkkbd.
223 config KEYBOARD_EP93XX
224 tristate "EP93xx Matrix Keypad support"
225 depends on ARCH_EP93XX || COMPILE_TEST
226 select INPUT_MATRIXKMAP
228 Say Y here to enable the matrix keypad on the Cirrus EP93XX.
230 To compile this driver as a module, choose M here: the
231 module will be called ep93xx_keypad.
234 tristate "GPIO Buttons"
235 depends on GPIOLIB || COMPILE_TEST
237 This driver implements support for buttons connected
238 to GPIO pins of various CPUs (and some other chips).
240 Say Y here if your device has buttons connected
241 directly to such GPIO pins. Your board-specific
242 setup logic must also provide a platform device,
243 with configuration data saying which GPIOs are used.
245 To compile this driver as a module, choose M here: the
246 module will be called gpio_keys.
248 config KEYBOARD_GPIO_POLLED
249 tristate "Polled GPIO buttons"
253 This driver implements support for buttons connected
254 to GPIO pins that are not capable of generating interrupts.
256 Say Y here if your device has buttons connected
257 directly to such GPIO pins. Your board-specific
258 setup logic must also provide a platform device,
259 with configuration data saying which GPIOs are used.
261 To compile this driver as a module, choose M here: the
262 module will be called gpio_keys_polled.
264 config KEYBOARD_TCA6416
265 tristate "TCA6416/TCA6408A Keypad Support"
268 This driver implements basic keypad functionality
269 for keys connected through TCA6416/TCA6408A IO expanders.
271 Say Y here if your device has keys connected to
272 TCA6416/TCA6408A IO expander. Your board-specific setup logic
273 must also provide pin-mask details(of which TCA6416 pins
274 are used for keypad).
276 If enabled the entire TCA6416 device will be managed through
279 To compile this driver as a module, choose M here: the
280 module will be called tca6416_keypad.
282 config KEYBOARD_TCA8418
283 tristate "TCA8418 Keypad Support"
285 select INPUT_MATRIXKMAP
287 This driver implements basic keypad functionality
288 for keys connected through TCA8418 keypad decoder.
290 Say Y here if your device has keys connected to
291 TCA8418 keypad decoder.
293 If enabled the complete TCA8418 device will be managed through
296 To compile this driver as a module, choose M here: the
297 module will be called tca8418_keypad.
299 config KEYBOARD_MATRIX
300 tristate "GPIO driven matrix keypad support"
301 depends on GPIOLIB || COMPILE_TEST
302 select INPUT_MATRIXKMAP
304 Enable support for GPIO driven matrix keypad.
306 To compile this driver as a module, choose M here: the
307 module will be called matrix_keypad.
309 config KEYBOARD_HIL_OLD
310 tristate "HP HIL keyboard support (simple driver)"
311 depends on GSC || HP300
314 The "Human Interface Loop" is a older, 8-channel USB-like
315 controller used in several Hewlett Packard models. This driver
316 was adapted from the one written for m68k/hp300, and implements
317 support for a keyboard attached to the HIL port, but not for
318 any other types of HIL input devices like mice or tablets.
319 However, it has been thoroughly tested and is stable.
321 If you want full HIL support including support for multiple
322 keyboards, mice, and tablets, you have to enable the
323 "HP System Device Controller i8042 Support" in the input/serio
327 tristate "HP HIL keyboard/pointer support"
328 depends on GSC || HP300
334 The "Human Interface Loop" is a older, 8-channel USB-like
335 controller used in several Hewlett Packard models.
336 This driver implements support for HIL-keyboards and pointing
337 devices (mice, tablets, touchscreens) attached
338 to your machine, so normally you should say Y here.
340 config KEYBOARD_HP6XX
341 tristate "HP Jornada 6xx keyboard"
345 Say Y here if you have a HP Jornada 620/660/680/690 and want to
346 support the built-in keyboard.
348 To compile this driver as a module, choose M here: the
349 module will be called jornada680_kbd.
351 config KEYBOARD_HP7XX
352 tristate "HP Jornada 7xx keyboard"
353 depends on SA1100_JORNADA720_SSP && SA1100_SSP
355 Say Y here if you have a HP Jornada 710/720/728 and want to
356 support the built-in keyboard.
358 To compile this driver as a module, choose M here: the
359 module will be called jornada720_kbd.
361 config KEYBOARD_LM8323
362 tristate "LM8323 keypad chip"
364 depends on LEDS_CLASS
366 If you say yes here you get support for the National Semiconductor
367 LM8323 keypad controller.
369 To compile this driver as a module, choose M here: the
370 module will be called lm8323.
372 config KEYBOARD_LM8333
373 tristate "LM8333 keypad chip"
375 select INPUT_MATRIXKMAP
377 If you say yes here you get support for the National Semiconductor
378 LM8333 keypad controller.
380 To compile this driver as a module, choose M here: the
381 module will be called lm8333.
383 config KEYBOARD_LOCOMO
384 tristate "LoCoMo Keyboard Support"
385 depends on SHARP_LOCOMO
387 Say Y here if you are running Linux on a Sharp Zaurus Collie or Poodle based PDA
389 To compile this driver as a module, choose M here: the
390 module will be called locomokbd.
392 config KEYBOARD_LPC32XX
393 tristate "LPC32XX matrix key scanner support"
394 depends on ARCH_LPC32XX && OF
395 select INPUT_MATRIXKMAP
397 Say Y here if you want to use NXP LPC32XX SoC key scanner interface,
398 connected to a key matrix.
400 To compile this driver as a module, choose M here: the
401 module will be called lpc32xx-keys.
403 config KEYBOARD_MAPLE
404 tristate "Maple bus keyboard"
405 depends on SH_DREAMCAST && MAPLE
407 Say Y here if you have a Dreamcast console running Linux and have
408 a keyboard attached to its Maple bus.
410 To compile this driver as a module, choose M here: the
411 module will be called maple_keyb.
413 config KEYBOARD_MAX7359
414 tristate "Maxim MAX7359 Key Switch Controller"
415 select INPUT_MATRIXKMAP
418 If you say yes here you get support for the Maxim MAX7359 Key
419 Switch Controller chip. This providers microprocessors with
420 management of up to 64 key switches
422 To compile this driver as a module, choose M here: the
423 module will be called max7359_keypad.
426 tristate "MELFAS MCS Touchkey"
429 Say Y here if you have the MELFAS MCS5000/5080 touchkey controller
434 To compile this driver as a module, choose M here: the
435 module will be called mcs_touchkey.
437 config KEYBOARD_MPR121
438 tristate "Freescale MPR121 Touchkey"
441 Say Y here if you have Freescale MPR121 touchkey controller
446 To compile this driver as a module, choose M here: the
447 module will be called mpr121_touchkey.
449 config KEYBOARD_SNVS_PWRKEY
450 tristate "IMX SNVS Power Key Driver"
451 depends on ARCH_MXC || COMPILE_TEST
454 This is the snvs powerkey driver for the Freescale i.MX application
455 processors that are newer than i.MX6 SX.
457 To compile this driver as a module, choose M here; the
458 module will be called snvs_pwrkey.
461 tristate "IMX keypad support"
463 select INPUT_MATRIXKMAP
465 Enable support for IMX keypad port.
467 To compile this driver as a module, choose M here: the
468 module will be called imx_keypad.
470 config KEYBOARD_NEWTON
471 tristate "Newton keyboard"
474 Say Y here if you have a Newton keyboard on a serial port.
476 To compile this driver as a module, choose M here: the
477 module will be called newtonkbd.
479 config KEYBOARD_NOMADIK
480 tristate "ST-Ericsson Nomadik SKE keyboard"
481 depends on (ARCH_NOMADIK || ARCH_U8500)
482 select INPUT_MATRIXKMAP
484 Say Y here if you want to use a keypad provided on the SKE controller
485 used on the Ux500 and Nomadik platforms
487 To compile this driver as a module, choose M here: the
488 module will be called nmk-ske-keypad.
490 config KEYBOARD_NSPIRE
491 tristate "TI-NSPIRE built-in keyboard"
492 depends on ARCH_NSPIRE && OF
493 select INPUT_MATRIXKMAP
495 Say Y here if you want to use the built-in keypad on TI-NSPIRE.
497 To compile this driver as a module, choose M here: the
498 module will be called nspire-keypad.
500 config KEYBOARD_TEGRA
501 tristate "NVIDIA Tegra internal matrix keyboard controller support"
502 depends on ARCH_TEGRA && OF
503 select INPUT_MATRIXKMAP
505 Say Y here if you want to use a matrix keyboard connected directly
506 to the internal keyboard controller on Tegra SoCs.
508 To compile this driver as a module, choose M here: the
509 module will be called tegra-kbc.
511 config KEYBOARD_OPENCORES
512 tristate "OpenCores Keyboard Controller"
515 Say Y here if you want to use the OpenCores Keyboard Controller
516 http://www.opencores.org/project,keyboardcontroller
518 To compile this driver as a module, choose M here; the
519 module will be called opencores-kbd.
521 config KEYBOARD_PXA27x
522 tristate "PXA27x/PXA3xx keypad support"
523 depends on PXA27x || PXA3xx || ARCH_MMP
524 select INPUT_MATRIXKMAP
526 Enable support for PXA27x/PXA3xx keypad controller.
528 To compile this driver as a module, choose M here: the
529 module will be called pxa27x_keypad.
531 config KEYBOARD_PXA930_ROTARY
532 tristate "PXA930/PXA935 Enhanced Rotary Controller Support"
533 depends on CPU_PXA930 || CPU_PXA935
535 Enable support for PXA930/PXA935 Enhanced Rotary Controller.
537 To compile this driver as a module, choose M here: the
538 module will be called pxa930_rotary.
540 config KEYBOARD_PMIC8XXX
541 tristate "Qualcomm PMIC8XXX keypad support"
542 depends on MFD_PM8XXX
543 select INPUT_MATRIXKMAP
545 Say Y here if you want to enable the driver for the PMIC8XXX
546 keypad provided as a reference design from Qualcomm. This is intended
547 to support upto 18x8 matrix based keypad design.
549 To compile this driver as a module, choose M here: the module will
550 be called pmic8xxx-keypad.
552 config KEYBOARD_SAMSUNG
553 tristate "Samsung keypad support"
555 select INPUT_MATRIXKMAP
557 Say Y here if you want to use the keypad on your Samsung mobile
560 To compile this driver as a module, choose M here: the
561 module will be called samsung-keypad.
563 config KEYBOARD_GOLDFISH_EVENTS
564 depends on GOLDFISH || COMPILE_TEST
565 tristate "Generic Input Event device for Goldfish"
567 Say Y here to get an input event device for the Goldfish virtual
570 To compile this driver as a module, choose M here: the
571 module will be called goldfish-events.
573 config KEYBOARD_STOWAWAY
574 tristate "Stowaway keyboard"
577 Say Y here if you have a Stowaway keyboard on a serial port.
578 Stowaway compatible keyboards like Dicota Input-PDA keyboard
579 are also supported by this driver.
581 To compile this driver as a module, choose M here: the
582 module will be called stowaway.
584 config KEYBOARD_ST_KEYSCAN
585 tristate "STMicroelectronics keyscan support"
586 depends on ARCH_STI || COMPILE_TEST
587 select INPUT_MATRIXKMAP
589 Say Y here if you want to use a keypad attached to the keyscan block
590 on some STMicroelectronics SoC devices.
592 To compile this driver as a module, choose M here: the
593 module will be called st-keyscan.
595 config KEYBOARD_SUNKBD
596 tristate "Sun Type 4 and Type 5 keyboard"
599 Say Y here if you want to use a Sun Type 4 or Type 5 keyboard,
600 connected either to the Sun keyboard connector or to an serial
601 (RS-232) port via a simple adapter.
603 To compile this driver as a module, choose M here: the
604 module will be called sunkbd.
606 config KEYBOARD_SH_KEYSC
607 tristate "SuperH KEYSC keypad support"
608 depends on ARCH_SHMOBILE || COMPILE_TEST
610 Say Y here if you want to use a keypad attached to the KEYSC block
611 on SuperH processors such as sh7722 and sh7343.
613 To compile this driver as a module, choose M here: the
614 module will be called sh_keysc.
616 config KEYBOARD_STMPE
617 tristate "STMPE keypad support"
620 select INPUT_MATRIXKMAP
622 Say Y here if you want to use the keypad controller on STMPE I/O
625 To compile this driver as a module, choose M here: the module will be
628 config KEYBOARD_SUN4I_LRADC
629 tristate "Allwinner sun4i low res adc attached tablet keys support"
630 depends on ARCH_SUNXI
632 This selects support for the Allwinner low res adc attached tablet
633 keys found on Allwinner sunxi SoCs.
635 To compile this driver as a module, choose M here: the
636 module will be called sun4i-lradc-keys.
638 config KEYBOARD_DAVINCI
639 tristate "TI DaVinci Key Scan"
640 depends on ARCH_DAVINCI_DM365
642 Say Y to enable keypad module support for the TI DaVinci
645 To compile this driver as a module, choose M here: the
646 module will be called davinci_keyscan.
648 config KEYBOARD_IPAQ_MICRO
649 tristate "Buttons on Micro SoC (iPaq h3100,h3600,h3700)"
650 depends on MFD_IPAQ_MICRO
652 Say Y to enable support for the buttons attached to
653 Micro peripheral controller on iPAQ h3100/h3600/h3700
655 To compile this driver as a module, choose M here: the
656 module will be called ipaq-micro-keys.
659 tristate "TI OMAP keypad support"
660 depends on ARCH_OMAP1
661 select INPUT_MATRIXKMAP
663 Say Y here if you want to use the OMAP keypad.
665 To compile this driver as a module, choose M here: the
666 module will be called omap-keypad.
668 config KEYBOARD_OMAP4
669 tristate "TI OMAP4+ keypad support"
670 depends on OF || ARCH_OMAP2PLUS
671 select INPUT_MATRIXKMAP
673 Say Y here if you want to use the OMAP4+ keypad.
675 To compile this driver as a module, choose M here: the
676 module will be called omap4-keypad.
678 config KEYBOARD_SPEAR
679 tristate "ST SPEAR keyboard support"
680 depends on PLAT_SPEAR
681 select INPUT_MATRIXKMAP
683 Say Y here if you want to use the SPEAR keyboard.
685 To compile this driver as a module, choose M here: the
686 module will be called spear-keboard.
688 config KEYBOARD_TC3589X
689 tristate "TC3589X Keypad support"
690 depends on MFD_TC3589X
691 select INPUT_MATRIXKMAP
693 Say Y here if you want to use the keypad controller on
694 TC35892/3 I/O expander.
696 To compile this driver as a module, choose M here: the
697 module will be called tc3589x-keypad.
699 config KEYBOARD_TM2_TOUCHKEY
700 tristate "TM2 touchkey support"
702 depends on LEDS_CLASS
704 Say Y here to enable device driver for tm2-touchkey with
705 LED control for the Exynos5433 TM2 board.
707 To compile this driver as a module, choose M here.
708 module will be called tm2-touchkey.
710 config KEYBOARD_TWL4030
711 tristate "TI TWL4030/TWL5030/TPS659x0 keypad support"
712 depends on TWL4030_CORE
713 select INPUT_MATRIXKMAP
715 Say Y here if your board use the keypad controller on
716 TWL4030 family chips. It's safe to say enable this
717 even on boards that don't use the keypad controller.
719 To compile this driver as a module, choose M here: the
720 module will be called twl4030_keypad.
722 config KEYBOARD_XTKBD
723 tristate "XT keyboard"
726 Say Y here if you want to use the old IBM PC/XT keyboard (or
727 compatible) on your system. This is only possible with a
728 parallel port keyboard adapter, you cannot connect it to the
729 keyboard port on a PC that runs Linux.
731 To compile this driver as a module, choose M here: the
732 module will be called xtkbd.
734 config KEYBOARD_W90P910
735 tristate "W90P910 Matrix Keypad support"
736 depends on ARCH_W90X900
737 select INPUT_MATRIXKMAP
739 Say Y here to enable the matrix keypad on evaluation board
742 To compile this driver as a module, choose M here: the
743 module will be called w90p910_keypad.
745 config KEYBOARD_CROS_EC
746 tristate "ChromeOS EC keyboard"
747 select INPUT_MATRIXKMAP
748 depends on MFD_CROS_EC
750 Say Y here to enable the matrix keyboard used by ChromeOS devices
751 and implemented on the ChromeOS EC. You must enable one bus option
752 (CROS_EC_I2C or CROS_EC_SPI) to use this.
754 To compile this driver as a module, choose M here: the
755 module will be called cros_ec_keyb.
757 config KEYBOARD_CAP11XX
758 tristate "Microchip CAP11XX based touch sensors"
762 Say Y here to enable the CAP11XX touch sensor driver.
764 To compile this driver as a module, choose M here: the
765 module will be called cap11xx.
768 tristate "Broadcom keypad driver"
769 depends on OF && HAVE_CLK
770 select INPUT_MATRIXKMAP
771 default ARCH_BCM_CYGNUS
773 Say Y here if you want to use Broadcom keypad.
775 To compile this driver as a module, choose M here: the
776 module will be called bcm-keypad.
778 config KEYBOARD_MTK_PMIC
779 tristate "MediaTek PMIC keys support"
780 depends on MFD_MT6397
782 Say Y here if you want to use the pmic keys (powerkey/homekey).
784 To compile this driver as a module, choose M here: the
785 module will be called pmic-keys.