内核驱动程序 w83627ehf

支持的芯片

  • 华邦 W83627EHF/EHG (仅限 ISA 访问)

    前缀: ‘w83627ehf’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 不可用

  • 华邦 W83627DHG

    前缀: ‘w83627dhg’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 不可用

  • 华邦 W83627DHG-P

    前缀: ‘w83627dhg’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 不可用

  • 华邦 W83627UHG

    前缀: ‘w83627uhg’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 可从 www.nuvoton.com 获取

  • 华邦 W83667HG

    前缀: ‘w83667hg’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 不可用

  • 华邦 W83667HG-B

    前缀: ‘w83667hg’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 可向 Nuvoton 请求获取

  • 新唐 NCT6775F/W83667HG-I

    前缀: ‘nct6775’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 可向 Nuvoton 请求获取

  • 新唐 NCT6776F

    前缀: ‘nct6776’

    扫描地址: 从 Super I/O 寄存器检索的 ISA 地址

    数据手册: 可向 Nuvoton 请求获取

作者

描述

此驱动程序支持华邦 W83627EHF、W83627EHG、W83627DHG、W83627DHG-P、W83627UHG、W83667HG、W83667HG-B、W83667HG-I (NCT6775F) 和 NCT6776F 超级 I/O 芯片。我们将它们统称为华邦芯片。

这些芯片实现了 3 到 4 个温度传感器(NCT6775F 和 NCT6776F 为 9 个)、2 到 5 个风扇转速传感器、8 到 10 个模拟电压传感器、一个 VID(627UHG 除外)、带蜂鸣警告的报警功能(控制未实现),以及一些自动风扇调节策略(加上手动风扇控制模式)。

W82677HG-B、NCT6775F 和 NCT6776F 上的温度传感器源是可配置的。仅当 temp4 及更高属性的温度源与已报告温度传感器的温度源不同时,才报告这些属性。每个温度传感器的配置源在 tempX_label 中提供。

温度以摄氏度(degC)测量,temp1 的测量分辨率为 1 degC,temp2 和 temp3 为 0.5 degC。对于 temp4 及更高版本,W83667HG-B 的分辨率为 1 degC,NCT6775F 和 NCT6776F 的分辨率为 0.0 degC。当温度高于上限时,会触发警报;警报会一直持续到温度低于滞后值。警报仅支持 temp1、temp2 和 temp3。

风扇转速以 RPM(每分钟转数)报告。如果转速低于可编程限值,则会触发警报。风扇读数可以通过可编程分频器(1、2、4、8、16、32、64 或 128)进行分频,以提供更大的读数范围或更高的准确性。驱动程序会自行设置最合适的风扇分频器。某些风扇可能不存在,因为它们与其它功能共享引脚。

电压传感器(也称为 IN 传感器)以毫伏(millivolts)报告其值。如果电压超出可编程的最小或最大限制,则会触发警报。

驱动程序支持名为“Thermal Cruise”的自动风扇控制模式。在此模式下,芯片会尝试将测量温度保持在预定义的温度范围内。如果温度超出范围,风扇会减速/加速,以便再次达到预定范围。

该模式适用于 fan1-fan4。温度到 PWM 输出的映射如下:

temp1 -> pwm1
temp2 -> pwm2
temp3 -> pwm3 (not on 627UHG)
prog  -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not
               supported by the driver)

/sys 文件

名称

这是一个标准的 hwmon 设备条目,包含设备的名称(请参阅此文件顶部支持设备列表中的前缀)

pwm[1-4]

此文件存储 PWM 占空比或直流值(风扇速度),范围为

0(停止)到 255(全速)

pwm[1-4]_enable

此文件控制风扇/温度控制模式

  • 1 手动模式,向 pwm 文件写入任意值 0-255(全速)

  • 2 “Thermal Cruise” 模式

  • 3 “Fan Speed Cruise” 模式

  • 4 “Smart Fan III” 模式

  • 5 “Smart Fan IV” 模式

