drivers/hwmon/ 源码目录与驱动索引
1. 构建
1 | CONFIG_HWMON -> hwmon.o |
HWMON_DEBUG_CHIP 为本目录编译增加 DEBUG 日志。
2. 核心
| 文件 | 作用 |
|---|---|
hwmon.c |
class、现代 API、属性生成、thermal bridge |
hwmon-vid.c |
传统 CPU VID 换算 |
include/linux/hwmon.h |
sensor types、attributes、ops/API |
include/trace/events/hwmon.h |
read/write tracepoints |
Documentation/hwmon/ |
ABI、内核 API、每驱动说明 |
本树没有单独的 hwmon-sysfs.c;sysfs 自动属性生成直接实现在 hwmon.c。大量 legacy 驱动则在自身文件中用 SENSOR_DEVICE_ATTR* 定义属性。
3. 总线分类
| 类型 | 代表 |
|---|---|
| I2C/SMBus | lm75、lm90、tmp102、ina2xx、sht3x |
| SPI | adt7310、lm70、max31722、ltc2947-spi |
| Platform/MMIO | pwm-fan、gpio-fan、mr75203、bt1-pvt |
| PCI/ACPI/x86 | coretemp、k10temp、acpi_power_meter |
| Firmware | scmi-hwmon、scpi-hwmon |
| USB/HID | corsair-*、aquacomputer_d5next、nzxt-* |
| IIO bridge | iio_hwmon |
4. 类型分类
| 功能 | 代表驱动 |
|---|---|
| 温度 | lm75/lm90/tmp*/jc42 |
| 温湿度 | aht10/sht*/hih6130 |
| 电压 ADC | ads7828/pcf8591/mcp3021 |
| 电流/功率 | ina2xx/ina238/ina3221/ltc2945 |
| 风扇/PWM | pwm-fan/gpio-fan/emc2305/max31790 |
| 电源控制器 | pmbus/ |
| SoC PVT | mr75203/bt1-pvt/as370 |
| 硬盘温度 | drivetemp |
5. PMBus
pmbus/pmbus_core.c 实现协议通用层;pmbus.c 是 generic PMBus driver;其余文件提供芯片 pages、功能位、寄存器和格式 quirks。
6. RK3588 相关性
本树 RK3588 DTS 明确出现大量 pwm-fan 节点。主 defconfig 没有显式写 SENSORS_PWM_FAN,仅 rk3588_edge.config 明确启用,因此必须检查产品最终配置。
SoC TSADC 使用 drivers/thermal/rockchip_thermal.c 和 CONFIG_ROCKCHIP_THERMAL=y,不在本目录。
主配置中的 SENSORS_ISL29018、SENSORS_TSL2563 是环境光 IIO/input 类配置,不是本目录 HWMON sensor。
7. 文档
本树 Documentation/hwmon/ 有 200 余篇驱动文档,通用接口重点:
sysfs-interface.rsthwmon-kernel-api.rstuserspace-tools.rstpwm-fan.rstpmbus-core.rst
正在加载留言…