xref: /openbmc/linux/drivers/hid/Kconfig (revision f5c27da4)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# HID driver configuration
4#
5menuconfig HID_SUPPORT
6	bool "HID bus support"
7	default y
8	depends on INPUT
9	help
10	  This option adds core support for human interface device (HID).
11	  You will also need drivers from the following menu to make use of it.
12
13if HID_SUPPORT
14
15config HID
16	tristate "HID bus core support"
17	default y
18	help
19	  A human interface device (HID) is a type of computer device that
20	  interacts directly with and takes input from humans. The term "HID"
21	  most commonly used to refer to the USB-HID specification, but other
22	  devices (such as, but not strictly limited to, Bluetooth) are
23	  designed using HID specification (this involves certain keyboards,
24	  mice, tablets, etc). This option adds the HID bus to the kernel,
25	  together with generic HID layer code. The HID devices are added and
26	  removed from the HID bus by the transport-layer drivers, such as
27	  usbhid (USB_HID) and hidp (BT_HIDP).
28
29	  For docs and specs, see https://www.usb.org/developers/hidpage/
30
31	  If unsure, say Y.
32
33if HID
34
35config HID_BATTERY_STRENGTH
36	bool "Battery level reporting for HID devices"
37	select POWER_SUPPLY
38	default n
39	help
40	This option adds support of reporting battery strength (for HID devices
41	that support this feature) through power_supply class so that userspace
42	tools, such as upower, can display it.
43
44config HIDRAW
45	bool "/dev/hidraw raw HID device support"
46	help
47	Say Y here if you want to support HID devices (from the USB
48	specification standpoint) that aren't strictly user interface
49	devices, like monitor controls and Uninterruptible Power Supplies.
50
51	This module supports these devices separately using a separate
52	event interface on /dev/hidraw.
53
54	There is also a /dev/hiddev configuration option in the USB HID
55	configuration menu. In comparison to hiddev, this device does not process
56	the hid events at all (no parsing, no lookups). This lets applications
57	to work on raw hid events when they want to, and avoid using transport-specific
58	userspace libhid/libusb libraries.
59
60	If unsure, say Y.
61
62config UHID
63	tristate "User-space I/O driver support for HID subsystem"
64	default n
65	help
66	Say Y here if you want to provide HID I/O Drivers from user-space.
67	This allows to write I/O drivers in user-space and feed the data from
68	the device into the kernel. The kernel parses the HID reports, loads the
69	corresponding HID Device Driver or provides input devices on top of your
70	user-space device.
71
72	This driver cannot be used to parse HID-reports in user-space and write
73	special HID-drivers. You should use hidraw for that.
74	Instead, this driver allows to write the transport-layer driver in
75	user-space like USB-HID and Bluetooth-HID do in kernel-space.
76
77	If unsure, say N.
78
79	To compile this driver as a module, choose M here: the
80	module will be called uhid.
81
82config HID_GENERIC
83	tristate "Generic HID driver"
84	default HID
85	help
86	Support for generic devices on the HID bus. This includes most
87	keyboards and mice, joysticks, tablets and digitizers.
88
89	To compile this driver as a module, choose M here: the module
90	will be called hid-generic.
91
92	If unsure, say Y.
93
94menu "Special HID drivers"
95
96config HID_A4TECH
97	tristate "A4TECH mice"
98	default !EXPERT
99	help
100	Support for some A4TECH mice with two scroll wheels.
101
102config HID_ACCUTOUCH
103	tristate "Accutouch touch device"
104	depends on USB_HID
105	help
106	  This selects a driver for the Accutouch 2216 touch controller.
107
108	  The driver works around a problem in the reported device capabilities
109	  which causes userspace to detect the device as a mouse rather than
110          a touchscreen.
111
112	  Say Y here if you have a Accutouch 2216 touch controller.
113
114config HID_ACRUX
115	tristate "ACRUX game controller support"
116	help
117	Say Y here if you want to enable support for ACRUX game controllers.
118
119config HID_ACRUX_FF
120	bool "ACRUX force feedback support"
121	depends on HID_ACRUX
122	select INPUT_FF_MEMLESS
123	help
124	Say Y here if you want to enable force feedback support for ACRUX
125	game controllers.
126
127config HID_APPLE
128	tristate "Apple {i,Power,Mac}Books"
129	depends on LEDS_CLASS
130	depends on NEW_LEDS
131	default !EXPERT
132	help
133	Support for some Apple devices which less or more break
134	HID specification.
135
136	Say Y here if you want support for keyboards of	Apple iBooks, PowerBooks,
137	MacBooks, MacBook Pros and Apple Aluminum.
138
139config HID_APPLEIR
140	tristate "Apple infrared receiver"
141	depends on (USB_HID)
142	help
143	Support for Apple infrared remote control. All the Apple computers from
144	  2005 onwards include such a port, except the unibody Macbook (2009),
145	  and Mac Pros. This receiver is also used in the Apple TV set-top box
146	  prior to the 2010 model.
147
148	Say Y here if you want support for Apple infrared remote control.
149
150config HID_ASUS
151	tristate "Asus"
152	depends on USB_HID
153	depends on LEDS_CLASS
154	depends on ASUS_WMI || ASUS_WMI=n
155	select POWER_SUPPLY
156	help
157	Support for Asus notebook built-in keyboard and touchpad via i2c, and
158	the Asus Republic of Gamers laptop keyboard special keys.
159
160	Supported devices:
161	- EeeBook X205TA
162	- VivoBook E200HA
163	- GL553V series
164	- GL753V series
165
166config HID_AUREAL
167	tristate "Aureal"
168	help
169	Support for Aureal Cy se W-01RN Remote Controller and other Aureal derived remotes.
170
171config HID_BELKIN
172	tristate "Belkin Flip KVM and Wireless keyboard"
173	default !EXPERT
174	help
175	Support for Belkin Flip KVM and Wireless keyboard.
176
177config HID_BETOP_FF
178	tristate "Betop Production Inc. force feedback support"
179	depends on USB_HID
180	select INPUT_FF_MEMLESS
181	help
182	Say Y here if you want to enable force feedback support for devices by
183	BETOP Production Ltd.
184	Currently the following devices are known to be supported:
185	 - BETOP 2185 PC & BFM MODE
186
187config HID_BIGBEN_FF
188	tristate "BigBen Interactive Kids' gamepad support"
189	depends on USB_HID
190	depends on NEW_LEDS
191	depends on LEDS_CLASS
192	select INPUT_FF_MEMLESS
193	help
194	  Support for the "Kid-friendly Wired Controller" PS3OFMINIPAD
195	  gamepad made by BigBen Interactive, originally sold as a PS3
196	  accessory. This driver fixes input mapping and adds support for
197	  force feedback effects and LEDs on the device.
198
199config HID_CHERRY
200	tristate "Cherry Cymotion keyboard"
201	default !EXPERT
202	help
203	Support for Cherry Cymotion keyboard.
204
205config HID_CHICONY
206	tristate "Chicony devices"
207	depends on USB_HID
208	default !EXPERT
209	help
210	Support for Chicony Tactical pad and special keys on Chicony keyboards.
211
212config HID_CORSAIR
213	tristate "Corsair devices"
214	depends on USB_HID && LEDS_CLASS
215	help
216	Support for Corsair devices that are not fully compliant with the
217	HID standard.
218
219	Supported devices:
220	- Vengeance K90
221	- Scimitar PRO RGB
222
223config HID_COUGAR
224	tristate "Cougar devices"
225	help
226	Support for Cougar devices that are not fully compliant with the
227	HID standard.
228
229	Supported devices:
230	- Cougar 500k Gaming Keyboard
231
232config HID_MACALLY
233	tristate "Macally devices"
234	help
235	Support for Macally devices that are not fully compliant with the
236	HID standard.
237
238	supported devices:
239	- Macally ikey keyboard
240
241config HID_PRODIKEYS
242	tristate "Prodikeys PC-MIDI Keyboard support"
243	depends on USB_HID && SND
244	select SND_RAWMIDI
245	help
246	Support for Prodikeys PC-MIDI Keyboard device support.
247	Say Y here to enable support for this device.
248	- Prodikeys PC-MIDI keyboard.
249	  The Prodikeys PC-MIDI acts as a USB Audio device, with one MIDI
250	  input and one MIDI output. These MIDI jacks appear as
251	  a sound "card" in the ALSA sound system.
252	  Note: if you say N here, this device will still function as a basic
253	  multimedia keyboard, but will lack support for the musical keyboard
254	  and some additional multimedia keys.
255
256config HID_CMEDIA
257	tristate "CMedia audio chips"
258	help
259	Support for CMedia CM6533 HID audio jack controls
260        and HS100B mute buttons.
261
262config HID_CP2112
263	tristate "Silicon Labs CP2112 HID USB-to-SMBus Bridge support"
264	depends on USB_HID && HIDRAW && I2C && GPIOLIB
265	select GPIOLIB_IRQCHIP
266	help
267	Support for Silicon Labs CP2112 HID USB to SMBus Master Bridge.
268	This is a HID device driver which registers as an i2c adapter
269	and gpiochip to expose these functions of the CP2112. The
270	customizable USB descriptor fields are exposed as sysfs attributes.
271
272config HID_CREATIVE_SB0540
273	tristate "Creative SB0540 infrared receiver"
274	depends on USB_HID
275	help
276	Support for Creative infrared SB0540-compatible remote controls, such
277	as the RM-1500 and RM-1800 remotes.
278
279	Say Y here if you want support for Creative SB0540 infrared receiver.
280
281config HID_CYPRESS
282	tristate "Cypress mouse and barcode readers"
283	default !EXPERT
284	help
285	Support for cypress mouse and barcode readers.
286
287config HID_DRAGONRISE
288	tristate "DragonRise Inc. game controller"
289	help
290	Say Y here if you have DragonRise Inc. game controllers.
291	These might be branded as:
292	- Tesun USB-703
293	- Media-tech MT1504 "Rogue"
294	- DVTech JS19 "Gear"
295	- Defender Game Master
296
297config DRAGONRISE_FF
298	bool "DragonRise Inc. force feedback"
299	depends on HID_DRAGONRISE
300	select INPUT_FF_MEMLESS
301	help
302	Say Y here if you want to enable force feedback support for DragonRise Inc.
303	game controllers.
304
305config HID_EMS_FF
306	tristate "EMS Production Inc. force feedback support"
307	select INPUT_FF_MEMLESS
308	help
309	Say Y here if you want to enable force feedback support for devices by
310	EMS Production Ltd.
311	Currently the following devices are known to be supported:
312	 - Trio Linker Plus II
313
314config HID_ELAN
315	tristate "ELAN USB Touchpad Support"
316	depends on LEDS_CLASS && USB_HID
317	help
318	Say Y to enable support for the USB ELAN touchpad
319	Currently the following devices are known to be supported:
320	 - HP Pavilion X2 10-p0XX.
321
322config HID_ELECOM
323	tristate "ELECOM HID devices"
324	help
325	Support for ELECOM devices:
326	  - BM084 Bluetooth Mouse
327	  - EX-G Trackballs (M-XT3DRBK, M-XT3URBK)
328	  - DEFT Trackballs (M-DT1DRBK, M-DT1URBK, M-DT2DRBK, M-DT2URBK)
329	  - HUGE Trackballs (M-HT1DRBK, M-HT1URBK)
330
331config HID_ELO
332	tristate "ELO USB 4000/4500 touchscreen"
333	depends on USB_HID
334	help
335	Support for the ELO USB 4000/4500 touchscreens. Note that this is for
336	different devices than those handled by CONFIG_TOUCHSCREEN_USB_ELO.
337
338config HID_EZKEY
339	tristate "Ezkey BTC 8193 keyboard"
340	default !EXPERT
341	help
342	Support for Ezkey BTC 8193 keyboard.
343
344config HID_FT260
345	tristate "FTDI FT260 USB HID to I2C host support"
346	depends on USB_HID && HIDRAW && I2C
347	help
348	  Provides I2C host adapter functionality over USB-HID through FT260
349	  device. The customizable USB descriptor fields are exposed as sysfs
350	  attributes.
351
352	  To compile this driver as a module, choose M here: the module
353	  will be called hid-ft260.
354
355config HID_GEMBIRD
356	tristate "Gembird Joypad"
357	help
358	Support for Gembird JPD-DualForce 2.
359
360config HID_GFRM
361	tristate "Google Fiber TV Box remote control support"
362	help
363	Support for Google Fiber TV Box remote controls
364
365config HID_GLORIOUS
366	tristate "Glorious PC Gaming Race mice"
367	help
368	  Support for Glorious PC Gaming Race mice such as
369	  the Glorious Model O, O- and D.
370
371config HID_HOLTEK
372	tristate "Holtek HID devices"
373	depends on USB_HID
374	help
375	Support for Holtek based devices:
376	  - Holtek On Line Grip based game controller
377	  - Trust GXT 18 Gaming Keyboard
378	  - Sharkoon Drakonia / Perixx MX-2000 gaming mice
379	  - Tracer Sniper TRM-503 / NOVA Gaming Slider X200 /
380	    Zalman ZM-GM1
381	  - SHARKOON DarkGlider Gaming mouse
382	  - LEETGION Hellion Gaming Mouse
383
384config HOLTEK_FF
385	bool "Holtek On Line Grip force feedback support"
386	depends on HID_HOLTEK
387	select INPUT_FF_MEMLESS
388	help
389	  Say Y here if you have a Holtek On Line Grip based game controller
390	  and want to have force feedback support for it.
391
392config HID_VIVALDI_COMMON
393	tristate
394	help
395	  ChromeOS Vivaldi HID parsing support library. This is a hidden
396	  option so that drivers can use common code to parse the HID
397	  descriptors for vivaldi function row keymap.
398
399config HID_GOOGLE_HAMMER
400	tristate "Google Hammer Keyboard"
401	select HID_VIVALDI_COMMON
402	select INPUT_VIVALDIFMAP
403	depends on USB_HID && LEDS_CLASS && CROS_EC
404	help
405	Say Y here if you have a Google Hammer device.
406
407config HID_VIVALDI
408	tristate "Vivaldi Keyboard"
409	select HID_VIVALDI_COMMON
410	select INPUT_VIVALDIFMAP
411	help
412	  Say Y here if you want to enable support for Vivaldi keyboards.
413
414	  Vivaldi keyboards use a vendor-specific (Google) HID usage to report
415	  how the keys in the top row are physically ordered.
416
417config HID_GT683R
418	tristate "MSI GT68xR LED support"
419	depends on LEDS_CLASS && USB_HID
420	help
421	Say Y here if you want to enable support for the three MSI GT68xR LEDs
422
423	This driver support following modes:
424	  - Normal: LEDs are fully on when enabled
425	  - Audio:  LEDs brightness depends on sound level
426	  - Breathing: LEDs brightness varies at human breathing rate
427
428	Currently the following devices are know to be supported:
429	  - MSI GT683R
430
431config HID_KEYTOUCH
432	tristate "Keytouch HID devices"
433	help
434	Support for Keytouch HID devices not fully compliant with
435	the specification. Currently supported:
436		- Keytouch IEC 60945
437
438config HID_KYE
439	tristate "KYE/Genius devices"
440	help
441	Support for KYE/Genius devices not fully compliant with HID standard:
442	- Ergo Mouse
443	- EasyPen i405X tablet
444	- MousePen i608X tablet
445	- EasyPen M610X tablet
446
447config HID_UCLOGIC
448	tristate "UC-Logic"
449	depends on USB_HID
450	help
451	Support for UC-Logic and Huion tablets.
452
453config HID_WALTOP
454	tristate "Waltop"
455	help
456	Support for Waltop tablets.
457
458config HID_VIEWSONIC
459	tristate "ViewSonic/Signotec"
460	help
461	  Support for ViewSonic/Signotec PD1011 signature pad.
462
463config HID_VRC2
464	tristate "VRC-2 Car Controller"
465	depends on HID
466	help
467        Support for VRC-2 which is a 2-axis controller often used in
468        car simulators.
469
470        To compile this driver as a module, choose M here: the
471        module will be called hid-vrc2.
472
473config HID_XIAOMI
474	tristate "Xiaomi"
475	help
476	  Adds support for side buttons of Xiaomi Mi Dual Mode Wireless
477	  Mouse Silent Edition.
478
479config HID_GYRATION
480	tristate "Gyration remote control"
481	help
482	Support for Gyration remote control.
483
484config HID_ICADE
485	tristate "ION iCade arcade controller"
486	help
487	Support for the ION iCade arcade controller to work as a joystick.
488
489	To compile this driver as a module, choose M here: the
490	module will be called hid-icade.
491
492config HID_ITE
493	tristate "ITE devices"
494	default !EXPERT
495	help
496	Support for ITE devices not fully compliant with HID standard.
497
498config HID_JABRA
499	tristate "Jabra USB HID Driver"
500	help
501	Support for Jabra USB HID devices.
502
503	Prevents mapping of vendor defined HID usages to input events. Without
504	this driver HID	reports from Jabra devices may incorrectly be seen as
505	mouse button events.
506	Say M here if you may ever plug in a Jabra USB device.
507
508config HID_TWINHAN
509	tristate "Twinhan IR remote control"
510	help
511	Support for Twinhan IR remote control.
512
513config HID_KENSINGTON
514	tristate "Kensington Slimblade Trackball"
515	default !EXPERT
516	help
517	Support for Kensington Slimblade Trackball.
518
519config HID_LCPOWER
520	tristate "LC-Power"
521	help
522	Support for LC-Power RC1000MCE RF remote control.
523
524config HID_LED
525	tristate "Simple RGB LED support"
526	depends on LEDS_CLASS
527	help
528	Support for simple RGB LED devices. Currently supported are:
529	- Riso Kagaku Webmail Notifier
530	- Dream Cheeky Webmail Notifier and Friends Alert
531	- ThingM blink(1)
532	- Delcom Visual Signal Indicator Generation 2
533	- Greynut Luxafor
534
535	To compile this driver as a module, choose M here: the
536	module will be called hid-led.
537
538config HID_LENOVO
539	tristate "Lenovo / Thinkpad devices"
540	select NEW_LEDS
541	select LEDS_CLASS
542	help
543	Support for IBM/Lenovo devices that are not fully compliant with HID standard.
544
545	Say Y if you want support for horizontal scrolling of the IBM/Lenovo
546	Scrollpoint mice or the non-compliant features of the Lenovo Thinkpad
547	standalone keyboards, e.g:
548	- ThinkPad USB Keyboard with TrackPoint (supports extra LEDs and trackpoint
549	  configuration)
550	- ThinkPad Compact Bluetooth Keyboard with TrackPoint (supports Fn keys)
551	- ThinkPad Compact USB Keyboard with TrackPoint (supports Fn keys)
552
553config HID_LETSKETCH
554	tristate "Letsketch WP9620N tablets"
555	depends on USB_HID
556	help
557	  Driver for the LetSketch / VSON WP9620N drawing tablet. This
558	  drawing tablet is also sold under other brand names such as Case U,
559	  presumably this driver will work for all of them. But it has only been
560	  tested with a LetSketch WP9620N model.
561
562	  These tablets also work without a special HID driver, but then only
563	  part of the active area works and both the pad and stylus buttons are
564	  hardwired to special key-combos. E.g. the 2 stylus buttons send right
565	  mouse clicks / resp. "e" key presses.
566
567config HID_LOGITECH
568	tristate "Logitech devices"
569	depends on USB_HID
570	depends on LEDS_CLASS
571	default !EXPERT
572	help
573	Support for Logitech devices that are not fully compliant with HID standard.
574
575config HID_LOGITECH_DJ
576	tristate "Logitech receivers full support"
577	depends on USB_HID
578	depends on HIDRAW
579	depends on HID_LOGITECH
580	select HID_LOGITECH_HIDPP
581	help
582	Say Y if you want support for Logitech receivers and devices.
583	Logitech receivers are capable of pairing multiple Logitech compliant
584	devices to the same receiver. Without this driver it will be handled by
585	generic USB_HID driver and all incoming events will be multiplexed
586	into a single mouse and a single keyboard device.
587
588config HID_LOGITECH_HIDPP
589	tristate "Logitech HID++ devices support"
590	depends on HID_LOGITECH
591	select POWER_SUPPLY
592	help
593	Support for Logitech devices relying on the HID++ Logitech specification
594
595	Say Y if you want support for Logitech devices relying on the HID++
596	specification. Such devices are the various Logitech Touchpads (T650,
597	T651, TK820), some mice (Zone Touch mouse), or even keyboards (Solar
598	Keyboard).
599
600config LOGITECH_FF
601	bool "Logitech force feedback support"
602	depends on HID_LOGITECH
603	select INPUT_FF_MEMLESS
604	help
605	  Say Y here if you have one of these devices:
606	  - Logitech WingMan Cordless RumblePad
607	  - Logitech WingMan Cordless RumblePad 2
608	  - Logitech WingMan Force 3D
609
610	  and if you want to enable force feedback for them.
611	  Note: if you say N here, this device will still be supported, but without
612	  force feedback.
613
614config LOGIRUMBLEPAD2_FF
615	bool "Logitech force feedback support (variant 2)"
616	depends on HID_LOGITECH
617	select INPUT_FF_MEMLESS
618	help
619	  Say Y here if you want to enable force feedback support for:
620	  - Logitech RumblePad
621	  - Logitech Rumblepad 2
622	  - Logitech Formula Vibration Feedback Wheel
623
624config LOGIG940_FF
625	bool "Logitech Flight System G940 force feedback support"
626	depends on HID_LOGITECH
627	select INPUT_FF_MEMLESS
628	help
629	  Say Y here if you want to enable force feedback support for Logitech
630	  Flight System G940 devices.
631
632config LOGIWHEELS_FF
633	bool "Logitech wheels configuration and force feedback support"
634	depends on HID_LOGITECH
635	select INPUT_FF_MEMLESS
636	default LOGITECH_FF
637	help
638	  Say Y here if you want to enable force feedback and range setting(*)
639	  support for following Logitech wheels:
640	  - Logitech G25 (*)
641	  - Logitech G27 (*)
642	  - Logitech G29 (*)
643	  - Logitech Driving Force
644	  - Logitech Driving Force Pro (*)
645	  - Logitech Driving Force GT (*)
646	  - Logitech Driving Force EX/RX
647	  - Logitech Driving Force Wireless
648	  - Logitech Speed Force Wireless
649	  - Logitech MOMO Force
650	  - Logitech MOMO Racing Force
651	  - Logitech Formula Force GP
652	  - Logitech Formula Force EX/RX
653	  - Logitech Wingman Formula Force GP
654
655config HID_MAGICMOUSE
656	tristate "Apple Magic Mouse/Trackpad multi-touch support"
657	help
658	Support for the Apple Magic Mouse/Trackpad multi-touch.
659
660	Say Y here if you want support for the multi-touch features of the
661	Apple Wireless "Magic" Mouse and the Apple Wireless "Magic" Trackpad.
662
663config HID_MALTRON
664	tristate "Maltron L90 keyboard"
665	help
666	Adds support for the volume up, volume down, mute, and play/pause buttons
667	of the Maltron L90 keyboard.
668
669config HID_MAYFLASH
670	tristate "Mayflash game controller adapter force feedback"
671	select INPUT_FF_MEMLESS
672	help
673	Say Y here if you have HJZ Mayflash PS3 game controller adapters
674	and want to enable force feedback support.
675
676config HID_MEGAWORLD_FF
677	tristate "Mega World based game controller force feedback support"
678	depends on USB_HID
679	select INPUT_FF_MEMLESS
680	help
681	Say Y here if you have a Mega World based game controller and want
682	to have force feedback support for it.
683
684config HID_REDRAGON
685	tristate "Redragon keyboards"
686	default !EXPERT
687	help
688    Support for Redragon keyboards that need fix-ups to work properly.
689
690config HID_MICROSOFT
691	tristate "Microsoft non-fully HID-compliant devices"
692	default !EXPERT
693	select INPUT_FF_MEMLESS
694	help
695	Support for Microsoft devices that are not fully compliant with HID standard.
696
697config HID_MONTEREY
698	tristate "Monterey Genius KB29E keyboard"
699	default !EXPERT
700	help
701	Support for Monterey Genius KB29E.
702
703config HID_MULTITOUCH
704	tristate "HID Multitouch panels"
705	help
706	  Generic support for HID multitouch panels.
707
708	  Say Y here if you have one of the following devices:
709	  - 3M PCT touch screens
710	  - ActionStar dual touch panels
711	  - Atmel panels
712	  - Cando dual touch panels
713	  - Chunghwa panels
714	  - CJTouch panels
715	  - CVTouch panels
716	  - Cypress TrueTouch panels
717	  - Elan Microelectronics touch panels
718	  - Elo TouchSystems IntelliTouch Plus panels
719	  - GeneralTouch 'Sensing Win7-TwoFinger' panels
720	  - GoodTouch panels
721	  - Hanvon dual touch panels
722	  - Ilitek dual touch panels
723	  - IrTouch Infrared USB panels
724	  - LG Display panels (Dell ST2220Tc)
725	  - Lumio CrystalTouch panels
726	  - MosArt dual-touch panels
727	  - Panasonic multitouch panels
728	  - PenMount dual touch panels
729	  - Perixx Peripad 701 touchpad
730	  - PixArt optical touch screen
731	  - Pixcir dual touch panels
732	  - Quanta panels
733	  - eGalax dual-touch panels, including the Joojoo and Wetab tablets
734	  - SiS multitouch panels
735	  - Stantum multitouch panels
736	  - Touch International Panels
737	  - Unitec Panels
738	  - Wistron optical touch panels
739	  - XAT optical touch panels
740	  - Xiroku optical touch panels
741	  - Zytronic touch panels
742
743	  If unsure, say N.
744
745	  To compile this driver as a module, choose M here: the
746	  module will be called hid-multitouch.
747
748config HID_NINTENDO
749	tristate "Nintendo Joy-Con and Pro Controller support"
750	depends on NEW_LEDS
751	depends on LEDS_CLASS
752	select POWER_SUPPLY
753	help
754	Adds support for the Nintendo Switch Joy-Cons and Pro Controller.
755	All controllers support bluetooth, and the Pro Controller also supports
756	its USB mode.
757
758	To compile this driver as a module, choose M here: the
759	module will be called hid-nintendo.
760
761config NINTENDO_FF
762	bool "Nintendo Switch controller force feedback support"
763	depends on HID_NINTENDO
764	select INPUT_FF_MEMLESS
765	help
766	Say Y here if you have a Nintendo Switch controller and want to enable
767	force feedback support for it. This works for both joy-cons and the pro
768	controller. For the pro controller, both rumble motors can be controlled
769	individually.
770
771config HID_NTI
772	tristate "NTI keyboard adapters"
773	help
774	Support for the "extra" Sun keyboard keys on keyboards attached
775	through Network Technologies USB-SUN keyboard adapters.
776
777config HID_NTRIG
778	tristate "N-Trig touch screen"
779	depends on USB_HID
780	help
781	Support for N-Trig touch screen.
782
783config HID_ORTEK
784	tristate "Ortek PKB-1700/WKB-2000/Skycable wireless keyboard and mouse trackpad"
785	help
786	There are certain devices which have LogicalMaximum wrong in the keyboard
787	usage page of their report descriptor. The most prevailing ones so far
788	are manufactured by Ortek, thus the name of the driver. Currently
789	supported devices by this driver are
790
791	   - Ortek PKB-1700
792	   - Ortek WKB-2000
793	   - Skycable wireless presenter
794
795config HID_PANTHERLORD
796	tristate "Pantherlord/GreenAsia game controller"
797	help
798	  Say Y here if you have a PantherLord/GreenAsia based game controller
799	  or adapter.
800
801config PANTHERLORD_FF
802	bool "Pantherlord force feedback support"
803	depends on HID_PANTHERLORD
804	select INPUT_FF_MEMLESS
805	help
806	  Say Y here if you have a PantherLord/GreenAsia based game controller
807	  or adapter and want to enable force feedback support for it.
808
809config HID_PENMOUNT
810	tristate "Penmount touch device"
811	depends on USB_HID
812	help
813	  This selects a driver for the PenMount 6000 touch controller.
814
815	  The driver works around a problem in the report descript allowing
816	  the userspace to touch events instead of mouse events.
817
818	  Say Y here if you have a Penmount based touch controller.
819
820config HID_PETALYNX
821	tristate "Petalynx Maxter remote control"
822	help
823	Support for Petalynx Maxter remote control.
824
825config HID_PICOLCD
826	tristate "PicoLCD (graphic version)"
827	help
828	  This provides support for Minibox PicoLCD devices, currently
829	  only the graphical ones are supported.
830
831	  This includes support for the following device features:
832	  - Keypad
833	  - Switching between Firmware and Flash mode
834	  - EEProm / Flash access     (via debugfs)
835	  Features selectively enabled:
836	  - Framebuffer for monochrome 256x64 display
837	  - Backlight control
838	  - Contrast control
839	  - General purpose outputs
840	  Features that are not (yet) supported:
841	  - IR
842
843config HID_PICOLCD_FB
844	bool "Framebuffer support" if EXPERT
845	default !EXPERT
846	depends on HID_PICOLCD
847	depends on HID_PICOLCD=FB || FB=y
848	select FB_DEFERRED_IO
849	select FB_SYS_FILLRECT
850	select FB_SYS_COPYAREA
851	select FB_SYS_IMAGEBLIT
852	select FB_SYS_FOPS
853	help
854	  Provide access to PicoLCD's 256x64 monochrome display via a
855	  framebuffer device.
856
857config HID_PICOLCD_BACKLIGHT
858	bool "Backlight control" if EXPERT
859	default !EXPERT
860	depends on HID_PICOLCD
861	depends on HID_PICOLCD=BACKLIGHT_CLASS_DEVICE || BACKLIGHT_CLASS_DEVICE=y
862	help
863	  Provide access to PicoLCD's backlight control via backlight
864	  class.
865
866config HID_PICOLCD_LCD
867	bool "Contrast control" if EXPERT
868	default !EXPERT
869	depends on HID_PICOLCD
870	depends on HID_PICOLCD=LCD_CLASS_DEVICE || LCD_CLASS_DEVICE=y
871	help
872	  Provide access to PicoLCD's LCD contrast via lcd class.
873
874config HID_PICOLCD_LEDS
875	bool "GPO via leds class" if EXPERT
876	default !EXPERT
877	depends on HID_PICOLCD
878	depends on HID_PICOLCD=LEDS_CLASS || LEDS_CLASS=y
879	help
880	  Provide access to PicoLCD's GPO pins via leds class.
881
882config HID_PICOLCD_CIR
883	bool "CIR via RC class" if EXPERT
884	default !EXPERT
885	depends on HID_PICOLCD
886	depends on HID_PICOLCD=RC_CORE || RC_CORE=y
887	help
888	  Provide access to PicoLCD's CIR interface via remote control (LIRC).
889
890config HID_PLANTRONICS
891	tristate "Plantronics USB HID Driver"
892	help
893	  Provides HID support for Plantronics USB audio devices.
894	  Correctly maps vendor unique volume up/down HID usages to
895	  KEY_VOLUMEUP and KEY_VOLUMEDOWN events and prevents core mapping
896	  of other vendor unique HID usages to random mouse events.
897
898	  Say M here if you may ever plug in a Plantronics USB audio device.
899
900config HID_PLAYSTATION
901	tristate "PlayStation HID Driver"
902	depends on LEDS_CLASS_MULTICOLOR
903	select CRC32
904	select POWER_SUPPLY
905	help
906	  Provides support for Sony PS5 controllers including support for
907	  its special functionalities e.g. touchpad, lights and motion
908	  sensors.
909
910config PLAYSTATION_FF
911	bool "PlayStation force feedback support"
912	depends on HID_PLAYSTATION
913	select INPUT_FF_MEMLESS
914	help
915	  Say Y here if you would like to enable force feedback support for
916	  PlayStation game controllers.
917
918config HID_PXRC
919       tristate "PhoenixRC HID Flight Controller"
920       depends on HID
921       help
922       Support for PhoenixRC HID Flight Controller, a 8-axis flight controller.
923
924       To compile this driver as a module, choose M here: the
925       module will be called hid-pxrc.
926
927config HID_RAZER
928	tristate "Razer non-fully HID-compliant devices"
929	help
930	Support for Razer devices that are not fully compliant with the
931	HID standard.
932
933config HID_PRIMAX
934	tristate "Primax non-fully HID-compliant devices"
935	help
936	Support for Primax devices that are not fully compliant with the
937	HID standard.
938
939config HID_RETRODE
940	tristate "Retrode 2 USB adapter for vintage video games"
941	depends on USB_HID
942	help
943	Support for
944	  * Retrode 2 cartridge and controller adapter
945
946config HID_ROCCAT
947	tristate "Roccat device support"
948	depends on USB_HID
949	help
950	Support for Roccat devices.
951	Say Y here if you have a Roccat mouse or keyboard and want
952	support for its special functionalities.
953
954config HID_SAITEK
955	tristate "Saitek (Mad Catz) non-fully HID-compliant devices"
956	help
957	Support for Saitek devices that are not fully compliant with the
958	HID standard.
959
960	Supported devices:
961	- PS1000 Dual Analog Pad
962	- Saitek R.A.T.7, R.A.T.9, M.M.O.7 Gaming Mice
963	- Mad Catz R.A.T.5, R.A.T.9 Gaming Mice
964
965config HID_SAMSUNG
966	tristate "Samsung InfraRed remote control or keyboards"
967	depends on USB_HID
968	help
969	Support for Samsung InfraRed remote control or keyboards.
970
971config HID_SEMITEK
972	tristate "Semitek USB keyboards"
973	help
974	Support for Semitek USB keyboards that are not fully compliant
975	with the HID standard.
976
977	There are many variants, including:
978	- GK61, GK64, GK68, GK84, GK96, etc.
979	- SK61, SK64, SK68, SK84, SK96, etc.
980	- Dierya DK61/DK66
981	- Tronsmart TK09R
982	- Woo-dy
983	- X-Bows Nature/Knight
984
985config HID_SIGMAMICRO
986	tristate "SiGma Micro-based keyboards"
987	depends on USB_HID
988	help
989	  Support for keyboards that use the SiGma Micro (a.k.a SigmaChip) IC.
990
991	  Supported devices:
992	  - Landslides KR-700
993	  - Rapoo V500
994
995config HID_SONY
996	tristate "Sony PS2/3/4 accessories"
997	depends on USB_HID
998	depends on NEW_LEDS
999	depends on LEDS_CLASS
1000	select POWER_SUPPLY
1001	select CRC32
1002	help
1003	Support for
1004
1005	  * Sony PS3 6-axis controllers
1006	  * Sony PS4 DualShock 4 controllers
1007	  * Buzz controllers
1008	  * Sony PS3 Blue-ray Disk Remote Control (Bluetooth)
1009	  * Logitech Harmony adapter for Sony Playstation 3 (Bluetooth)
1010	  * Guitar Hero Live PS3, Wii U and PS4 guitar dongles
1011	  * Guitar Hero PS3 and PC guitar dongles
1012
1013config SONY_FF
1014	bool "Sony PS2/3/4 accessories force feedback support"
1015	depends on HID_SONY
1016	select INPUT_FF_MEMLESS
1017	help
1018	Say Y here if you have a Sony PS2/3/4 accessory and want to enable
1019	force feedback support for it.
1020
1021config HID_SPEEDLINK
1022	tristate "Speedlink VAD Cezanne mouse support"
1023	help
1024	Support for Speedlink Vicious and Divine Cezanne mouse.
1025
1026config HID_STEAM
1027	tristate "Steam Controller support"
1028	select POWER_SUPPLY
1029	help
1030	Say Y here if you have a Steam Controller if you want to use it
1031	without running the Steam Client. It supports both the wired and
1032	the wireless adaptor.
1033
1034config HID_STEELSERIES
1035	tristate "Steelseries SRW-S1 steering wheel support"
1036	help
1037	Support for Steelseries SRW-S1 steering wheel
1038
1039config HID_SUNPLUS
1040	tristate "Sunplus wireless desktop"
1041	help
1042	Support for Sunplus wireless desktop.
1043
1044config HID_RMI
1045	tristate "Synaptics RMI4 device support"
1046	select RMI4_CORE
1047	select RMI4_F03
1048	select RMI4_F11
1049	select RMI4_F12
1050	select RMI4_F30
1051	help
1052	Support for Synaptics RMI4 touchpads.
1053	Say Y here if you have a Synaptics RMI4 touchpads over i2c-hid or usbhid
1054	and want support for its special functionalities.
1055
1056config HID_GREENASIA
1057	tristate "GreenAsia (Product ID 0x12) game controller support"
1058	help
1059	  Say Y here if you have a GreenAsia (Product ID 0x12) based game
1060	  controller or adapter.
1061
1062config GREENASIA_FF
1063	bool "GreenAsia (Product ID 0x12) force feedback support"
1064	depends on HID_GREENASIA
1065	select INPUT_FF_MEMLESS
1066	help
1067	Say Y here if you have a GreenAsia (Product ID 0x12) based game controller
1068	(like MANTA Warrior MM816 and SpeedLink Strike2 SL-6635) or adapter
1069	and want to enable force feedback support for it.
1070
1071config HID_HYPERV_MOUSE
1072	tristate "Microsoft Hyper-V mouse driver"
1073	depends on HYPERV
1074	help
1075	Select this option to enable the Hyper-V mouse driver.
1076
1077config HID_SMARTJOYPLUS
1078	tristate "SmartJoy PLUS PS2/USB adapter support"
1079	help
1080	Support for SmartJoy PLUS PS2/USB adapter, Super Dual Box,
1081	Super Joy Box 3 Pro, Super Dual Box Pro, and Super Joy Box 5 Pro.
1082
1083	Note that DDR (Dance Dance Revolution) mode is not supported, nor
1084	is pressure sensitive buttons on the pro models.
1085
1086config SMARTJOYPLUS_FF
1087	bool "SmartJoy PLUS PS2/USB adapter force feedback support"
1088	depends on HID_SMARTJOYPLUS
1089	select INPUT_FF_MEMLESS
1090	help
1091	Say Y here if you have a SmartJoy PLUS PS2/USB adapter and want to
1092	enable force feedback support for it.
1093
1094config HID_TIVO
1095	tristate "TiVo Slide Bluetooth remote control support"
1096	help
1097	Say Y if you have a TiVo Slide Bluetooth remote control.
1098
1099config HID_TOPSEED
1100	tristate "TopSeed Cyberlink, BTC Emprex, Conceptronic remote control support"
1101	help
1102	Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
1103	CLLRCMCE remote control.
1104
1105config HID_TOPRE
1106	tristate "Topre REALFORCE keyboards"
1107	depends on HID
1108	help
1109	  Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards.
1110
1111config HID_THINGM
1112	tristate "ThingM blink(1) USB RGB LED"
1113	depends on LEDS_CLASS
1114	select HID_LED
1115	help
1116	Support for the ThingM blink(1) USB RGB LED. This driver has been
1117	merged into the generic hid led driver. Config symbol HID_THINGM
1118	just selects HID_LED and will be removed soon.
1119
1120config HID_THRUSTMASTER
1121	tristate "ThrustMaster devices support"
1122	depends on USB_HID
1123	help
1124	  Say Y here if you have a THRUSTMASTER FireStore Dual Power 2,
1125	  a THRUSTMASTER Ferrari GT Rumble Wheel or Thrustmaster FFB
1126	  Wheel (T150RS, T300RS, T300 Ferrari Alcantara Edition, T500RS).
1127
1128config THRUSTMASTER_FF
1129	bool "ThrustMaster devices force feedback support"
1130	depends on HID_THRUSTMASTER
1131	select INPUT_FF_MEMLESS
1132	help
1133	  Say Y here if you have a THRUSTMASTER FireStore Dual Power 2 or 3,
1134	  a THRUSTMASTER Dual Trigger 3-in-1 or a THRUSTMASTER Ferrari GT
1135	  Rumble Force or Force Feedback Wheel.
1136
1137config HID_UDRAW_PS3
1138	tristate "THQ PS3 uDraw tablet"
1139	help
1140	  Say Y here if you want to use the THQ uDraw gaming tablet for
1141	  the PS3.
1142
1143config HID_U2FZERO
1144	tristate "U2F Zero LED and RNG support"
1145	depends on USB_HID
1146	depends on LEDS_CLASS
1147	depends on HW_RANDOM
1148	help
1149	  Support for the LED of the U2F Zero device.
1150
1151	  U2F Zero supports custom commands for blinking the LED
1152	  and getting data from the internal hardware RNG.
1153	  The internal hardware can be used to feed the enthropy pool.
1154
1155	  U2F Zero only supports blinking its LED, so this driver doesn't
1156	  allow setting the brightness to anything but 1, which will
1157	  trigger a single blink and immediately reset back to 0.
1158
1159config HID_WACOM
1160	tristate "Wacom Intuos/Graphire tablet support (USB)"
1161	depends on USB_HID
1162	select POWER_SUPPLY
1163	select NEW_LEDS
1164	select LEDS_CLASS
1165	select LEDS_TRIGGERS
1166	help
1167	  Say Y here if you want to use the USB or BT version of the Wacom Intuos
1168	  or Graphire tablet.
1169
1170	  To compile this driver as a module, choose M here: the
1171	  module will be called wacom.
1172
1173config HID_WIIMOTE
1174	tristate "Nintendo Wii / Wii U peripherals"
1175	depends on LEDS_CLASS
1176	select POWER_SUPPLY
1177	select INPUT_FF_MEMLESS
1178	help
1179	Support for Nintendo Wii and Wii U Bluetooth peripherals. Supported
1180	devices are the Wii Remote and its extension devices, but also devices
1181	based on the Wii Remote like the Wii U Pro Controller or the
1182	Wii Balance Board.
1183
1184	Support for all official Nintendo extensions is available, however, 3rd
1185	party extensions might not be supported. Please report these devices to:
1186	  http://github.com/dvdhrm/xwiimote/issues
1187
1188	Other Nintendo Wii U peripherals that are IEEE 802.11 based (including
1189	the Wii U Gamepad) might be supported in the future. But currently
1190	support is limited to Bluetooth based devices.
1191
1192	If unsure, say N.
1193
1194	To compile this driver as a module, choose M here: the
1195	module will be called hid-wiimote.
1196
1197config HID_XINMO
1198	tristate "Xin-Mo non-fully compliant devices"
1199	help
1200	Support for Xin-Mo devices that are not fully compliant with the HID
1201	standard. Currently only supports the Xin-Mo Dual Arcade. Say Y here
1202	if you have a Xin-Mo Dual Arcade controller.
1203
1204config HID_ZEROPLUS
1205	tristate "Zeroplus based game controller support"
1206	help
1207	  Say Y here if you have a Zeroplus based game controller.
1208
1209config ZEROPLUS_FF
1210	bool "Zeroplus based game controller force feedback support"
1211	depends on HID_ZEROPLUS
1212	select INPUT_FF_MEMLESS
1213	help
1214	  Say Y here if you have a Zeroplus based game controller and want
1215	  to have force feedback support for it.
1216
1217config HID_ZYDACRON
1218	tristate "Zydacron remote control support"
1219	help
1220	Support for Zydacron remote control.
1221
1222config HID_SENSOR_HUB
1223	tristate "HID Sensors framework support"
1224	depends on HAS_IOMEM
1225	select MFD_CORE
1226	default n
1227	help
1228	  Support for HID Sensor framework. This creates a MFD instance
1229	  for a sensor hub and identifies all the sensors connected to it.
1230	  Each sensor is registered as a MFD cell, so that sensor specific
1231	  processing can be done in a separate driver. Each sensor
1232	  drivers can use the service provided by this driver to register
1233	  for events and handle data streams. Each sensor driver can format
1234	  data and present to user mode using input or IIO interface.
1235
1236config HID_SENSOR_CUSTOM_SENSOR
1237	tristate "HID Sensors hub custom sensor support"
1238	depends on HID_SENSOR_HUB
1239	default n
1240	help
1241	  HID Sensor hub specification allows definition of some custom and
1242	  generic sensors. Unlike other HID sensors, they can't be exported
1243	  via Linux IIO because of custom fields. This is up to the manufacturer
1244	  to decide how to interpret these special sensor ids and process in
1245	  the user space. Currently some manufacturers are using these ids for
1246	  sensor calibration and debugging other sensors. Manufacturers
1247	  shouldn't use these special custom sensor ids to export any of the
1248	  standard sensors.
1249	  Select this config option for custom/generic sensor support.
1250
1251config HID_ALPS
1252	tristate "Alps HID device support"
1253	help
1254	Support for Alps I2C HID touchpads and StickPointer.
1255	Say Y here if you have a Alps touchpads over i2c-hid or usbhid
1256	and want support for its special functionalities.
1257
1258config HID_MCP2221
1259	tristate "Microchip MCP2221 HID USB-to-I2C/SMbus host support"
1260	depends on USB_HID && I2C
1261	depends on GPIOLIB
1262	help
1263	Provides I2C and SMBUS host adapter functionality over USB-HID
1264	through MCP2221 device.
1265
1266	To compile this driver as a module, choose M here: the module
1267	will be called hid-mcp2221.ko.
1268
1269config HID_KUNIT_TEST
1270	tristate "KUnit tests for HID" if !KUNIT_ALL_TESTS
1271	depends on KUNIT=y
1272	depends on HID_UCLOGIC
1273	default KUNIT_ALL_TESTS
1274	help
1275	  This builds unit tests for HID. This option is not useful for
1276	  distributions or general kernels, but only for kernel
1277	  developers working on HID and associated drivers.
1278
1279	  For more information on KUnit and unit tests in general,
1280	  please refer to the KUnit documentation in
1281	  Documentation/dev-tools/kunit/.
1282
1283	  If in doubt, say "N".
1284
1285endmenu
1286
1287source "drivers/hid/bpf/Kconfig"
1288
1289endif # HID
1290
1291source "drivers/hid/usbhid/Kconfig"
1292
1293source "drivers/hid/i2c-hid/Kconfig"
1294
1295source "drivers/hid/intel-ish-hid/Kconfig"
1296
1297source "drivers/hid/amd-sfh-hid/Kconfig"
1298
1299source "drivers/hid/surface-hid/Kconfig"
1300
1301endif # HID_SUPPORT
1302