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.
75 tristate "Atari keyboard"
79 Say Y here if you are running Linux on any Atari and have a keyboard
82 To compile this driver as a module, choose M here: the
83 module will be called atakbd.
86 tristate "AT keyboard"
90 select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
91 select SERIO_GSCPS2 if GSC
93 Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
94 you'll need this, unless you have a different type keyboard (USB, ADB
95 or other). This also works for AT and PS/2 keyboards connected over a
96 PS/2 to serial converter.
100 To compile this driver as a module, choose M here: the
101 module will be called atkbd.
103 config KEYBOARD_ATKBD_HP_KEYCODES
104 bool "Use HP keyboard scancodes"
105 depends on PARISC && KEYBOARD_ATKBD
108 Say Y here if you have a PA-RISC machine and want to use an AT or
109 PS/2 keyboard, and your keyboard uses keycodes that are specific to
112 Say N if you use a standard keyboard.
114 config KEYBOARD_ATKBD_RDI_KEYCODES
115 bool "Use PrecisionBook keyboard scancodes"
116 depends on KEYBOARD_ATKBD_HP_KEYCODES
119 If you have an RDI PrecisionBook, say Y here if you want to use its
120 built-in keyboard (as opposed to an external keyboard).
122 The PrecisionBook has five keys that conflict with those used by most
123 AT and PS/2 keyboards. These are as follows:
125 PrecisionBook Standard AT or PS/2
131 Left 102nd key (the key to the right of Left Shift)
133 If you say N here, and use the PrecisionBook keyboard, then each key
134 in the left-hand column will be interpreted as the corresponding key
135 in the right-hand column.
137 If you say Y here, and use an external keyboard, then each key in the
138 right-hand column will be interpreted as the key shown in the
141 config KEYBOARD_QT1050
142 tristate "Microchip AT42QT1050 Touch Sensor Chip"
146 Say Y here if you want to use Microchip AT42QT1050 QTouch
147 Sensor chip as input device.
149 To compile this driver as a module, choose M here:
150 the module will be called qt1050
152 config KEYBOARD_QT1070
153 tristate "Atmel AT42QT1070 Touch Sensor Chip"
156 Say Y here if you want to use Atmel AT42QT1070 QTouch
157 Sensor chip as input device.
159 To compile this driver as a module, choose M here:
160 the module will be called qt1070
162 config KEYBOARD_QT2160
163 tristate "Atmel AT42QT2160 Touch Sensor Chip"
166 If you say yes here you get support for Atmel AT42QT2160 Touch
167 Sensor chip as a keyboard input.
169 This driver can also be built as a module. If so, the module
170 will be called qt2160.
172 config KEYBOARD_CLPS711X
173 tristate "CLPS711X Keypad support"
174 depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
175 select INPUT_MATRIXKMAP
178 Say Y here to enable the matrix keypad on the Cirrus Logic
181 To compile this driver as a module, choose M here: the
182 module will be called clps711x-keypad.
184 config KEYBOARD_DLINK_DIR685
185 tristate "D-Link DIR-685 touchkeys support"
189 If you say yes here you get support for the D-Link DIR-685
192 To compile this driver as a module, choose M here: the
193 module will be called dlink-dir685-touchkeys.
195 config KEYBOARD_LKKBD
196 tristate "DECstation/VAXstation LK201/LK401 keyboard"
199 Say Y here if you want to use a LK201 or LK401 style serial
200 keyboard. This keyboard is also useable on PCs if you attach
201 it with the inputattach program. The connector pinout is
202 described within lkkbd.c.
204 To compile this driver as a module, choose M here: the
205 module will be called lkkbd.
207 config KEYBOARD_EP93XX
208 tristate "EP93xx Matrix Keypad support"
209 depends on ARCH_EP93XX || COMPILE_TEST
210 select INPUT_MATRIXKMAP
212 Say Y here to enable the matrix keypad on the Cirrus EP93XX.
214 To compile this driver as a module, choose M here: the
215 module will be called ep93xx_keypad.
218 tristate "GPIO Buttons"
219 depends on GPIOLIB || COMPILE_TEST
221 This driver implements support for buttons connected
222 to GPIO pins of various CPUs (and some other chips).
224 Say Y here if your device has buttons connected
225 directly to such GPIO pins. Your board-specific
226 setup logic must also provide a platform device,
227 with configuration data saying which GPIOs are used.
229 To compile this driver as a module, choose M here: the
230 module will be called gpio_keys.
232 config KEYBOARD_GPIO_POLLED
233 tristate "Polled GPIO buttons"
237 This driver implements support for buttons connected
238 to GPIO pins that are not capable of generating interrupts.
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_polled.
248 config KEYBOARD_TCA6416
249 tristate "TCA6416/TCA6408A Keypad Support"
252 This driver implements basic keypad functionality
253 for keys connected through TCA6416/TCA6408A IO expanders.
255 Say Y here if your device has keys connected to
256 TCA6416/TCA6408A IO expander. Your board-specific setup logic
257 must also provide pin-mask details(of which TCA6416 pins
258 are used for keypad).
260 If enabled the entire TCA6416 device will be managed through
263 To compile this driver as a module, choose M here: the
264 module will be called tca6416_keypad.
266 config KEYBOARD_TCA8418
267 tristate "TCA8418 Keypad Support"
269 select INPUT_MATRIXKMAP
271 This driver implements basic keypad functionality
272 for keys connected through TCA8418 keypad decoder.
274 Say Y here if your device has keys connected to
275 TCA8418 keypad decoder.
277 If enabled the complete TCA8418 device will be managed through
280 To compile this driver as a module, choose M here: the
281 module will be called tca8418_keypad.
283 config KEYBOARD_MATRIX
284 tristate "GPIO driven matrix keypad support"
285 depends on GPIOLIB || COMPILE_TEST
286 select INPUT_MATRIXKMAP
288 Enable support for GPIO driven matrix keypad.
290 To compile this driver as a module, choose M here: the
291 module will be called matrix_keypad.
293 config KEYBOARD_HIL_OLD
294 tristate "HP HIL keyboard support (simple driver)"
295 depends on GSC || HP300
298 The "Human Interface Loop" is a older, 8-channel USB-like
299 controller used in several Hewlett Packard models. This driver
300 was adapted from the one written for m68k/hp300, and implements
301 support for a keyboard attached to the HIL port, but not for
302 any other types of HIL input devices like mice or tablets.
303 However, it has been thoroughly tested and is stable.
305 If you want full HIL support including support for multiple
306 keyboards, mice, and tablets, you have to enable the
307 "HP System Device Controller i8042 Support" in the input/serio
311 tristate "HP HIL keyboard/pointer support"
312 depends on GSC || HP300
318 The "Human Interface Loop" is a older, 8-channel USB-like
319 controller used in several Hewlett Packard models.
320 This driver implements support for HIL-keyboards and pointing
321 devices (mice, tablets, touchscreens) attached
322 to your machine, so normally you should say Y here.
324 config KEYBOARD_HP6XX
325 tristate "HP Jornada 6xx keyboard"
329 Say Y here if you have a HP Jornada 620/660/680/690 and want to
330 support the built-in keyboard.
332 To compile this driver as a module, choose M here: the
333 module will be called jornada680_kbd.
335 config KEYBOARD_HP7XX
336 tristate "HP Jornada 7xx keyboard"
337 depends on SA1100_JORNADA720_SSP && SA1100_SSP
339 Say Y here if you have a HP Jornada 710/720/728 and want to
340 support the built-in keyboard.
342 To compile this driver as a module, choose M here: the
343 module will be called jornada720_kbd.
345 config KEYBOARD_LM8323
346 tristate "LM8323 keypad chip"
348 depends on LEDS_CLASS
350 If you say yes here you get support for the National Semiconductor
351 LM8323 keypad controller.
353 To compile this driver as a module, choose M here: the
354 module will be called lm8323.
356 config KEYBOARD_LM8333
357 tristate "LM8333 keypad chip"
359 select INPUT_MATRIXKMAP
361 If you say yes here you get support for the National Semiconductor
362 LM8333 keypad controller.
364 To compile this driver as a module, choose M here: the
365 module will be called lm8333.
367 config KEYBOARD_LOCOMO
368 tristate "LoCoMo Keyboard Support"
369 depends on SHARP_LOCOMO
371 Say Y here if you are running Linux on a Sharp Zaurus Collie or Poodle based PDA
373 To compile this driver as a module, choose M here: the
374 module will be called locomokbd.
376 config KEYBOARD_LPC32XX
377 tristate "LPC32XX matrix key scanner support"
378 depends on ARCH_LPC32XX && OF
379 select INPUT_MATRIXKMAP
381 Say Y here if you want to use NXP LPC32XX SoC key scanner interface,
382 connected to a key matrix.
384 To compile this driver as a module, choose M here: the
385 module will be called lpc32xx-keys.
387 config KEYBOARD_MAPLE
388 tristate "Maple bus keyboard"
389 depends on SH_DREAMCAST && MAPLE
391 Say Y here if you have a Dreamcast console running Linux and have
392 a keyboard attached to its Maple bus.
394 To compile this driver as a module, choose M here: the
395 module will be called maple_keyb.
397 config KEYBOARD_MAX7359
398 tristate "Maxim MAX7359 Key Switch Controller"
399 select INPUT_MATRIXKMAP
402 If you say yes here you get support for the Maxim MAX7359 Key
403 Switch Controller chip. This providers microprocessors with
404 management of up to 64 key switches
406 To compile this driver as a module, choose M here: the
407 module will be called max7359_keypad.
410 tristate "MELFAS MCS Touchkey"
413 Say Y here if you have the MELFAS MCS5000/5080 touchkey controller
418 To compile this driver as a module, choose M here: the
419 module will be called mcs_touchkey.
421 config KEYBOARD_MPR121
422 tristate "Freescale MPR121 Touchkey"
425 Say Y here if you have Freescale MPR121 touchkey controller
430 To compile this driver as a module, choose M here: the
431 module will be called mpr121_touchkey.
433 config KEYBOARD_SNVS_PWRKEY
434 tristate "IMX SNVS Power Key Driver"
435 depends on ARCH_MXC || COMPILE_TEST
438 This is the snvs powerkey driver for the Freescale i.MX application
439 processors that are newer than i.MX6 SX.
441 To compile this driver as a module, choose M here; the
442 module will be called snvs_pwrkey.
445 tristate "IMX keypad support"
447 select INPUT_MATRIXKMAP
449 Enable support for IMX keypad port.
451 To compile this driver as a module, choose M here: the
452 module will be called imx_keypad.
454 config KEYBOARD_NEWTON
455 tristate "Newton keyboard"
458 Say Y here if you have a Newton keyboard on a serial port.
460 To compile this driver as a module, choose M here: the
461 module will be called newtonkbd.
463 config KEYBOARD_NOMADIK
464 tristate "ST-Ericsson Nomadik SKE keyboard"
465 depends on (ARCH_NOMADIK || ARCH_U8500)
466 select INPUT_MATRIXKMAP
468 Say Y here if you want to use a keypad provided on the SKE controller
469 used on the Ux500 and Nomadik platforms
471 To compile this driver as a module, choose M here: the
472 module will be called nmk-ske-keypad.
474 config KEYBOARD_NSPIRE
475 tristate "TI-NSPIRE built-in keyboard"
476 depends on ARCH_NSPIRE && OF
477 select INPUT_MATRIXKMAP
479 Say Y here if you want to use the built-in keypad on TI-NSPIRE.
481 To compile this driver as a module, choose M here: the
482 module will be called nspire-keypad.
484 config KEYBOARD_TEGRA
485 tristate "NVIDIA Tegra internal matrix keyboard controller support"
486 depends on ARCH_TEGRA && OF
487 select INPUT_MATRIXKMAP
489 Say Y here if you want to use a matrix keyboard connected directly
490 to the internal keyboard controller on Tegra SoCs.
492 To compile this driver as a module, choose M here: the
493 module will be called tegra-kbc.
495 config KEYBOARD_OPENCORES
496 tristate "OpenCores Keyboard Controller"
499 Say Y here if you want to use the OpenCores Keyboard Controller
500 http://www.opencores.org/project,keyboardcontroller
502 To compile this driver as a module, choose M here; the
503 module will be called opencores-kbd.
505 config KEYBOARD_PXA27x
506 tristate "PXA27x/PXA3xx keypad support"
507 depends on PXA27x || PXA3xx || ARCH_MMP
508 select INPUT_MATRIXKMAP
510 Enable support for PXA27x/PXA3xx keypad controller.
512 To compile this driver as a module, choose M here: the
513 module will be called pxa27x_keypad.
515 config KEYBOARD_PXA930_ROTARY
516 tristate "PXA930/PXA935 Enhanced Rotary Controller Support"
517 depends on CPU_PXA930 || CPU_PXA935
519 Enable support for PXA930/PXA935 Enhanced Rotary Controller.
521 To compile this driver as a module, choose M here: the
522 module will be called pxa930_rotary.
524 config KEYBOARD_PMIC8XXX
525 tristate "Qualcomm PMIC8XXX keypad support"
526 depends on MFD_PM8XXX
527 select INPUT_MATRIXKMAP
529 Say Y here if you want to enable the driver for the PMIC8XXX
530 keypad provided as a reference design from Qualcomm. This is intended
531 to support upto 18x8 matrix based keypad design.
533 To compile this driver as a module, choose M here: the module will
534 be called pmic8xxx-keypad.
536 config KEYBOARD_SAMSUNG
537 tristate "Samsung keypad support"
539 select INPUT_MATRIXKMAP
541 Say Y here if you want to use the keypad on your Samsung mobile
544 To compile this driver as a module, choose M here: the
545 module will be called samsung-keypad.
547 config KEYBOARD_GOLDFISH_EVENTS
548 depends on GOLDFISH || COMPILE_TEST
549 tristate "Generic Input Event device for Goldfish"
551 Say Y here to get an input event device for the Goldfish virtual
554 To compile this driver as a module, choose M here: the
555 module will be called goldfish-events.
557 config KEYBOARD_STOWAWAY
558 tristate "Stowaway keyboard"
561 Say Y here if you have a Stowaway keyboard on a serial port.
562 Stowaway compatible keyboards like Dicota Input-PDA keyboard
563 are also supported by this driver.
565 To compile this driver as a module, choose M here: the
566 module will be called stowaway.
568 config KEYBOARD_ST_KEYSCAN
569 tristate "STMicroelectronics keyscan support"
570 depends on ARCH_STI || COMPILE_TEST
571 select INPUT_MATRIXKMAP
573 Say Y here if you want to use a keypad attached to the keyscan block
574 on some STMicroelectronics SoC devices.
576 To compile this driver as a module, choose M here: the
577 module will be called st-keyscan.
579 config KEYBOARD_SUNKBD
580 tristate "Sun Type 4 and Type 5 keyboard"
583 Say Y here if you want to use a Sun Type 4 or Type 5 keyboard,
584 connected either to the Sun keyboard connector or to an serial
585 (RS-232) port via a simple adapter.
587 To compile this driver as a module, choose M here: the
588 module will be called sunkbd.
590 config KEYBOARD_SH_KEYSC
591 tristate "SuperH KEYSC keypad support"
592 depends on ARCH_SHMOBILE || COMPILE_TEST
594 Say Y here if you want to use a keypad attached to the KEYSC block
595 on SuperH processors such as sh7722 and sh7343.
597 To compile this driver as a module, choose M here: the
598 module will be called sh_keysc.
600 config KEYBOARD_STMPE
601 tristate "STMPE keypad support"
604 select INPUT_MATRIXKMAP
606 Say Y here if you want to use the keypad controller on STMPE I/O
609 To compile this driver as a module, choose M here: the module will be
612 config KEYBOARD_SUN4I_LRADC
613 tristate "Allwinner sun4i low res adc attached tablet keys support"
614 depends on ARCH_SUNXI
616 This selects support for the Allwinner low res adc attached tablet
617 keys found on Allwinner sunxi SoCs.
619 To compile this driver as a module, choose M here: the
620 module will be called sun4i-lradc-keys.
622 config KEYBOARD_DAVINCI
623 tristate "TI DaVinci Key Scan"
624 depends on ARCH_DAVINCI_DM365
626 Say Y to enable keypad module support for the TI DaVinci
629 To compile this driver as a module, choose M here: the
630 module will be called davinci_keyscan.
632 config KEYBOARD_IPAQ_MICRO
633 tristate "Buttons on Micro SoC (iPaq h3100,h3600,h3700)"
634 depends on MFD_IPAQ_MICRO
636 Say Y to enable support for the buttons attached to
637 Micro peripheral controller on iPAQ h3100/h3600/h3700
639 To compile this driver as a module, choose M here: the
640 module will be called ipaq-micro-keys.
643 tristate "TI OMAP keypad support"
644 depends on ARCH_OMAP1
645 select INPUT_MATRIXKMAP
647 Say Y here if you want to use the OMAP keypad.
649 To compile this driver as a module, choose M here: the
650 module will be called omap-keypad.
652 config KEYBOARD_OMAP4
653 tristate "TI OMAP4+ keypad support"
654 depends on OF || ARCH_OMAP2PLUS
655 select INPUT_MATRIXKMAP
657 Say Y here if you want to use the OMAP4+ keypad.
659 To compile this driver as a module, choose M here: the
660 module will be called omap4-keypad.
662 config KEYBOARD_SPEAR
663 tristate "ST SPEAR keyboard support"
664 depends on PLAT_SPEAR
665 select INPUT_MATRIXKMAP
667 Say Y here if you want to use the SPEAR keyboard.
669 To compile this driver as a module, choose M here: the
670 module will be called spear-keboard.
672 config KEYBOARD_TC3589X
673 tristate "TC3589X Keypad support"
674 depends on MFD_TC3589X
675 select INPUT_MATRIXKMAP
677 Say Y here if you want to use the keypad controller on
678 TC35892/3 I/O expander.
680 To compile this driver as a module, choose M here: the
681 module will be called tc3589x-keypad.
683 config KEYBOARD_TM2_TOUCHKEY
684 tristate "TM2 touchkey support"
686 depends on LEDS_CLASS
688 Say Y here to enable device driver for tm2-touchkey with
689 LED control for the Exynos5433 TM2 board.
691 To compile this driver as a module, choose M here.
692 module will be called tm2-touchkey.
694 config KEYBOARD_TWL4030
695 tristate "TI TWL4030/TWL5030/TPS659x0 keypad support"
696 depends on TWL4030_CORE
697 select INPUT_MATRIXKMAP
699 Say Y here if your board use the keypad controller on
700 TWL4030 family chips. It's safe to say enable this
701 even on boards that don't use the keypad controller.
703 To compile this driver as a module, choose M here: the
704 module will be called twl4030_keypad.
706 config KEYBOARD_XTKBD
707 tristate "XT keyboard"
710 Say Y here if you want to use the old IBM PC/XT keyboard (or
711 compatible) on your system. This is only possible with a
712 parallel port keyboard adapter, you cannot connect it to the
713 keyboard port on a PC that runs Linux.
715 To compile this driver as a module, choose M here: the
716 module will be called xtkbd.
718 config KEYBOARD_W90P910
719 tristate "W90P910 Matrix Keypad support"
720 depends on ARCH_W90X900
721 select INPUT_MATRIXKMAP
723 Say Y here to enable the matrix keypad on evaluation board
726 To compile this driver as a module, choose M here: the
727 module will be called w90p910_keypad.
729 config KEYBOARD_CROS_EC
730 tristate "ChromeOS EC keyboard"
731 select INPUT_MATRIXKMAP
732 depends on MFD_CROS_EC
734 Say Y here to enable the matrix keyboard used by ChromeOS devices
735 and implemented on the ChromeOS EC. You must enable one bus option
736 (CROS_EC_I2C or CROS_EC_SPI) to use this.
738 To compile this driver as a module, choose M here: the
739 module will be called cros_ec_keyb.
741 config KEYBOARD_CAP11XX
742 tristate "Microchip CAP11XX based touch sensors"
746 Say Y here to enable the CAP11XX touch sensor driver.
748 To compile this driver as a module, choose M here: the
749 module will be called cap11xx.
752 tristate "Broadcom keypad driver"
753 depends on OF && HAVE_CLK
754 select INPUT_MATRIXKMAP
755 default ARCH_BCM_CYGNUS
757 Say Y here if you want to use Broadcom keypad.
759 To compile this driver as a module, choose M here: the
760 module will be called bcm-keypad.
762 config KEYBOARD_MTK_PMIC
763 tristate "MediaTek PMIC keys support"
764 depends on MFD_MT6397
766 Say Y here if you want to use the pmic keys (powerkey/homekey).
768 To compile this driver as a module, choose M here: the
769 module will be called pmic-keys.