1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Input device configuration
4#
5
6menu "Input device support"
7
8config INPUT
9	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EXPERT
10	default y
11	help
12	  Say Y here if you have any input device (mouse, keyboard, tablet,
13	  joystick, steering wheel ...) connected to your system and want
14	  it to be available to applications. This includes standard PS/2
15	  keyboard and mouse.
16
17	  Say N here if you have a headless (no monitor, no keyboard) system.
18
19	  More information is available: <file:Documentation/input/input.rst>
20
21	  If unsure, say Y.
22
23	  To compile this driver as a module, choose M here: the
24	  module will be called input.
25
26if INPUT
27
28config INPUT_LEDS
29	tristate "Export input device LEDs in sysfs"
30	depends on LEDS_CLASS
31	default INPUT
32	help
33	  Say Y here if you would like to export LEDs on input devices
34	  as standard LED class devices in sysfs.
35
36	  If unsure, say Y.
37
38	  To compile this driver as a module, choose M here: the
39	  module will be called input-leds.
40
41config INPUT_FF_MEMLESS
42	tristate "Support for memoryless force-feedback devices"
43	help
44	  Say Y here if you have memoryless force-feedback input device
45	  such as Logitech WingMan Force 3D, ThrustMaster FireStorm Dual
46	  Power 2, or similar. You will also need to enable hardware-specific
47	  driver.
48
49	  If unsure, say N.
50
51	  To compile this driver as a module, choose M here: the
52	  module will be called ff-memless.
53
54config INPUT_SPARSEKMAP
55	tristate "Sparse keymap support library"
56	help
57	  Say Y here if you are using a driver for an input
58	  device that uses sparse keymap. This option is only
59	  useful for out-of-tree drivers since in-tree drivers
60	  select it automatically.
61
62	  If unsure, say N.
63
64	  To compile this driver as a module, choose M here: the
65	  module will be called sparse-keymap.
66
67config INPUT_MATRIXKMAP
68	tristate "Matrix keymap support library"
69	help
70	  Say Y here if you are using a driver for an input
71	  device that uses matrix keymap. This option is only
72	  useful for out-of-tree drivers since in-tree drivers
73	  select it automatically.
74
75	  If unsure, say N.
76
77	  To compile this driver as a module, choose M here: the
78	  module will be called matrix-keymap.
79
80config INPUT_VIVALDIFMAP
81	tristate
82	help
83	  ChromeOS Vivaldi keymap support library. This is a hidden
84	  option so that drivers can use common code to parse and
85	  expose the vivaldi function row keymap.
86
87comment "Userland interfaces"
88
89config INPUT_MOUSEDEV
90	tristate "Mouse interface"
91	help
92	  Say Y here if you want your mouse to be accessible as char devices
93	  13:32+ - /dev/input/mouseX and 13:63 - /dev/input/mice as an
94	  emulated IntelliMouse Explorer PS/2 mouse. That way, all user space
95	  programs (including SVGAlib, GPM and X) will be able to use your
96	  mouse.
97
98	  If unsure, say Y.
99
100	  To compile this driver as a module, choose M here: the
101	  module will be called mousedev.
102
103config INPUT_MOUSEDEV_PSAUX
104	bool "Provide legacy /dev/psaux device"
105	depends on INPUT_MOUSEDEV
106	help
107	  Say Y here if you want your mouse also be accessible as char device
108	  10:1 - /dev/psaux. The data available through /dev/psaux is exactly
109	  the same as the data from /dev/input/mice.
110
111	  If unsure, say Y.
112
113config INPUT_MOUSEDEV_SCREEN_X
114	int "Horizontal screen resolution"
115	depends on INPUT_MOUSEDEV
116	default "1024"
117	help
118	  If you're using a digitizer, or a graphic tablet, and want to use
119	  it as a mouse then the mousedev driver needs to know the X window
120	  screen resolution you are using to correctly scale the data. If
121	  you're not using a digitizer, this value is ignored.
122
123config INPUT_MOUSEDEV_SCREEN_Y
124	int "Vertical screen resolution"
125	depends on INPUT_MOUSEDEV
126	default "768"
127	help
128	  If you're using a digitizer, or a graphic tablet, and want to use
129	  it as a mouse then the mousedev driver needs to know the X window
130	  screen resolution you are using to correctly scale the data. If
131	  you're not using a digitizer, this value is ignored.
132
133config INPUT_JOYDEV
134	tristate "Joystick interface"
135	help
136	  Say Y here if you want your joystick or gamepad to be
137	  accessible as char device 13:0+ - /dev/input/jsX device.
138
139	  If unsure, say Y.
140
141	  More information is available: <file:Documentation/input/joydev/joystick.rst>
142
143	  To compile this driver as a module, choose M here: the
144	  module will be called joydev.
145
146config INPUT_EVDEV
147	tristate "Event interface"
148	help
149	  Say Y here if you want your input device events be accessible
150	  under char device 13:64+ - /dev/input/eventX in a generic way.
151
152	  To compile this driver as a module, choose M here: the
153	  module will be called evdev.
154
155config INPUT_EVBUG
156	tristate "Event debugging"
157	help
158	  Say Y here if you have a problem with the input subsystem and
159	  want all events (keypresses, mouse movements), to be output to
160	  the system log. While this is useful for debugging, it's also
161	  a security threat - your keypresses include your passwords, of
162	  course.
163
164	  If unsure, say N.
165
166	  To compile this driver as a module, choose M here: the
167	  module will be called evbug.
168
169config INPUT_KUNIT_TEST
170	tristate "KUnit tests for Input" if !KUNIT_ALL_TESTS
171	depends on INPUT && KUNIT
172	default KUNIT_ALL_TESTS
173	help
174	  Say Y here if you want to build the KUnit tests for the input
175	  subsystem.
176
177	  If in doubt, say "N".
178
179config INPUT_APMPOWER
180	tristate "Input Power Event -> APM Bridge" if EXPERT
181	depends on INPUT && APM_EMULATION
182	help
183	  Say Y here if you want suspend key events to trigger a user
184	  requested suspend through APM. This is useful on embedded
185	  systems where such behaviour is desired without userspace
186	  interaction. If unsure, say N.
187
188	  To compile this driver as a module, choose M here: the
189	  module will be called apm-power.
190
191comment "Input Device Drivers"
192
193source "drivers/input/keyboard/Kconfig"
194
195source "drivers/input/mouse/Kconfig"
196
197source "drivers/input/joystick/Kconfig"
198
199source "drivers/input/tablet/Kconfig"
200
201source "drivers/input/touchscreen/Kconfig"
202
203source "drivers/input/misc/Kconfig"
204
205source "drivers/input/rmi4/Kconfig"
206
207endif
208
209menu "Hardware I/O ports"
210
211source "drivers/input/serio/Kconfig"
212
213source "drivers/input/gameport/Kconfig"
214
215endmenu
216
217endmenu
218
219