内核驱动 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 将发出警报。
ADT7470 连续采样所有输入。 启动一个内核线程,用于定期查询温度传感器,从而允许自动风扇 pwm 控制设置风扇速度。 驱动程序读取寄存器的频率不会超过每 5 秒一次。 此外,配置数据每分钟只读取一次。
特殊功能¶
ADT7470 具有 8 位 ADC,能够以 1 摄氏度的分辨率测量温度。
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 算法。 这是早期版本驱动程序的情况。