内核驱动 pc87360

支持的芯片

  • National Semiconductor PC87360、PC87363、PC87364、PC87365 和 PC87366

    前缀:‘pc87360’、‘pc87363’、‘pc87364’、‘pc87365’、‘pc87366’

    扫描的地址:无,地址从超级 I/O 配置空间读取

    数据手册:不再可用

作者:Jean Delvare <jdelvare@suse.de>

感谢 Sandeep Mehta、Tonko de Rooy 和 Daniel Ceregatti 进行测试。

感谢 Rudolf Marek 帮助我调查转换问题。

模块参数

  • init int

    芯片初始化级别

    • 0:无

    • 1:强制启用内部电压和温度通道,除了 in9

    • 2:强制启用所有电压和温度通道,除了 in9

    • 3:强制启用所有电压和温度通道,包括 in9

请注意,此参数对 PC87360、PC87363 和 PC87364 芯片无效。

另请注意,对于 PC87366,初始化级别 2 和 3 不会启用所有温度通道,因为其中一些通道彼此共享引脚,因此不能同时使用。

描述

National Semiconductor PC87360 超级 I/O 芯片包含用于两个风扇的监控和 PWM 控制电路。PC87363 芯片类似,而 PC87364 芯片具有用于第三个风扇的监控和 PWM 控制。

National Semiconductor PC87365 和 PC87366 超级 I/O 芯片是完整的硬件监控芯片组,不仅控制和监控三个风扇,还监控十一个电压输入和两个(PC87365)或最多四个(PC87366)温度。

芯片

#vin

#fan

#pwm

#temp

devid

PC87360

2

2

0xE1

PC87363

2

2

0xE8

PC87364

3

3

0xE4

PC87365

11

3

3

2

0xE5

PC87366

11

3

3

3-4

0xE9

驱动程序假定不存在多个芯片,并且使用标准的超级 I/O 地址之一(0x2E/0x2F 或 0x4E/0x4F)

风扇监控

风扇转速以 RPM(每分钟转数)报告。如果转速低于可编程的限制,则会触发警报。如果风扇转速太低而无法测量,则会触发不同的警报。

风扇读数受可编程时钟分频器的影响,从而提供更大的读数范围或精度。通常,用户必须学习它是如何工作的,但是此驱动程序实现了动态时钟分频器选择,因此您不必再担心了。

作为参考,以下是一些关于时钟分频器的值

分频器

速度 (RPM)

RPM (RPM)

速度 (RPM)

1

1882

18

6928

2

941

37

4898

4

470

74

3464

8

235

150

2449

对于好奇的人,以下是以上值的计算方式

  • 最慢的可测量速度:clock/(255*分频器)

  • 3000 RPM 左右的精度:3000^2/clock

  • 最高精度速度:sqrt(clock*100)

PC87360 系列的时钟速度为 480 kHz。我任意选择 100 RPM 作为最低可接受的精度。

如上所述,您不必再担心了。

请注意,即使选择了最佳时钟分频器,也并非所有 RPM 值都可以表示。这不仅适用于测量的速度,也适用于可编程的低限值,因此如果您尝试将 fan1_min 设置为 2900 并最终读取 2909,请不要感到惊讶。

风扇控制

PWM(脉冲宽度调制)值的范围从 0 到 255,其中 0 表示风扇停止,255 表示风扇全速运转。

更改 PWM 值时要格外小心。较低的 PWM 值,即使是非零值,也可能使风扇停止,如果温度升高太多,可能会对您的硬件造成不可逆转的损坏。更改 PWM 值时,请逐步进行并密切关注温度。

一位用户报告了 PWM 的问题。更改 PWM 值会破坏风扇转速读数。找不到任何解释或修复方法。

温度监控

温度以摄氏度报告。每个测量的温度都具有相关的低、高和超温限制,当越过这些限制时,每个限制都会触发警报。

前两个温度通道是外部的。第三个通道(仅限 PC87366)是内部的。

PC87366 具有三个额外的温度通道,基于热敏电阻(与前三个温度通道的热二极管相反)。由于技术原因,这些通道由 VLM(电压电平监控器)逻辑设备而不是 TMS(温度测量)逻辑设备控制。因此,这些温度作为电压导出,并在用户空间中转换为温度。

请注意,这三个额外的通道与外部热二极管通道共享引脚,因此您(物理上)不能同时使用它们。尽管应该可以混合使用这两种传感器类型,但 National Semiconductor 的文档建议主板制造商应选择一种类型并坚持使用。因此,您更有可能拥有通道 1 到 3(热二极管)或 3 到 6(内部热二极管和热敏电阻)。

电压监控

电压相对于参考电压报告,参考电压可以是内部的或外部的。其中一些(in7:Vsb、in8:Vdd 和 in10:AVdd)在内部除以 2,您必须在 sensors.conf 中进行补偿。其他(in0 到 in6)可能在外部被划分。每个输入的含义以及用于划分的电阻值留给主板制造商,因此您必须自己查阅资料并相应地编辑 sensors.conf。National Semiconductor 有一份文件,其中包含一些电压的推荐电阻值,但这仍然为每个主板的特殊性留出了很大的空间,不幸的是。更糟糕的是,主板制造商似乎并不关心 National Semiconductor 的建议。

每个测量的电压都有相关联的低限和高限,当越过这些限制时,每个限制都会触发警报。

如果可用,VID 输入用于提供标称 CPU 内核电压。驱动程序将默认为 VRM 9.0,但可以从用户空间进行更改。芯片组可以处理两组 VID 输入(在双 CPU 系统上),但驱动程序现在只会导出一个。如果有需要,这可能会在以后发生变化。

一般说明

如果触发了警报,则在至少读取一次硬件寄存器之前,它将保持触发状态。这意味着警报的原因可能已经消失了!请注意,每当读取任何数据时,都会读取所有硬件寄存器(除非距离上次更新的时间少于 2 秒,在这种情况下,将返回缓存的值)。因此,当触发一次性警报时,可能需要 2 秒才能显示,然后再过 2 秒才能消失。

较低的初始化级别(<3)不启用对 in9 的监控,因为该通道测量电池电压(Vbat)。众所周知,重复采样电池电压会缩短其寿命。National Semiconductor 精明地设计了他们的芯片组,使得 in9 每 1024 个采样周期(即在默认采样率下每 34 分钟)仅采样一次,因此效果减弱,但仍然存在。

限制

数据手册建议一旦开始监控,就不应更改某些值(风扇最小值、风扇分频器),但我们忽略了该建议。如果它确实引起麻烦,我们将重新考虑。