drivers/hid/ 源码目录与模块索引

drivers/hid/ 源码目录与模块索引

1. 构建核心

drivers/hid/Makefile

1
2
3
hid.o = hid-core.o + hid-input.o + hid-quirks.o
+ hid-debug.o [CONFIG_DEBUG_FS]
+ hidraw.o [CONFIG_HIDRAW]
Kconfig 模块 说明
HID hid.o HID bus/core
HID_GENERIC hid-generic.o 通用驱动
HIDRAW 合入 hid.o /dev/hidrawN
UHID uhid.o 用户态传输

2. 核心文件

文件 职责
hid-core.c parser、bus、匹配、报告收发、生命周期
hid-input.c usage 到 input event 映射
hid-quirks.c VID/PID quirk 表和动态覆盖
hid-generic.c 通用 HID driver
hidraw.c 原始字符设备
uhid.c /dev/uhid 虚拟低层传输
hid-debug.c debugfs 描述符和事件
hid-ids.h 厂商/产品 ID

3. 传输目录

目录 Kconfig 说明
usbhid/ USB_HID USB HID transport
i2c-hid/ I2C_HID_* ACPI/OF I2C HID
intel-ish-hid/ INTEL_ISH_HID Intel sensor hub
amd-sfh-hid/ AMD_SFH_HID AMD sensor fusion hub
surface-hid/ Surface 相关 Microsoft Surface transport

Bluetooth HIDP 位于 net/bluetooth/hidp/,并非本目录。

4. 专用驱动分类

类别 代表文件
多点触控 hid-multitouch.chid-ntrig.c
数位板 wacom_*.chid-uclogic-*hid-waltop.c
游戏手柄 hid-playstation.chid-sony.chid-nintendo.chid-steam.c
Logitech hid-lg*.chid-logitech-dj.chid-logitech-hidpp.c
键鼠 hid-apple.chid-microsoft.chid-lenovo.c
HID sensor hid-sensor-hub.chid-sensor-custom.c
桥接芯片 hid-cp2112.chid-ft260.chid-mcp2221.c
显示/LED hid-picolcd_*hid-led.c

5. USB 子目录

1
2
3
usbhid.o = hid-core.o
+ hiddev.o [USB_HIDDEV]
+ hid-pidff.o [HID_PID]

usbkbd.c/usbmouse.c 是受限 Boot Protocol 驱动,不能与完整 USB HID 常规配置混用。

6. I2C 子目录

1
2
3
4
5
i2c-hid.o              = i2c-hid-core.o [+ DMI quirks]
i2c-hid-acpi.o = ACPI glue
i2c-hid-of.o = generic DT glue
i2c-hid-of-elan.o = Elan DT power/reset glue
i2c-hid-of-goodix.o = Goodix DT power/reset glue

7. 配置事实

Rockchip 主配置显式启用:

1
2
3
4
5
6
7
8
CONFIG_BT_HIDP=y
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_UHID=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_MULTITOUCH=y
CONFIG_USB_HIDDEV=y
CONFIG_I2C_HID_OF=y

HIDHID_GENERICUSB_HID 具有默认 y 语义,但应以最终 .config 为准。rk3588_vehicle.config 明确关闭 USB HIDDEV。

文章互动

阅读 --

留言

0 条留言

正在加载留言…