内核驱动 w83792d¶
支持的芯片
Winbond W83792D
前缀:‘w83792d’
扫描地址:I2C 0x2c - 0x2f
作者:Shane Huang (Winbond) 更新者:Roger Lucas
模块参数¶
- init int
(默认 1)
使用 ‘init=0’ 来绕过芯片初始化。如果加载模块时计算机崩溃,请尝试此操作。
- force_subclients=bus,caddr,saddr,saddr
这用于强制特定芯片的子客户端的 i2c 地址。 例如,force_subclients=0,0x2f,0x4a,0x4b 将强制总线 0 上 0x2f 芯片的子客户端的 i2c 地址为 0x4a 和 0x4b。
描述¶
此驱动程序实现了对 Winbond W83792AD/D 的支持。
芯片的检测有时会失败,因为它可能处于内部状态,不允许进行干净的访问(当前未选择带有 ID 寄存器的 Bank)。 如果您知道芯片的地址,请使用“force”参数; 这将首先将其置于更规范的状态。
该驱动程序实现了三个温度传感器、七个风扇转速传感器、九个电压传感器以及两种自动风扇调节策略,称为:智能风扇 I(热巡航模式)和智能风扇 II。
该驱动程序还实现了最多七个风扇控制输出:pwm1-7。可以通过它们相关的 pwmX_mode 将 Pwm1-7 配置为 PWM 输出或模拟 DC 输出。 输出 pwm4 到 pwm7 可能存在也可能不存在,具体取决于 BIOS 如何配置 W83792AD/D。
自动风扇控制模式仅适用于 fan1-fan3。
对于所有 pwmX 输出,值 0 表示最小风扇速度,值 255 表示最大风扇速度。
温度以摄氏度为单位测量,temp1 的测量分辨率为 1 摄氏度,temp2 和 temp3 的测量分辨率为 0.5 摄氏度。 当温度高于过温关机值时会触发警报; 它会一直保持开启状态,直到温度降至迟滞值以下。
风扇转速以 RPM(每分钟转数)报告。 如果转速降至可编程限制以下,则会触发警报。 风扇读数可以除以可编程的分频器(1、2、4、8、16、32、64 或 128)以提供更大的读数范围或精度。
电压传感器(也称为 IN 传感器)以毫伏为单位报告其值。 如果电压超过可编程的最小值或最大值限制,则会触发警报。
警报作为“实时状态寄存器”的输出提供。 定义了以下位
位 |
警报开启 |
---|---|
0 |
in0 |
1 |
in1 |
2 |
temp1 |
3 |
temp2 |
4 |
temp3 |
5 |
fan1 |
6 |
fan2 |
7 |
fan3 |
8 |
in2 |
9 |
in3 |
10 |
in4 |
11 |
in5 |
12 |
in6 |
13 |
VID 更改 |
14 |
机箱 |
15 |
fan7 |
16 |
tart1 |
17 |
tart2 |
18 |
tart3 |
19 |
in7 |
20 |
in8 |
21 |
fan4 |
22 |
fan5 |
23 |
fan6 |
当相应风扇全速旋转 3 分钟后仍无法达到目标温度时,Tart 将被断言。
除了上述警报之外,芯片上还有一个 CHAS 警报,如果您的计算机机箱打开,则会触发此警报(与实时警报相反,此警报已锁定)。
芯片仅每 3 秒更新一次值; 更频繁地读取它们不会有任何损害,但会返回“旧”值。
W83792D 问题¶
- 已知问题
此驱动程序仅适用于 Winbond W83792D C 版本设备,还有一些主板带有 B 版本 W83792D 设备。 C 版本和 B 版本之间 in6-in7(测量值、限制)的计算方法略有不同。 C 或 B 版本可以通过 CR[0x49h] 识别。
vid 和 vrm 的功能尚未完成,因为我对它们不是很熟悉。 欢迎添加支持。
机箱打开检测的功能需要更多测试。
如果您有 ASUS 服务器主板且未找到芯片:那么您需要升级到最新的(或测试版)BIOS。 如果它没有帮助,请联系我们。
风扇控制¶
手动模式¶
按预期工作。 您只需在相应的 pwm# 文件中指定所需的 PWM/DC 值(风扇速度)。
热巡航¶
在此模式下,W83792D 提供智能风扇系统来自动控制风扇速度,以使 CPU 和系统的温度保持在特定范围内。 首先必须设置所需的温度和间隔。 这是通过 thermal_cruise# 文件完成的。 tolerance# 文件用于创建 T +- tolerance 间隔。 只要当前温度保持在 thermal_cruise# +- tolerance# 值以下,风扇速度就会降低。 一旦温度超过高限(T+tolerance),风扇将以 pwm# 设置的特定速度打开,并随着温度的变化自动控制其 PWM 占空比。 可能会出现三种情况
(1) 如果温度仍然超过高限,PWM 占空比将缓慢增加。
(2) 如果温度低于高限,但仍然高于低限(T-tolerance),则风扇速度将固定在当前速度,因为温度在目标范围内。
(3) 如果温度低于低限,PWM 占空比将缓慢降低到 0 或预设的停止值,直到温度超过低限。(驱动程序中尚未实现预设停止值处理)
智能风扇 II¶
W83792D 还为风扇提供了一种特殊模式。 有四个温度点可用。 当相关的温度传感器检测到预设温度区域(sf2_point@_fan# +- tolerance#)的温度时,它将导致风扇以 sf2_level@_fan# 中的编程值运行。 您需要为每个风扇设置四个温度。
/sys 文件¶
- pwm[1-7]
此文件存储范围内的 PWM 占空比或 DC 值(风扇速度)
0(停止)到 255(全速)
- pwm[1-3]_enable
此文件控制风扇/温度控制的模式
0 禁用
1 手动模式
2 智能风扇 II
3 热巡航
- pwm[1-7]_mode
选择 PWM 或 DC 模式
0 DC
1 PWM
- thermal_cruise[1-3]
选择巡航的所需温度(摄氏度)
- tolerance[1-3]
以摄氏度为单位 (degC) 表示 +- T 的值
- sf2_point[1-4]_fan[1-3]
智能风扇 II 中每个风扇的四个温度点
- sf2_level[1-3]_fan[1-3]
智能风扇 II 中每个风扇的三个 PWM/DC 级别