NCT6776F 不支持 SmartFan III 模式。

SmartFan IV 模式仅在系统启动时配置后才可配置,且仅支持 W83677HG-B、NCT6775F 和 NCT6776F。SmartFan IV 的操作参数目前无法配置,并且 SmartFan IV 模式下不使用各种 pwm 属性。这些属性可以写入,如果您计划为系统配置不同的 pwm 模式,这将很有用。但是,读取 pwm 属性时返回的信息与 SmartFan IV 操作无关。

pwm[1-4]_mode

控制输出是 PWM 还是直流电平

  • 0 直流输出 (0 - 12v)

  • 1 PWM 输出

Thermal Cruise 模式

如果温度在由以下参数定义的范围内:

pwm[1-4]_target

设置目标温度,单位毫摄氏度 (millidegree Celsius)(范围 0 - 127000)

pwm[1-4]_tolerance

容差,单位毫摄氏度 (millidegree Celsius)(范围 0 - 15000)

风扇速度不会发生变化。一旦温度超出此区间,如果温度更高则风扇速度增加,如果温度低于预期则风扇速度降低。虽然定义了步进和时间,但驱动程序尚未导出。

pwm[1-4]_min_output

最小风扇速度(范围 1 - 255),当温度低于定义范围时。

pwm[1-4]_stop_time

需要经过多少毫秒 [ms] 才能关闭相应的风扇。(当温度低于定义范围时)。

pwm[1-4]_start_output

启动时最小风扇速度(范围 1 - 255)

pwm[1-4]_step_output

风扇速度变化率 (1 - 255)

pwm[1-4]_stop_output

降速时最小风扇速度(范围 1 - 255)

pwm[1-4]_max_output

最大风扇速度(范围 1 - 255),当温度高于定义范围时。

注意:最后六个功能受其他控制位影响,但尚未导出

通过驱动程序,因此更改可能不会有任何效果。

实现细节

未来的驱动程序开发应注意,以下寄存器在 627EHF 和 627DHG 上具有不同的功能。某些寄存器也具有不同的上电默认值,但 BIOS 应该已经加载了适当的默认值。请注意,对于所有寄存器地址,必须像驱动程序中当前那样执行 bank 选择。

寄存器

含义

0x49

仅在 DHG 上,选择 AUX 风扇、CPU fan0 的温度源

0x4a

EHF 尚未完全文档化,DHG 文档为位 7 和 6 分配了不同的行为,包括将温度输入选择扩展到 SmartFan I,而不仅仅是 SmartFan III。在 EHF 上进行测试将揭示它们是否兼容。

0x58

芯片 ID: 0xa1=EHF 0xc1=DHG

0x5e

仅在 DHG 上,有用于启用“电流模式”温度检测和关键温度保护的位

0x45b

仅在 EHF 上,位 3,vin4 报警(EHF 支持 10 个输入,DHG 仅支持 9 个)

0x552

仅在 EHF 上,vin4

0x558

仅在 EHF 上,vin4 上限

0x559

仅在 EHF 上,vin4 下限

0x6b

仅在 DHG 上,SYS 风扇关键温度

0x6c

仅在 DHG 上,CPU fan0 关键温度

0x6d

仅在 DHG 上,AUX 风扇关键温度

0x6e

仅在 DHG 上,CPU fan1 关键温度

0x50-0x55 和 0x650-0x657

标记为

  • EHF 的“测试寄存器”

  • DHG 的“保留寄存器”

DHG 还支持 PECI,DHG 查询 Intel CPU 温度,ICH8 南桥通过 PECI 从 DHG 获取该数据,从而使南桥驱动风扇。DHG 还支持 SST,一种单线串行总线。

DHG-P 具有一个名为 Smart Fan (TM) III+ 的额外自动风扇速度控制模式。此模式尚未被驱动程序支持。