Kernel driver adt7475

支持的芯片

  • Analog Devices ADT7473

    前缀: ‘adt7473’

    扫描地址: I2C 0x2C, 0x2D, 0x2E

    数据手册: 可在安森美半导体网站上公开获取

  • Analog Devices ADT7475

    前缀: ‘adt7475’

    扫描地址: I2C 0x2E

    数据手册: 可在安森美半导体网站上公开获取

  • Analog Devices ADT7476

    前缀: ‘adt7476’

    扫描地址: I2C 0x2C, 0x2D, 0x2E

    数据手册: 可在安森美半导体网站上公开获取

  • Analog Devices ADT7490

    前缀: ‘adt7490’

    扫描地址: I2C 0x2C, 0x2D, 0x2E

    数据手册: 可在安森美半导体网站上公开获取

作者
  • Jordan Crouse

  • Hans de Goede

  • Darrick J. Wong (文档)

  • Jean Delvare

描述

此驱动程序实现了对Analog Devices ADT7473、ADT7475、ADT7476和ADT7490芯片系列的支持。 ADT7473和ADT7475仅在细微之处有所不同。ADT7476具有附加功能,包括额外的电压测量输入和VID支持。ADT7490也具有附加功能,包括额外的电压测量输入和PECI支持。在本文档的其余部分中,所有支持的芯片将被统称为“ADT747x”。

ADT747x使用与SMBus 2.0规范兼容的2线接口。它使用模数转换器测量三个 (3) 温度和两个 (2) 或更多电压。它有四个 (4) 16位计数器,用于测量风扇速度。有三个 (3) PWM输出可用于控制风扇速度。

ADT747x中设计了一个用于PWM输出的复杂控制系统,该系统允许根据三个温度传感器中的任何一个自动调节风扇速度。每个PWM输出都是可单独调节和编程的。配置完成后,ADT747x将响应测得的温度来调节PWM输出,而无需主机进一步干预。也可以禁用此功能以手动控制PWM。

每个测量的输入(电压、温度、风扇速度)都有相应的高/低限制值。如果任何测量值超过任一限制,ADT747x将发出ALARM信号。

ADT747x持续采样所有输入。驱动程序读取寄存器的频率不会超过每隔一秒一次。此外,配置数据每分钟仅读取一次。

芯片差异摘要

ADT7473
  • 2 个电压输入

  • 系统声学优化(未实现)

ADT7475
  • 2 个电压输入

ADT7476
  • 5 个电压输入

  • VID支持

ADT7490
  • 6 个电压输入

  • 1 个 Imon 输入

  • PECI支持(未实现)

  • 2 个 GPIO 引脚(未实现)

  • 系统声学优化(未实现)

Sysfs映射

in

ADT7490

ADT7476

ADT7475

ADT7473

in0

2.5VIN (22)

2.5VIN (22)

in1

VCCP (23)

VCCP (23)

VCCP (14)

VCCP (14)

in2

VCC (4)

VCC (4)

VCC (4)

VCC (3)

in3

5VIN (20)

5VIN (20)

in4

12VIN (21)

12VIN (21)

in5

VTT (8)

in6

Imon (19)

特殊功能

ADT747x具有10位ADC,因此可以测量分辨率为0.25摄氏度的温度。可以将温度读数配置为二进制补码格式或“偏移64”格式,其中从原始值中减去64以获得温度值。

数据手册非常详细,并描述了用于确定自动PWM控制的最佳配置的过程。

风扇速度控制

驱动程序为每个PWM通道公开两个跳变点。

  • point1:在较低温度边界设置PWM速度

  • point2:在较高温度边界设置PWM速度

当温度介于两个温度边界之间时,ADT747x将在较低和较高PWM速度之间线性缩放PWM。温度边界与温度通道相关联,而不是与PWM输出相关联,因此,ADT747x可能会在给定时间为一个通道计算多个PWM值,在这种情况下,将应用最大值(最快风扇速度)。PWM值的范围从0(关闭)到255(全速)。

当与PWM控制相关的温度传感器超过temp#_max时,可以将风扇速度设置为最大值。

在Tmin - 滞后时,PWM输出可以关闭(0%占空比)或处于最小值(即auto_point1_pwm)。可以使用 pwm[1-*]_stall_disable sysfs属性 配置此行为。值为0表示风扇将关闭。值为1表示风扇将以auto_point1_pwm运行。

可以配置ADT747x对温度变化的响应能力。这可以平滑风扇速度过渡。要设置过渡时间,请在 temp[1-*]_smoothing sysfs属性中设置以毫秒为单位的值。

注意事项

nVidia二进制驱动程序通过板载i2c总线呈现ADT7473芯片。不幸的是,他们未能设置i2c适配器类,因此在nvidia驱动程序被修补之前,该驱动程序可能无法找到该芯片。