内核驱动 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 算法。 这是早期版本驱动程序的情况。