PMBus 电源监控框架

PMBus 电源监控框架

1. 分层

1
2
3
4
5
6
7
chip driver (adm1275/ltc2978/...)
|
pmbus_core.c
|
I2C/SMBus
|
HWMON sysfs

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
2
3
4
5
6
7
8
i2c probe
-> identify chip/revision
-> allocate pmbus_driver_info
-> pmbus_do_probe()
-> check PMBus capability
-> discover pages/functions
-> initialize data
-> create hwmon attributes

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_*

文章互动

阅读 --

留言

0 条留言

正在加载留言…