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