PMBus 电源监控框架
1. 分层
1 | chip driver (adm1275/ltc2978/...) |
pmbus.c 是 generic PMBus driver,专用文件描述不同芯片 capabilities、pages、register 和 quirks。
2. 基本概念
- pages:多个 rail/channel;
- standard commands;
- manufacturer commands;
- status words;
- direct/linear/VID formats;
- read/write byte/word/block;
- alert/SMBALERT。
3. Driver info
芯片驱动提供 pmbus_driver_info:
- pages;
- per-page function bits;
- data formats;
- coefficients;
- virtual registers;
- read/write override;
- identify callback。
Core据此生成 temp/in/curr/power/fan attributes。
4. Probe
1 | i2c probe |
generic driver通常需要明确 device ID/DT compatible,避免盲目绑定不兼容 SMBus 设备。
5. 数据格式
Linear11
5-bit signed exponent + 11-bit signed mantissa:
1 | value = mantissa * 2^exponent |
Linear16
16-bit unsigned mantissa,exponent通常来自 VOUT_MODE。
Direct
使用 m/b/R 系数换算,必须正确处理符号和溢出。
6. Pages
读写多 page device时先选择 PAGE register。Core必须串行 page select + data access,防止并发读不同 rail 串页。
7. Status/Alarm
PMBus status包括:
- VOUT/IOUT/INPUT;
- temperature;
- CML;
- fan;
- manufacturer。
清状态可能改变硬件 latch;驱动需区分读取状态和显式 reset history。
8. PEC/SMBus
部分器件支持 SMBus Packet Error Checking。是否启用取决于 adapter 和 device。错误 PEC 会表现为 -EBADMSG 或通信失败,不能通过忽略校验长期运行。
9. PMBus 与 regulator
PMBus HWMON负责观测和标准阈值;若器件同时是 regulator,电压设定/enable 可能由 regulator framework 驱动。两个接口的权限和并发必须协调,不能通过 hwmon 私有属性绕过 regulator consumers。
10. RK3588
本树包含完整 PMBus 驱动,但公共 RK3588 DTS 未显示统一 PMBus 电源控制器。服务器/NVR 定制板若添加器件,需要同时启用 CONFIG_PMBUS 和对应 SENSORS_*。
正在加载留言…