内核驱动 adt7475

支持的芯片

  • Analog Devices ADT7473

    前缀:‘adt7473’

    扫描地址:I2C 0x2C, 0x2D, 0x2E

    数据手册:在 On Semiconductors 网站上公开提供

  • Analog Devices ADT7475

    前缀:‘adt7475’

    扫描地址:I2C 0x2E

    数据手册:在 On Semiconductors 网站上公开提供

  • Analog Devices ADT7476

    前缀:‘adt7476’

    扫描地址:I2C 0x2C, 0x2D, 0x2E

    数据手册:在 On Semiconductors 网站上公开提供

  • Analog Devices ADT7490

    前缀:‘adt7490’

    扫描地址:I2C 0x2C, 0x2D, 0x2E

    数据手册:在 On Semiconductors 网站上公开提供

作者
  • 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 输出相关联,并且给定的 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 驱动程序之前,此驱动程序可能无法找到芯片。