内核驱动 adt7470¶
支持的芯片
Analog Devices ADT7470
前缀:‘adt7470’
扫描地址:I2C 0x2C, 0x2E, 0x2F
数据手册:可在 Analog Devices 网站公开获取
作者:Darrick J. Wong
描述¶
此驱动程序实现了对 Analog Devices ADT7470 芯片的支持。可能还有其他芯片也实现了此接口。
ADT7470 采用兼容 SMBus 2.0 规范的 2 线接口。它使用一个模数转换器测量多达十 (10) 个外部温度。它有四 (4) 个 16 位计数器用于测量风扇速度。有四 (4) 个 PWM 输出可用于控制风扇速度。
ADT7470 内部设计了一个复杂的 PWM 输出控制系统,可以根据十个温度传感器中的任何一个自动调整风扇速度。每个 PWM 输出都可以单独调整和编程。一旦配置完成,ADT7470 将根据测量的温度自动调整 PWM 输出,无需进一步的主机干预。此功能也可以禁用,以便手动控制 PWM。
每个测量输入(温度、风扇速度)都有相应的高/低限制值。如果任何测量值超过任一限制,ADT7470 将发出警报 (ALARM)。
ADT7470 持续采样所有输入。为了定期查询温度传感器,启动了一个内核线程,从而允许自动风扇 PWM 控制设置风扇速度。驱动程序读取寄存器的频率不会超过每 5 秒一次。此外,配置数据每分钟只读取一次。
特殊功能¶
ADT7470 具有 8 位 ADC,能够以 1 摄氏度 (degC) 的分辨率测量温度。
Analog Devices 数据手册非常详细,描述了确定自动 PWM 控制最佳配置的程序。
配置说明¶
除了标准接口,驱动程序还添加了以下内容:
PWM 控制
pwm#_auto_point1_pwm 和 pwm#_auto_point1_temp 以及
pwm#_auto_point2_pwm 和 pwm#_auto_point2_temp -
point1:在较低温度下限设置 PWM 速度。
point2:在较高温度上限设置 PWM 速度。
当温度介于两个温度边界之间时,ADT7470 将在较低和较高 PWM 速度之间缩放 PWM。PWM 值的范围是 0(关闭)到 255(全速)。当与 PWM 控制关联的温度传感器超过 pwm#_auto_point2_temp 时,风扇速度将设置为最大。
驱动程序还允许控制 PWM 频率
pwm1_freq
PWM 频率将四舍五入到以下值之一:
11.0 Hz
14.7 Hz
22.1 Hz
29.4 Hz
35.3 Hz
44.1 Hz
58.8 Hz
88.2 Hz
1.4 kHz
22.5 kHz
备注¶
不再需要从用户空间定期读取温度输入,以便自动 PWM 算法运行。这在早期版本的驱动程序中是必需的。