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.c、hid-ntrig.c |
| 数位板 |
wacom_*.c、hid-uclogic-*、hid-waltop.c |
| 游戏手柄 |
hid-playstation.c、hid-sony.c、hid-nintendo.c、hid-steam.c |
| Logitech |
hid-lg*.c、hid-logitech-dj.c、hid-logitech-hidpp.c |
| 键鼠 |
hid-apple.c、hid-microsoft.c、hid-lenovo.c |
| HID sensor |
hid-sensor-hub.c、hid-sensor-custom.c |
| 桥接芯片 |
hid-cp2112.c、hid-ft260.c、hid-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
|
HID、HID_GENERIC、USB_HID 具有默认 y 语义,但应以最终 .config 为准。rk3588_vehicle.config 明确关闭 USB HIDDEV。
正在加载留言…