HWMON 子系统架构与源码总览
1. 定位
HWMON 为温度、电压、电流、功率、能量、湿度、风扇、PWM 和机箱入侵传感器提供统一 sysfs ABI。
1 | lm-sensors / monitoring daemon |
2. Core
hwmon.c 注册 class "hwmon",每个监控设备获得动态 hwmonN。主要对象:
hwmon_device;hwmon_chip_info;hwmon_channel_info;hwmon_ops;- 自动生成的
hwmon_device_attribute。
3. 传感器类型
1 | hwmon_chip |
每种类型有标准属性位,例如 HWMON_T_INPUT、HWMON_F_INPUT、HWMON_PWM_INPUT。
4. 现代注册
1 | bus/platform probe |
5. 读取
1 | cat temp1_input |
写阈值/PWM同理由 write() 完成。
6. 标准 ABI
典型:
1 | name |
单位由 ABI 固定,不能由驱动自行选择。
7. Driver families
- I2C/SMBus 温度/电力 sensor;
- SPI temperature/ADC;
- platform SoC PVT;
- Super-I/O;
- PMBus power controller;
- firmware SCMI/SCPI;
- IIO to hwmon bridge;
- PWM/GPIO fan;
- USB/HID 水冷和 PSU。
8. 与 Thermal 的边界
HWMON 面向观测、阈值和人工控制;Thermal 框架负责 thermal zone、trip、governor、cooling device。Core 可用 HWMON_C_REGISTER_TZ 将温度 channel 注册成 OF thermal sensor,但 RK3588 主 TSADC 直接由 drivers/thermal/rockchip_thermal.c 管理,不通过 drivers/hwmon。
9. RK3588
实际重点:
- SoC 温度:Rockchip TSADC / thermal zones;
- 板级风扇:
pwm-fan.c,同时暴露 hwmon 与 cooling device; - 外置 INA/LM75/PMBus 等:仅在板级 DTS 和 Kconfig 明确启用时存在;
- IIO ADC 电压可经
iio_hwmon暴露; - regulator voltage 不自动等于 hwmon voltage。
10. 版本事实
本目录约 272 个文件。大部分是跨平台驱动,源码存在不代表 RK3588 构建或板上有该芯片。分析必须同时核对 Kconfig、最终 .config、DTS compatible 和实际 I2C/SPI 设备。
正在加载留言…