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驱动程序被修补之前,该驱动程序可能无法找到该芯片。