内核驱动 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 以及兼容的超级 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 传感器)以毫伏为单位报告其值。如果电压已越过可编程的最小值或最大值限制,则会触发警报。

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

该模式适用于 fan1-fan5。

sysfs 属性

pwm[1-7]
  • 此文件存储 PWM 占空比或 DC 值(风扇速度),范围为

    0(最低速度)到 255(全速)

pwm[1-7]_enable
  • 此文件控制风扇/温度控制模式

    • 0 风扇控制禁用(风扇设置为最大速度)

    • 1 手动模式,写入 pwm[0-5] 任何值 0-255

    • 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 指示它们是不同的版本。此驱动程序以相同的方式对待它们。