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.
73 config KEYBOARD_APPLESPI
74 tristate "Apple SPI keyboard and trackpad"
75 depends on ACPI && EFI
77 depends on X86 || COMPILE_TEST
81 Say Y here if you are running Linux on any Apple MacBook8,1 or later,
82 or any MacBookPro13,* or MacBookPro14,*.
84 You will also need to enable appropriate SPI master controllers:
85 spi_pxa2xx_platform and spi_pxa2xx_pci for MacBook8,1, and
86 spi_pxa2xx_platform and intel_lpss_pci for the rest.
88 To compile this driver as a module, choose M here: the
89 module will be called applespi.
92 tristate "Atari keyboard"
96 Say Y here if you are running Linux on any Atari and have a keyboard
99 To compile this driver as a module, choose M here: the
100 module will be called atakbd.
102 config KEYBOARD_ATKBD
103 tristate "AT keyboard"
107 select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
108 select SERIO_GSCPS2 if GSC
110 Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
111 you'll need this, unless you have a different type keyboard (USB, ADB
112 or other). This also works for AT and PS/2 keyboards connected over a
113 PS/2 to serial converter.
117 To compile this driver as a module, choose M here: the
118 module will be called atkbd.
120 config KEYBOARD_ATKBD_HP_KEYCODES
121 bool "Use HP keyboard scancodes"
122 depends on PARISC && KEYBOARD_ATKBD
125 Say Y here if you have a PA-RISC machine and want to use an AT or
126 PS/2 keyboard, and your keyboard uses keycodes that are specific to
129 Say N if you use a standard keyboard.
131 config KEYBOARD_ATKBD_RDI_KEYCODES
132 bool "Use PrecisionBook keyboard scancodes"
133 depends on KEYBOARD_ATKBD_HP_KEYCODES
136 If you have an RDI PrecisionBook, say Y here if you want to use its
137 built-in keyboard (as opposed to an external keyboard).
139 The PrecisionBook has five keys that conflict with those used by most
140 AT and PS/2 keyboards. These are as follows:
142 PrecisionBook Standard AT or PS/2
148 Left 102nd key (the key to the right of Left Shift)
150 If you say N here, and use the PrecisionBook keyboard, then each key
151 in the left-hand column will be interpreted as the corresponding key
152 in the right-hand column.
154 If you say Y here, and use an external keyboard, then each key in the
155 right-hand column will be interpreted as the key shown in the
158 config KEYBOARD_QT1050
159 tristate "Microchip AT42QT1050 Touch Sensor Chip"
163 Say Y here if you want to use Microchip AT42QT1050 QTouch
164 Sensor chip as input device.
166 To compile this driver as a module, choose M here:
167 the module will be called qt1050
169 config KEYBOARD_QT1070
170 tristate "Atmel AT42QT1070 Touch Sensor Chip"
173 Say Y here if you want to use Atmel AT42QT1070 QTouch
174 Sensor chip as input device.
176 To compile this driver as a module, choose M here:
177 the module will be called qt1070
179 config KEYBOARD_QT2160
180 tristate "Atmel AT42QT2160 Touch Sensor Chip"
183 If you say yes here you get support for Atmel AT42QT2160 Touch
184 Sensor chip as a keyboard input.
186 This driver can also be built as a module. If so, the module
187 will be called qt2160.
189 config KEYBOARD_CLPS711X
190 tristate "CLPS711X Keypad support"
191 depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
192 select INPUT_MATRIXKMAP
195 Say Y here to enable the matrix keypad on the Cirrus Logic
198 To compile this driver as a module, choose M here: the
199 module will be called clps711x-keypad.
201 config KEYBOARD_DLINK_DIR685
202 tristate "D-Link DIR-685 touchkeys support"
206 If you say yes here you get support for the D-Link DIR-685
209 To compile this driver as a module, choose M here: the
210 module will be called dlink-dir685-touchkeys.
212 config KEYBOARD_LKKBD
213 tristate "DECstation/VAXstation LK201/LK401 keyboard"
216 Say Y here if you want to use a LK201 or LK401 style serial
217 keyboard. This keyboard is also useable on PCs if you attach
218 it with the inputattach program. The connector pinout is
219 described within lkkbd.c.
221 To compile this driver as a module, choose M here: the
222 module will be called lkkbd.
224 config KEYBOARD_EP93XX
225 tristate "EP93xx Matrix Keypad support"
226 depends on ARCH_EP93XX || COMPILE_TEST
227 select INPUT_MATRIXKMAP
229 Say Y here to enable the matrix keypad on the Cirrus EP93XX.
231 To compile this driver as a module, choose M here: the
232 module will be called ep93xx_keypad.
235 tristate "GPIO Buttons"
236 depends on GPIOLIB || COMPILE_TEST
238 This driver implements support for buttons connected
239 to GPIO pins of various CPUs (and some other chips).
241 Say Y here if your device has buttons connected
242 directly to such GPIO pins. Your board-specific
243 setup logic must also provide a platform device,
244 with configuration data saying which GPIOs are used.
246 To compile this driver as a module, choose M here: the
247 module will be called gpio_keys.
249 config KEYBOARD_GPIO_POLLED
250 tristate "Polled GPIO buttons"
254 This driver implements support for buttons connected
255 to GPIO pins that are not capable of generating interrupts.
257 Say Y here if your device has buttons connected
258 directly to such GPIO pins. Your board-specific
259 setup logic must also provide a platform device,
260 with configuration data saying which GPIOs are used.
262 To compile this driver as a module, choose M here: the
263 module will be called gpio_keys_polled.
265 config KEYBOARD_TCA6416
266 tristate "TCA6416/TCA6408A Keypad Support"
269 This driver implements basic keypad functionality
270 for keys connected through TCA6416/TCA6408A IO expanders.
272 Say Y here if your device has keys connected to
273 TCA6416/TCA6408A IO expander. Your board-specific setup logic
274 must also provide pin-mask details(of which TCA6416 pins
275 are used for keypad).
277 If enabled the entire TCA6416 device will be managed through
280 To compile this driver as a module, choose M here: the
281 module will be called tca6416_keypad.
283 config KEYBOARD_TCA8418
284 tristate "TCA8418 Keypad Support"
286 select INPUT_MATRIXKMAP
288 This driver implements basic keypad functionality
289 for keys connected through TCA8418 keypad decoder.
291 Say Y here if your device has keys connected to
292 TCA8418 keypad decoder.
294 If enabled the complete TCA8418 device will be managed through
297 To compile this driver as a module, choose M here: the
298 module will be called tca8418_keypad.
300 config KEYBOARD_MATRIX
301 tristate "GPIO driven matrix keypad support"
302 depends on GPIOLIB || COMPILE_TEST
303 select INPUT_MATRIXKMAP
305 Enable support for GPIO driven matrix keypad.
307 To compile this driver as a module, choose M here: the
308 module will be called matrix_keypad.
310 config KEYBOARD_HIL_OLD
311 tristate "HP HIL keyboard support (simple driver)"
312 depends on GSC || HP300
315 The "Human Interface Loop" is a older, 8-channel USB-like
316 controller used in several Hewlett Packard models. This driver
317 was adapted from the one written for m68k/hp300, and implements
318 support for a keyboard attached to the HIL port, but not for
319 any other types of HIL input devices like mice or tablets.
320 However, it has been thoroughly tested and is stable.
322 If you want full HIL support including support for multiple
323 keyboards, mice, and tablets, you have to enable the
324 "HP System Device Controller i8042 Support" in the input/serio
328 tristate "HP HIL keyboard/pointer support"
329 depends on GSC || HP300
335 The "Human Interface Loop" is a older, 8-channel USB-like
336 controller used in several Hewlett Packard models.
337 This driver implements support for HIL-keyboards and pointing
338 devices (mice, tablets, touchscreens) attached
339 to your machine, so normally you should say Y here.
341 config KEYBOARD_HP6XX
342 tristate "HP Jornada 6xx keyboard"
346 Say Y here if you have a HP Jornada 620/660/680/690 and want to
347 support the built-in keyboard.
349 To compile this driver as a module, choose M here: the
350 module will be called jornada680_kbd.
352 config KEYBOARD_HP7XX
353 tristate "HP Jornada 7xx keyboard"
354 depends on SA1100_JORNADA720_SSP && SA1100_SSP
356 Say Y here if you have a HP Jornada 710/720/728 and want to
357 support the built-in keyboard.
359 To compile this driver as a module, choose M here: the
360 module will be called jornada720_kbd.
362 config KEYBOARD_LM8323
363 tristate "LM8323 keypad chip"
365 depends on LEDS_CLASS
367 If you say yes here you get support for the National Semiconductor
368 LM8323 keypad controller.
370 To compile this driver as a module, choose M here: the
371 module will be called lm8323.
373 config KEYBOARD_LM8333
374 tristate "LM8333 keypad chip"
376 select INPUT_MATRIXKMAP
378 If you say yes here you get support for the National Semiconductor
379 LM8333 keypad controller.
381 To compile this driver as a module, choose M here: the
382 module will be called lm8333.
384 config KEYBOARD_LOCOMO
385 tristate "LoCoMo Keyboard Support"
386 depends on SHARP_LOCOMO
388 Say Y here if you are running Linux on a Sharp Zaurus Collie or Poodle based PDA
390 To compile this driver as a module, choose M here: the
391 module will be called locomokbd.
393 config KEYBOARD_LPC32XX
394 tristate "LPC32XX matrix key scanner support"
395 depends on ARCH_LPC32XX && OF
396 select INPUT_MATRIXKMAP
398 Say Y here if you want to use NXP LPC32XX SoC key scanner interface,
399 connected to a key matrix.
401 To compile this driver as a module, choose M here: the
402 module will be called lpc32xx-keys.
404 config KEYBOARD_MAPLE
405 tristate "Maple bus keyboard"
406 depends on SH_DREAMCAST && MAPLE
408 Say Y here if you have a Dreamcast console running Linux and have
409 a keyboard attached to its Maple bus.
411 To compile this driver as a module, choose M here: the
412 module will be called maple_keyb.
414 config KEYBOARD_MAX7359
415 tristate "Maxim MAX7359 Key Switch Controller"
416 select INPUT_MATRIXKMAP
419 If you say yes here you get support for the Maxim MAX7359 Key
420 Switch Controller chip. This providers microprocessors with
421 management of up to 64 key switches
423 To compile this driver as a module, choose M here: the
424 module will be called max7359_keypad.
427 tristate "MELFAS MCS Touchkey"
430 Say Y here if you have the MELFAS MCS5000/5080 touchkey controller
435 To compile this driver as a module, choose M here: the
436 module will be called mcs_touchkey.
438 config KEYBOARD_MPR121
439 tristate "Freescale MPR121 Touchkey"
442 Say Y here if you have Freescale MPR121 touchkey controller
447 To compile this driver as a module, choose M here: the
448 module will be called mpr121_touchkey.
450 config KEYBOARD_SNVS_PWRKEY
451 tristate "IMX SNVS Power Key Driver"
452 depends on ARCH_MXC || COMPILE_TEST
455 This is the snvs powerkey driver for the Freescale i.MX application
456 processors that are newer than i.MX6 SX.
458 To compile this driver as a module, choose M here; the
459 module will be called snvs_pwrkey.
462 tristate "IMX keypad support"
464 select INPUT_MATRIXKMAP
466 Enable support for IMX keypad port.
468 To compile this driver as a module, choose M here: the
469 module will be called imx_keypad.
471 config KEYBOARD_IMX_SC_KEY
472 tristate "IMX SCU Key Driver"
475 This is the system controller key driver for NXP i.MX SoCs with
476 system controller inside.
478 To compile this driver as a module, choose M here: the
479 module will be called imx_sc_key.
481 config KEYBOARD_NEWTON
482 tristate "Newton keyboard"
485 Say Y here if you have a Newton keyboard on a serial port.
487 To compile this driver as a module, choose M here: the
488 module will be called newtonkbd.
490 config KEYBOARD_NOMADIK
491 tristate "ST-Ericsson Nomadik SKE keyboard"
492 depends on (ARCH_NOMADIK || ARCH_U8500)
493 select INPUT_MATRIXKMAP
495 Say Y here if you want to use a keypad provided on the SKE controller
496 used on the Ux500 and Nomadik platforms
498 To compile this driver as a module, choose M here: the
499 module will be called nmk-ske-keypad.
501 config KEYBOARD_NSPIRE
502 tristate "TI-NSPIRE built-in keyboard"
503 depends on ARCH_NSPIRE && OF
504 select INPUT_MATRIXKMAP
506 Say Y here if you want to use the built-in keypad on TI-NSPIRE.
508 To compile this driver as a module, choose M here: the
509 module will be called nspire-keypad.
511 config KEYBOARD_TEGRA
512 tristate "NVIDIA Tegra internal matrix keyboard controller support"
513 depends on ARCH_TEGRA && OF
514 select INPUT_MATRIXKMAP
516 Say Y here if you want to use a matrix keyboard connected directly
517 to the internal keyboard controller on Tegra SoCs.
519 To compile this driver as a module, choose M here: the
520 module will be called tegra-kbc.
522 config KEYBOARD_OPENCORES
523 tristate "OpenCores Keyboard Controller"
526 Say Y here if you want to use the OpenCores Keyboard Controller
527 http://www.opencores.org/project,keyboardcontroller
529 To compile this driver as a module, choose M here; the
530 module will be called opencores-kbd.
532 config KEYBOARD_PXA27x
533 tristate "PXA27x/PXA3xx keypad support"
534 depends on PXA27x || PXA3xx || ARCH_MMP
535 select INPUT_MATRIXKMAP
537 Enable support for PXA27x/PXA3xx keypad controller.
539 To compile this driver as a module, choose M here: the
540 module will be called pxa27x_keypad.
542 config KEYBOARD_PXA930_ROTARY
543 tristate "PXA930/PXA935 Enhanced Rotary Controller Support"
544 depends on CPU_PXA930 || CPU_PXA935
546 Enable support for PXA930/PXA935 Enhanced Rotary Controller.
548 To compile this driver as a module, choose M here: the
549 module will be called pxa930_rotary.
551 config KEYBOARD_PMIC8XXX
552 tristate "Qualcomm PMIC8XXX keypad support"
553 depends on MFD_PM8XXX
554 select INPUT_MATRIXKMAP
556 Say Y here if you want to enable the driver for the PMIC8XXX
557 keypad provided as a reference design from Qualcomm. This is intended
558 to support upto 18x8 matrix based keypad design.
560 To compile this driver as a module, choose M here: the module will
561 be called pmic8xxx-keypad.
563 config KEYBOARD_SAMSUNG
564 tristate "Samsung keypad support"
566 select INPUT_MATRIXKMAP
568 Say Y here if you want to use the keypad on your Samsung mobile
571 To compile this driver as a module, choose M here: the
572 module will be called samsung-keypad.
574 config KEYBOARD_GOLDFISH_EVENTS
575 depends on GOLDFISH || COMPILE_TEST
576 tristate "Generic Input Event device for Goldfish"
578 Say Y here to get an input event device for the Goldfish virtual
581 To compile this driver as a module, choose M here: the
582 module will be called goldfish-events.
584 config KEYBOARD_STOWAWAY
585 tristate "Stowaway keyboard"
588 Say Y here if you have a Stowaway keyboard on a serial port.
589 Stowaway compatible keyboards like Dicota Input-PDA keyboard
590 are also supported by this driver.
592 To compile this driver as a module, choose M here: the
593 module will be called stowaway.
595 config KEYBOARD_ST_KEYSCAN
596 tristate "STMicroelectronics keyscan support"
597 depends on ARCH_STI || COMPILE_TEST
598 select INPUT_MATRIXKMAP
600 Say Y here if you want to use a keypad attached to the keyscan block
601 on some STMicroelectronics SoC devices.
603 To compile this driver as a module, choose M here: the
604 module will be called st-keyscan.
606 config KEYBOARD_SUNKBD
607 tristate "Sun Type 4 and Type 5 keyboard"
610 Say Y here if you want to use a Sun Type 4 or Type 5 keyboard,
611 connected either to the Sun keyboard connector or to an serial
612 (RS-232) port via a simple adapter.
614 To compile this driver as a module, choose M here: the
615 module will be called sunkbd.
617 config KEYBOARD_SH_KEYSC
618 tristate "SuperH KEYSC keypad support"
619 depends on ARCH_SHMOBILE || COMPILE_TEST
621 Say Y here if you want to use a keypad attached to the KEYSC block
622 on SuperH processors such as sh7722 and sh7343.
624 To compile this driver as a module, choose M here: the
625 module will be called sh_keysc.
627 config KEYBOARD_STMPE
628 tristate "STMPE keypad support"
631 select INPUT_MATRIXKMAP
633 Say Y here if you want to use the keypad controller on STMPE I/O
636 To compile this driver as a module, choose M here: the module will be
639 config KEYBOARD_SUN4I_LRADC
640 tristate "Allwinner sun4i low res adc attached tablet keys support"
641 depends on ARCH_SUNXI
643 This selects support for the Allwinner low res adc attached tablet
644 keys found on Allwinner sunxi SoCs.
646 To compile this driver as a module, choose M here: the
647 module will be called sun4i-lradc-keys.
649 config KEYBOARD_DAVINCI
650 tristate "TI DaVinci Key Scan"
651 depends on ARCH_DAVINCI_DM365
653 Say Y to enable keypad module support for the TI DaVinci
656 To compile this driver as a module, choose M here: the
657 module will be called davinci_keyscan.
659 config KEYBOARD_IPAQ_MICRO
660 tristate "Buttons on Micro SoC (iPaq h3100,h3600,h3700)"
661 depends on MFD_IPAQ_MICRO
663 Say Y to enable support for the buttons attached to
664 Micro peripheral controller on iPAQ h3100/h3600/h3700
666 To compile this driver as a module, choose M here: the
667 module will be called ipaq-micro-keys.
670 tristate "TI OMAP keypad support"
671 depends on ARCH_OMAP1
672 select INPUT_MATRIXKMAP
674 Say Y here if you want to use the OMAP keypad.
676 To compile this driver as a module, choose M here: the
677 module will be called omap-keypad.
679 config KEYBOARD_OMAP4
680 tristate "TI OMAP4+ keypad support"
681 depends on OF || ARCH_OMAP2PLUS
682 select INPUT_MATRIXKMAP
684 Say Y here if you want to use the OMAP4+ keypad.
686 To compile this driver as a module, choose M here: the
687 module will be called omap4-keypad.
689 config KEYBOARD_SPEAR
690 tristate "ST SPEAR keyboard support"
691 depends on PLAT_SPEAR
692 select INPUT_MATRIXKMAP
694 Say Y here if you want to use the SPEAR keyboard.
696 To compile this driver as a module, choose M here: the
697 module will be called spear-keboard.
699 config KEYBOARD_TC3589X
700 tristate "TC3589X Keypad support"
701 depends on MFD_TC3589X
702 select INPUT_MATRIXKMAP
704 Say Y here if you want to use the keypad controller on
705 TC35892/3 I/O expander.
707 To compile this driver as a module, choose M here: the
708 module will be called tc3589x-keypad.
710 config KEYBOARD_TM2_TOUCHKEY
711 tristate "TM2 touchkey support"
713 depends on LEDS_CLASS
715 Say Y here to enable device driver for tm2-touchkey with
716 LED control for the Exynos5433 TM2 board.
718 To compile this driver as a module, choose M here.
719 module will be called tm2-touchkey.
721 config KEYBOARD_TWL4030
722 tristate "TI TWL4030/TWL5030/TPS659x0 keypad support"
723 depends on TWL4030_CORE
724 select INPUT_MATRIXKMAP
726 Say Y here if your board use the keypad controller on
727 TWL4030 family chips. It's safe to say enable this
728 even on boards that don't use the keypad controller.
730 To compile this driver as a module, choose M here: the
731 module will be called twl4030_keypad.
733 config KEYBOARD_XTKBD
734 tristate "XT keyboard"
737 Say Y here if you want to use the old IBM PC/XT keyboard (or
738 compatible) on your system. This is only possible with a
739 parallel port keyboard adapter, you cannot connect it to the
740 keyboard port on a PC that runs Linux.
742 To compile this driver as a module, choose M here: the
743 module will be called xtkbd.
745 config KEYBOARD_CROS_EC
746 tristate "ChromeOS EC keyboard"
747 select INPUT_MATRIXKMAP
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.