内核驱动程序 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 请求获取
作者
Jean Delvare <jdelvare@suse.de>
Yuan Mu (华邦)
Rudolf Marek <r.marek@assembler.cz>
David Hubbard <david.c.hubbard@gmail.com>
Gong Jun <JGong@nuvoton.com>
描述¶
此驱动程序支持华邦 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 |
标记为
|
DHG 还支持 PECI,DHG 查询 Intel CPU 温度,ICH8 南桥通过 PECI 从 DHG 获取该数据,从而使南桥驱动风扇。DHG 还支持 SST,一种单线串行总线。
DHG-P 具有一个名为 Smart Fan (TM) III+ 的额外自动风扇速度控制模式。此模式尚未被驱动程序支持。