内核驱动 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 算法运行。这在早期版本的驱动程序中是必需的。