xref: /openbmc/linux/drivers/input/keyboard/Kconfig (revision 93d90ad7)
1#
2# Input core configuration
3#
4menuconfig INPUT_KEYBOARD
5	bool "Keyboards"
6	default y
7	help
8	  Say Y here, and a list of supported keyboards will be displayed.
9	  This option doesn't affect the kernel.
10
11	  If unsure, say Y.
12
13if INPUT_KEYBOARD
14
15config KEYBOARD_ADP5520
16	tristate "Keypad Support for ADP5520 PMIC"
17	depends on PMIC_ADP5520
18	help
19	  This option enables support for the keypad scan matrix
20	  on Analog Devices ADP5520 PMICs.
21
22	  To compile this driver as a module, choose M here: the module will
23	  be called adp5520-keys.
24
25config KEYBOARD_ADP5588
26	tristate "ADP5588/87 I2C QWERTY Keypad and IO Expander"
27	depends on I2C
28	help
29	  Say Y here if you want to use a ADP5588/87 attached to your
30	  system I2C bus.
31
32	  To compile this driver as a module, choose M here: the
33	  module will be called adp5588-keys.
34
35config KEYBOARD_ADP5589
36	tristate "ADP5585/ADP5589 I2C QWERTY Keypad and IO Expander"
37	depends on I2C
38	help
39	  Say Y here if you want to use a ADP5585/ADP5589 attached to your
40	  system I2C bus.
41
42	  To compile this driver as a module, choose M here: the
43	  module will be called adp5589-keys.
44
45config KEYBOARD_AMIGA
46	tristate "Amiga keyboard"
47	depends on AMIGA
48	help
49	  Say Y here if you are running Linux on any AMIGA and have a keyboard
50	  attached.
51
52	  To compile this driver as a module, choose M here: the
53	  module will be called amikbd.
54
55config ATARI_KBD_CORE
56	bool
57
58config KEYBOARD_ATARI
59	tristate "Atari keyboard"
60	depends on ATARI
61	select ATARI_KBD_CORE
62	help
63	  Say Y here if you are running Linux on any Atari and have a keyboard
64	  attached.
65
66	  To compile this driver as a module, choose M here: the
67	  module will be called atakbd.
68
69config KEYBOARD_ATKBD
70	tristate "AT keyboard"
71	default y
72	select SERIO
73	select SERIO_LIBPS2
74	select SERIO_I8042 if ARCH_MIGHT_HAVE_PC_SERIO
75	select SERIO_GSCPS2 if GSC
76	help
77	  Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
78	  you'll need this, unless you have a different type keyboard (USB, ADB
79	  or other). This also works for AT and PS/2 keyboards connected over a
80	  PS/2 to serial converter.
81
82	  If unsure, say Y.
83
84	  To compile this driver as a module, choose M here: the
85	  module will be called atkbd.
86
87config KEYBOARD_ATKBD_HP_KEYCODES
88	bool "Use HP keyboard scancodes"
89	depends on PARISC && KEYBOARD_ATKBD
90	default y
91	help
92	  Say Y here if you have a PA-RISC machine and want to use an AT or
93	  PS/2 keyboard, and your keyboard uses keycodes that are specific to
94	  PA-RISC keyboards.
95
96	  Say N if you use a standard keyboard.
97
98config KEYBOARD_ATKBD_RDI_KEYCODES
99	bool "Use PrecisionBook keyboard scancodes"
100	depends on KEYBOARD_ATKBD_HP_KEYCODES
101	default n
102	help
103	  If you have an RDI PrecisionBook, say Y here if you want to use its
104	  built-in keyboard (as opposed to an external keyboard).
105
106	  The PrecisionBook has five keys that conflict with those used by most
107	  AT and PS/2 keyboards. These are as follows:
108
109	    PrecisionBook    Standard AT or PS/2
110
111	    F1               F12
112	    Left Ctrl        Left Alt
113	    Caps Lock        Left Ctrl
114	    Right Ctrl       Caps Lock
115	    Left             102nd key (the key to the right of Left Shift)
116
117	  If you say N here, and use the PrecisionBook keyboard, then each key
118	  in the left-hand column will be interpreted as the corresponding key
119	  in the right-hand column.
120
121	  If you say Y here, and use an external keyboard, then each key in the
122	  right-hand column will be interpreted as the key shown in the
123	  left-hand column.
124
125config KEYBOARD_QT1070
126       tristate "Atmel AT42QT1070 Touch Sensor Chip"
127       depends on I2C
128       help
129         Say Y here if you want to use Atmel AT42QT1070 QTouch
130         Sensor chip as input device.
131
132         To compile this driver as a module, choose M here:
133         the module will be called qt1070
134
135config KEYBOARD_QT2160
136	tristate "Atmel AT42QT2160 Touch Sensor Chip"
137	depends on I2C
138	help
139	  If you say yes here you get support for Atmel AT42QT2160 Touch
140	  Sensor chip as a keyboard input.
141
142	  This driver can also be built as a module. If so, the module
143	  will be called qt2160.
144
145config KEYBOARD_BFIN
146	tristate "Blackfin BF54x keypad support"
147	depends on (BF54x && !BF544)
148	help
149	  Say Y here if you want to use the BF54x keypad.
150
151	  To compile this driver as a module, choose M here: the
152	  module will be called bf54x-keys.
153
154config KEYBOARD_CLPS711X
155	tristate "CLPS711X Keypad support"
156	depends on OF_GPIO && (ARCH_CLPS711X || COMPILE_TEST)
157	select INPUT_MATRIXKMAP
158	select INPUT_POLLDEV
159	help
160	  Say Y here to enable the matrix keypad on the Cirrus Logic
161	  CLPS711X CPUs.
162
163	  To compile this driver as a module, choose M here: the
164	  module will be called clps711x-keypad.
165
166config KEYBOARD_LKKBD
167	tristate "DECstation/VAXstation LK201/LK401 keyboard"
168	select SERIO
169	help
170	  Say Y here if you want to use a LK201 or LK401 style serial
171	  keyboard. This keyboard is also useable on PCs if you attach
172	  it with the inputattach program. The connector pinout is
173	  described within lkkbd.c.
174
175	  To compile this driver as a module, choose M here: the
176	  module will be called lkkbd.
177
178config KEYBOARD_EP93XX
179	tristate "EP93xx Matrix Keypad support"
180	depends on ARCH_EP93XX
181	select INPUT_MATRIXKMAP
182	help
183	  Say Y here to enable the matrix keypad on the Cirrus EP93XX.
184
185	  To compile this driver as a module, choose M here: the
186	  module will be called ep93xx_keypad.
187
188config KEYBOARD_GPIO
189	tristate "GPIO Buttons"
190	depends on GPIOLIB
191	help
192	  This driver implements support for buttons connected
193	  to GPIO pins of various CPUs (and some other chips).
194
195	  Say Y here if your device has buttons connected
196	  directly to such GPIO pins.  Your board-specific
197	  setup logic must also provide a platform device,
198	  with configuration data saying which GPIOs are used.
199
200	  To compile this driver as a module, choose M here: the
201	  module will be called gpio_keys.
202
203config KEYBOARD_GPIO_POLLED
204	tristate "Polled GPIO buttons"
205	depends on GPIOLIB
206	select INPUT_POLLDEV
207	help
208	  This driver implements support for buttons connected
209	  to GPIO pins that are not capable of generating interrupts.
210
211	  Say Y here if your device has buttons connected
212	  directly to such GPIO pins.  Your board-specific
213	  setup logic must also provide a platform device,
214	  with configuration data saying which GPIOs are used.
215
216	  To compile this driver as a module, choose M here: the
217	  module will be called gpio_keys_polled.
218
219config KEYBOARD_TCA6416
220	tristate "TCA6416/TCA6408A Keypad Support"
221	depends on I2C
222	help
223	  This driver implements basic keypad functionality
224	  for keys connected through TCA6416/TCA6408A IO expanders.
225
226	  Say Y here if your device has keys connected to
227	  TCA6416/TCA6408A IO expander. Your board-specific setup logic
228	  must also provide pin-mask details(of which TCA6416 pins
229	  are used for keypad).
230
231	  If enabled the entire TCA6416 device will be managed through
232	  this driver.
233
234	  To compile this driver as a module, choose M here: the
235	  module will be called tca6416_keypad.
236
237config KEYBOARD_TCA8418
238	tristate "TCA8418 Keypad Support"
239	depends on I2C
240	select INPUT_MATRIXKMAP
241	help
242	  This driver implements basic keypad functionality
243	  for keys connected through TCA8418 keypad decoder.
244
245	  Say Y here if your device has keys connected to
246	  TCA8418 keypad decoder.
247
248	  If enabled the complete TCA8418 device will be managed through
249	  this driver.
250
251	  To compile this driver as a module, choose M here: the
252	  module will be called tca8418_keypad.
253
254config KEYBOARD_MATRIX
255	tristate "GPIO driven matrix keypad support"
256	depends on GPIOLIB
257	select INPUT_MATRIXKMAP
258	help
259	  Enable support for GPIO driven matrix keypad.
260
261	  To compile this driver as a module, choose M here: the
262	  module will be called matrix_keypad.
263
264config KEYBOARD_HIL_OLD
265	tristate "HP HIL keyboard support (simple driver)"
266	depends on GSC || HP300
267	default y
268	help
269	  The "Human Interface Loop" is a older, 8-channel USB-like
270	  controller used in several Hewlett Packard models. This driver
271	  was adapted from the one written for m68k/hp300, and implements
272	  support for a keyboard attached to the HIL port, but not for
273	  any other types of HIL input devices like mice or tablets.
274	  However, it has been thoroughly tested and is stable.
275
276	  If you want full HIL support including support for multiple
277	  keyboards, mice, and tablets, you have to enable the
278	  "HP System Device Controller i8042 Support" in the input/serio
279	  submenu.
280
281config KEYBOARD_HIL
282	tristate "HP HIL keyboard/pointer support"
283	depends on GSC || HP300
284	default y
285	select HP_SDC
286	select HIL_MLC
287	select SERIO
288	help
289	  The "Human Interface Loop" is a older, 8-channel USB-like
290	  controller used in several Hewlett Packard models.
291	  This driver implements support for HIL-keyboards and pointing
292	  devices (mice, tablets, touchscreens) attached
293	  to your machine, so normally you should say Y here.
294
295config KEYBOARD_HP6XX
296	tristate "HP Jornada 6xx keyboard"
297	depends on SH_HP6XX
298	select INPUT_POLLDEV
299	help
300	  Say Y here if you have a HP Jornada 620/660/680/690 and want to
301	  support the built-in keyboard.
302
303	  To compile this driver as a module, choose M here: the
304	  module will be called jornada680_kbd.
305
306config KEYBOARD_HP7XX
307	tristate "HP Jornada 7xx keyboard"
308	depends on SA1100_JORNADA720_SSP && SA1100_SSP
309	help
310	  Say Y here if you have a HP Jornada 710/720/728 and want to
311	  support the built-in keyboard.
312
313	  To compile this driver as a module, choose M here: the
314	  module will be called jornada720_kbd.
315
316config KEYBOARD_LM8323
317	tristate "LM8323 keypad chip"
318	depends on I2C
319	depends on LEDS_CLASS
320	help
321	  If you say yes here you get support for the National Semiconductor
322	  LM8323 keypad controller.
323
324	  To compile this driver as a module, choose M here: the
325	  module will be called lm8323.
326
327config KEYBOARD_LM8333
328	tristate "LM8333 keypad chip"
329	depends on I2C
330	select INPUT_MATRIXKMAP
331	help
332	  If you say yes here you get support for the National Semiconductor
333	  LM8333 keypad controller.
334
335	  To compile this driver as a module, choose M here: the
336	  module will be called lm8333.
337
338config KEYBOARD_LOCOMO
339	tristate "LoCoMo Keyboard Support"
340	depends on SHARP_LOCOMO
341	help
342	  Say Y here if you are running Linux on a Sharp Zaurus Collie or Poodle based PDA
343
344	  To compile this driver as a module, choose M here: the
345	  module will be called locomokbd.
346
347config KEYBOARD_LPC32XX
348	tristate "LPC32XX matrix key scanner support"
349	depends on ARCH_LPC32XX && OF
350	select INPUT_MATRIXKMAP
351	help
352	  Say Y here if you want to use NXP LPC32XX SoC key scanner interface,
353	  connected to a key matrix.
354
355	  To compile this driver as a module, choose M here: the
356	  module will be called lpc32xx-keys.
357
358config KEYBOARD_MAPLE
359	tristate "Maple bus keyboard"
360	depends on SH_DREAMCAST && MAPLE
361	help
362	  Say Y here if you have a Dreamcast console running Linux and have
363	  a keyboard attached to its Maple bus.
364
365	  To compile this driver as a module, choose M here: the
366	  module will be called maple_keyb.
367
368config KEYBOARD_MAX7359
369	tristate "Maxim MAX7359 Key Switch Controller"
370	depends on I2C
371	help
372	  If you say yes here you get support for the Maxim MAX7359 Key
373	  Switch Controller chip. This providers microprocessors with
374	  management of up to 64 key switches
375
376	  To compile this driver as a module, choose M here: the
377	  module will be called max7359_keypad.
378
379config KEYBOARD_MCS
380	tristate "MELFAS MCS Touchkey"
381	depends on I2C
382	help
383	  Say Y here if you have the MELFAS MCS5000/5080 touchkey controller
384	  chip in your system.
385
386	  If unsure, say N.
387
388	  To compile this driver as a module, choose M here: the
389	  module will be called mcs_touchkey.
390
391config KEYBOARD_MPR121
392	tristate "Freescale MPR121 Touchkey"
393	depends on I2C
394	help
395	  Say Y here if you have Freescale MPR121 touchkey controller
396	  chip in your system.
397
398	  If unsure, say N.
399
400	  To compile this driver as a module, choose M here: the
401	  module will be called mpr121_touchkey.
402
403config KEYBOARD_IMX
404	tristate "IMX keypad support"
405	depends on ARCH_MXC
406	select INPUT_MATRIXKMAP
407	help
408	  Enable support for IMX keypad port.
409
410	  To compile this driver as a module, choose M here: the
411	  module will be called imx_keypad.
412
413config KEYBOARD_NEWTON
414	tristate "Newton keyboard"
415	select SERIO
416	help
417	  Say Y here if you have a Newton keyboard on a serial port.
418
419	  To compile this driver as a module, choose M here: the
420	  module will be called newtonkbd.
421
422config KEYBOARD_NOMADIK
423	tristate "ST-Ericsson Nomadik SKE keyboard"
424	depends on (ARCH_NOMADIK || ARCH_U8500)
425	select INPUT_MATRIXKMAP
426	help
427	  Say Y here if you want to use a keypad provided on the SKE controller
428	  used on the Ux500 and Nomadik platforms
429
430	  To compile this driver as a module, choose M here: the
431	  module will be called nmk-ske-keypad.
432
433config KEYBOARD_NSPIRE
434	tristate "TI-NSPIRE built-in keyboard"
435	depends on ARCH_NSPIRE && OF
436	select INPUT_MATRIXKMAP
437	help
438	  Say Y here if you want to use the built-in keypad on TI-NSPIRE.
439
440	  To compile this driver as a module, choose M here: the
441	  module will be called nspire-keypad.
442
443config KEYBOARD_TEGRA
444	tristate "NVIDIA Tegra internal matrix keyboard controller support"
445	depends on ARCH_TEGRA && OF
446	select INPUT_MATRIXKMAP
447	help
448	  Say Y here if you want to use a matrix keyboard connected directly
449	  to the internal keyboard controller on Tegra SoCs.
450
451	  To compile this driver as a module, choose M here: the
452	  module will be called tegra-kbc.
453
454config KEYBOARD_OPENCORES
455	tristate "OpenCores Keyboard Controller"
456	depends on HAS_IOMEM
457	help
458	  Say Y here if you want to use the OpenCores Keyboard Controller
459	  http://www.opencores.org/project,keyboardcontroller
460
461	  To compile this driver as a module, choose M here; the
462	  module will be called opencores-kbd.
463
464config KEYBOARD_PXA27x
465	tristate "PXA27x/PXA3xx keypad support"
466	depends on PXA27x || PXA3xx || ARCH_MMP
467	select INPUT_MATRIXKMAP
468	help
469	  Enable support for PXA27x/PXA3xx keypad controller.
470
471	  To compile this driver as a module, choose M here: the
472	  module will be called pxa27x_keypad.
473
474config KEYBOARD_PXA930_ROTARY
475	tristate "PXA930/PXA935 Enhanced Rotary Controller Support"
476	depends on CPU_PXA930 || CPU_PXA935
477	help
478	  Enable support for PXA930/PXA935 Enhanced Rotary Controller.
479
480	  To compile this driver as a module, choose M here: the
481	  module will be called pxa930_rotary.
482
483config KEYBOARD_PMIC8XXX
484	tristate "Qualcomm PMIC8XXX keypad support"
485	depends on MFD_PM8XXX
486	select INPUT_MATRIXKMAP
487	help
488	  Say Y here if you want to enable the driver for the PMIC8XXX
489	  keypad provided as a reference design from Qualcomm. This is intended
490	  to support upto 18x8 matrix based keypad design.
491
492	  To compile this driver as a module, choose M here: the module will
493	  be called pmic8xxx-keypad.
494
495config KEYBOARD_SAMSUNG
496	tristate "Samsung keypad support"
497	depends on HAVE_CLK
498	select INPUT_MATRIXKMAP
499	help
500	  Say Y here if you want to use the keypad on your Samsung mobile
501	  device.
502
503	  To compile this driver as a module, choose M here: the
504	  module will be called samsung-keypad.
505
506config KEYBOARD_GOLDFISH_EVENTS
507	depends on GOLDFISH
508	tristate "Generic Input Event device for Goldfish"
509	help
510	  Say Y here to get an input event device for the Goldfish virtual
511	  device emulator.
512
513	  To compile this driver as a module, choose M here: the
514	  module will be called goldfish-events.
515
516config KEYBOARD_STOWAWAY
517	tristate "Stowaway keyboard"
518	select SERIO
519	help
520	  Say Y here if you have a Stowaway keyboard on a serial port.
521	  Stowaway compatible keyboards like Dicota Input-PDA keyboard
522	  are also supported by this driver.
523
524	  To compile this driver as a module, choose M here: the
525	  module will be called stowaway.
526
527config KEYBOARD_ST_KEYSCAN
528	tristate "STMicroelectronics keyscan support"
529	depends on ARCH_STI || COMPILE_TEST
530	select INPUT_MATRIXKMAP
531	help
532	  Say Y here if you want to use a keypad attached to the keyscan block
533	  on some STMicroelectronics SoC devices.
534
535	  To compile this driver as a module, choose M here: the
536	  module will be called st-keyscan.
537
538config KEYBOARD_SUNKBD
539	tristate "Sun Type 4 and Type 5 keyboard"
540	select SERIO
541	help
542	  Say Y here if you want to use a Sun Type 4 or Type 5 keyboard,
543	  connected either to the Sun keyboard connector or to an serial
544	  (RS-232) port via a simple adapter.
545
546	  To compile this driver as a module, choose M here: the
547	  module will be called sunkbd.
548
549config KEYBOARD_SH_KEYSC
550	tristate "SuperH KEYSC keypad support"
551	depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
552	help
553	  Say Y here if you want to use a keypad attached to the KEYSC block
554	  on SuperH processors such as sh7722 and sh7343.
555
556	  To compile this driver as a module, choose M here: the
557	  module will be called sh_keysc.
558
559config KEYBOARD_STMPE
560	tristate "STMPE keypad support"
561	depends on MFD_STMPE
562	depends on OF
563	select INPUT_MATRIXKMAP
564	help
565	  Say Y here if you want to use the keypad controller on STMPE I/O
566	  expanders.
567
568	  To compile this driver as a module, choose M here: the module will be
569	  called stmpe-keypad.
570
571config KEYBOARD_DAVINCI
572	tristate "TI DaVinci Key Scan"
573	depends on ARCH_DAVINCI_DM365
574	help
575	  Say Y to enable keypad module support for the TI DaVinci
576	  platforms (DM365).
577
578	  To compile this driver as a module, choose M here: the
579	  module will be called davinci_keyscan.
580
581config KEYBOARD_OMAP
582	tristate "TI OMAP keypad support"
583	depends on ARCH_OMAP1
584	select INPUT_MATRIXKMAP
585	help
586	  Say Y here if you want to use the OMAP keypad.
587
588	  To compile this driver as a module, choose M here: the
589	  module will be called omap-keypad.
590
591config KEYBOARD_OMAP4
592	tristate "TI OMAP4+ keypad support"
593	depends on OF || ARCH_OMAP2PLUS
594	select INPUT_MATRIXKMAP
595	help
596	  Say Y here if you want to use the OMAP4+ keypad.
597
598	  To compile this driver as a module, choose M here: the
599	  module will be called omap4-keypad.
600
601config KEYBOARD_SPEAR
602	tristate "ST SPEAR keyboard support"
603	depends on PLAT_SPEAR
604	select INPUT_MATRIXKMAP
605	help
606	  Say Y here if you want to use the SPEAR keyboard.
607
608	  To compile this driver as a module, choose M here: the
609	  module will be called spear-keboard.
610
611config KEYBOARD_TC3589X
612	tristate "TC3589X Keypad support"
613	depends on MFD_TC3589X
614	select INPUT_MATRIXKMAP
615	help
616	  Say Y here if you want to use the keypad controller on
617	  TC35892/3 I/O expander.
618
619	  To compile this driver as a module, choose M here: the
620	  module will be called tc3589x-keypad.
621
622config KEYBOARD_TWL4030
623	tristate "TI TWL4030/TWL5030/TPS659x0 keypad support"
624	depends on TWL4030_CORE
625	select INPUT_MATRIXKMAP
626	help
627	  Say Y here if your board use the keypad controller on
628	  TWL4030 family chips.  It's safe to say enable this
629	  even on boards that don't use the keypad controller.
630
631	  To compile this driver as a module, choose M here: the
632	  module will be called twl4030_keypad.
633
634config KEYBOARD_XTKBD
635	tristate "XT keyboard"
636	select SERIO
637	help
638	  Say Y here if you want to use the old IBM PC/XT keyboard (or
639	  compatible) on your system. This is only possible with a
640	  parallel port keyboard adapter, you cannot connect it to the
641	  keyboard port on a PC that runs Linux.
642
643	  To compile this driver as a module, choose M here: the
644	  module will be called xtkbd.
645
646config KEYBOARD_W90P910
647	tristate "W90P910 Matrix Keypad support"
648	depends on ARCH_W90X900
649	select INPUT_MATRIXKMAP
650	help
651	  Say Y here to enable the matrix keypad on evaluation board
652	  based on W90P910.
653
654	  To compile this driver as a module, choose M here: the
655	  module will be called w90p910_keypad.
656
657config KEYBOARD_CROS_EC
658	tristate "ChromeOS EC keyboard"
659	select INPUT_MATRIXKMAP
660	depends on MFD_CROS_EC
661	help
662	  Say Y here to enable the matrix keyboard used by ChromeOS devices
663	  and implemented on the ChromeOS EC. You must enable one bus option
664	  (MFD_CROS_EC_I2C or MFD_CROS_EC_SPI) to use this.
665
666	  To compile this driver as a module, choose M here: the
667	  module will be called cros_ec_keyb.
668
669config KEYBOARD_CAP11XX
670	tristate "Microchip CAP11XX based touch sensors"
671	depends on OF && I2C
672	select REGMAP_I2C
673	help
674	  Say Y here to enable the CAP11XX touch sensor driver.
675
676	  To compile this driver as a module, choose M here: the
677	  module will be called cap11xx.
678
679endif
680