drivers/hid/Kconfig

Source file repositories/reference/linux-study-clean/drivers/hid/Kconfig

File Facts

System
Linux kernel
Corpus path
drivers/hid/Kconfig
Extension
[no extension]
Size
44534 bytes
Lines
1498
Domain
Driver Families
Bucket
drivers/hid
Inferred role
Driver Families: build/configuration rule
Status
atlas-only

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0-only
#
# HID driver configuration
#
menuconfig HID_SUPPORT
	bool "HID bus support"
	default y
	depends on INPUT
	help
	  This option adds core support for human interface device (HID).
	  You will also need drivers from the following menu to make use of it.

if HID_SUPPORT

config HID
	tristate "HID bus core support"
	default y
	depends on INPUT
	help
	  A human interface device (HID) is a type of computer device that
	  interacts directly with and takes input from humans. The term "HID"
	  most commonly used to refer to the USB-HID specification, but other
	  devices (such as, but not strictly limited to, Bluetooth) are
	  designed using HID specification (this involves certain keyboards,
	  mice, tablets, etc). This option adds the HID bus to the kernel,
	  together with generic HID layer code. The HID devices are added and
	  removed from the HID bus by the transport-layer drivers, such as
	  usbhid (USB_HID) and hidp (BT_HIDP).

	  For docs and specs, see https://www.usb.org/developers/hidpage/

	  If unsure, say Y.

if HID

config HID_BATTERY_STRENGTH
	bool "Battery level reporting for HID devices"
	select POWER_SUPPLY
	default n
	help
	This option adds support of reporting battery strength (for HID devices
	that support this feature) through power_supply class so that userspace
	tools, such as upower, can display it.

config HIDRAW
	bool "/dev/hidraw raw HID device support"
	help
	Say Y here if you want to support HID devices (from the USB
	specification standpoint) that aren't strictly user interface
	devices, like monitor controls and Uninterruptible Power Supplies.

	This module supports these devices separately using a separate
	event interface on /dev/hidraw.

	There is also a /dev/hiddev configuration option in the USB HID
	configuration menu. In comparison to hiddev, this device does not process
	the hid events at all (no parsing, no lookups). This lets applications
	to work on raw hid events when they want to, and avoid using transport-specific
	userspace libhid/libusb libraries.

	If unsure, say Y.

config UHID
	tristate "User-space I/O driver support for HID subsystem"
	default n
	help
	Say Y here if you want to provide HID I/O Drivers from user-space.
	This allows to write I/O drivers in user-space and feed the data from
	the device into the kernel. The kernel parses the HID reports, loads the
	corresponding HID Device Driver or provides input devices on top of your

Annotation

Implementation Notes