Kernel 驱动 NCT6775¶
注意
该驱动程序取代了 W83627EHF 驱动程序中对 NCT6775F 和 NCT6776F 的支持。
支持的芯片
Nuvoton NCT6102D/NCT6104D/NCT6106D
前缀:‘nct6106’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可从 Nuvoton 网站获得
Nuvoton NCT5572D/NCT6771F/NCT6772F/NCT6775F/W83677HG-I
前缀:‘nct6775’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT5573D/NCT5577D/NCT6776D/NCT6776F
前缀:‘nct6776’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT5532D/NCT6779D
前缀:‘nct6779’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT6791D
前缀:‘nct6791’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT6792D
前缀:‘nct6792’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT6793D
前缀:‘nct6793’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT6795D
前缀:‘nct6795’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT6796D
前缀:‘nct6796’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
Nuvoton NCT6796D-S/NCT6799D-R
前缀:‘nct6799’
扫描的地址:从 Super I/O 寄存器检索到的 ISA 地址
数据表:可根据要求从 Nuvoton 获得
作者
Guenter Roeck <linux@roeck-us.net>
描述¶
该驱动程序实现了对 Nuvoton NCT6775F、NCT6776F 和 NCT6779D 以及兼容的 super I/O 芯片的支持。
这些芯片支持多达 25 个温度监控源。 其中最多 6 个是直接温度传感器输入,其余是特殊来源,例如 PECI、PCH 和 SMBUS。 根据芯片类型,可以监控 2 到 6 个温度源,并将其与最小、最大和临界温度进行比较。 该驱动程序向用户报告最多 10 个温度。 有 4 到 5 个风扇转速传感器、8 到 15 个模拟电压传感器、一个 VID、带蜂鸣器警告的警报(控制未实现)以及一些自动风扇调节策略(加上手动风扇控制模式)。
所有芯片上的温度传感器源都是可配置的。 每个温度传感器配置的来源在 tempX_label 中提供。
温度以摄氏度为单位测量,测量分辨率为 1 摄氏度或 0.5 摄氏度,具体取决于温度源和配置。 当温度高于上限时,会触发警报; 它会一直保持开启状态,直到温度降至滞后值以下。 警报仅支持 temp1 到 temp6,具体取决于芯片类型。
风扇转速以 RPM(每分钟转数)报告。 如果转速已降至可编程限制以下,则会触发警报。 在 NCT6775F 上,风扇读数可以除以可编程的分频器(1、2、4、8、16、32、64 或 128),以使读数具有更大的范围或精度; 其他芯片没有风扇速度分频器。 驱动程序会自行设置最合适的风扇分频器; 具体来说,每次风扇速度读数返回无效值时,它都会增加分频器值,如果风扇速度读数低于最佳值,则会降低分频器值。 某些风扇可能不存在,因为它们与其他功能共享引脚。
电压传感器(也称为 IN 传感器)以毫伏为单位报告其值。 如果电压已超过可编程的最小值或最大值限制,则会触发警报。
该驱动程序支持称为热巡航的自动风扇控制模式。 在此模式下,芯片尝试将测量的温度保持在预定义的温度范围内。 如果温度超出范围,则风扇会减速/加速以再次达到预定义的范围。
该模式适用于 fan1-fan5。
sysfs 属性¶
- pwm[1-7]
此文件存储 PWM 占空比或 DC 值(风扇速度),范围为
0(最低速度)到 255(全速)
- pwm[1-7]_enable
此文件控制风扇/温度控制的模式
0 风扇控制已禁用(风扇设置为最高速度)
1 手动模式,将任何值 0-255 写入 pwm[0-5]
2 “热巡航”模式
3 “风扇速度巡航”模式
4 “智能风扇 III”模式(仅限 NCT6775F)
5 “智能风扇 IV”模式
- pwm[1-7]_mode
控制输出是 PWM 还是 DC 电平
0 DC 输出
1 PWM 输出
通用风扇控制属性¶
- pwm[1-7]_temp_sel
温度源。 该值是温度传感器索引。 例如,为 temp1_input 选择“1”。
- pwm[1-7]_weight_temp_sel
辅助温度源。 该值是温度传感器索引。 例如,为 temp1_input 选择“1”。 设置为 0 以禁用辅助温度控制。
如果启用了辅助温度功能,则使用以下属性进行控制。
- pwm[1-7]_weight_duty_step
占空比步长大小。
- pwm[1-7]_weight_temp_step
温度步长大小。 对于超过 temp_step_base 的每个步长,weight_duty_step 的值将添加到当前 pwm 值。
- pwm[1-7]_weight_temp_step_base
辅助温度控制开始起作用的温度。
- pwm[1-7]_weight_temp_step_tol
温度步长容差。
热巡航模式 (2)¶
如果温度在以下定义的范围内
- pwm[1-7]_target_temp
目标温度,单位为千分之一摄氏度(范围 0 - 127000)
- pwm[1-7]_temp_tolerance
目标温度容差,单位为千分之一摄氏度
风扇速度没有变化。 一旦温度离开该区间,风扇速度就会增加(如果温度高于所需温度)或降低(如果温度低于所需温度),使用以下限制和时间间隔。
- pwm[1-7]_start
风扇 pwm 起始值(范围 1 - 255),以便在温度高于定义的范围时启动风扇。
- pwm[1-7]_floor
如果温度低于定义的范围,则为最低风扇 pwm(范围 0 - 255)。 如果设置为 0,则当温度低于定义的范围时,风扇预计会停止。
- pwm[1-7]_step_up_time
增加风扇速度之前的毫秒数
- pwm[1-7]_step_down_time
降低风扇速度之前的毫秒数
- pwm[1-7]_stop_time
必须经过多少毫秒才能关闭相应的风扇(当温度低于定义的范围时)。
速度巡航模式 (3)¶
此模式尝试保持风扇速度恒定。
- fan[1-7]_target
目标风扇速度
- fan[1-7]_tolerance
目标速度容差
未经测试; 使用风险自负。
智能风扇 IV 模式 (5)¶
此模式提供多个斜率来控制风扇速度。 可以通过设置 pwm 和温度属性来控制斜率。 当温度升高时,芯片将根据当前斜率计算 DC/PWM 输出。 根据芯片类型,最多有七个数据点。 后续数据点应设置为更高的温度和更高的 pwm 值,以便在温度升高时实现更高的风扇速度。 最后一个数据点反映了临界温度模式,在该模式下,风扇应全速运行。
- pwm[1-7]_auto_point[1-7]_pwm
如果温度达到匹配的温度范围,则要设置的 pwm 值。
- pwm[1-7]_auto_point[1-7]_temp
启用匹配 pwm 的温度。
- pwm[1-7]_temp_tolerance
温度容差,单位为千分之一摄氏度
- pwm[1-7]_crit_temp_tolerance
临界温度的温度容差,单位为千分之一摄氏度
- pwm[1-7]_step_up_time
增加风扇速度之前的毫秒数
- pwm[1-7]_step_down_time
降低风扇速度之前的毫秒数
使用说明¶
在具有 NCT6776F 的各种 ASUS 主板上,CPUTIN 似乎没有真正连接到任何东西并且浮动,或者它连接到一些非标准的温度测量设备。 因此,CPUTIN 上报告的温度不会反映可用的值。 它通常会报告不合理的高温,并且在某些情况下,如果实际温度升高,报告的温度会下降(类似于原始 PECI 温度值 - 有关详细信息,请参阅 PECI 规范)。 因此,在 ASUS 主板上应忽略 CPUTIN。 ASUS 主板上的 CPU 温度从 PECI 0 或 TSI 0 报告。
NCT6796D-S 和 NCT6799D-R 芯片非常相似,它们的 chip_id 表明它们是不同的版本。 此驱动程序以相同的方式对待它们。