Kernel driver asc7621

支持的芯片

Andigilog aSC7621 和 aSC7621a

前缀: ‘asc7621’

扫描的地址: I2C 0x2c, 0x2d, 0x2e

数据手册: http://www.fairview5.com/linux/asc7621/asc7621.pdf

作者

George Joseph

Dave Pivin @ Andigilog 提供的描述

Andigilog 拥有 Heceta-6 的 PECI 和 pre-PECI 版本,正如 Intel 所称。Heceta-6e 具有高频 PWM,而 Heceta-6p 添加了 PECI 和第 4 个热区。Andigilog aSC7611 是 Heceta-6e 部件,而 aSC7621 是 Heceta-6p 部件。它们都已批量生产,并运送给 Intel 及其子公司。

相对于 Intel 的主要规范,我们增强了这两个部件。第一个增强功能是温度读取分辨率。除了 Intel 指定的供应商范围之外,我们还在 20h 以下的寄存器中使用了供应商特定的功能。

我们的转换过程产生一个结果,该结果报告为两个字节。风扇速度控制使用这个更精细的值来产生“无级”风扇 PWM 输出。这两个字节是“读取锁定”的,以保证一旦读取高字节或低字节,另一个字节将被锁定,直到下次读取任何寄存器之后。因此,要获得原子读取,请读取高字节或低字节,然后紧接着的下一次读取应为相反的字节。我们的数据表表明分辨率为 10 位,尽管您可能会发现较低位处于活动状态,但它们不一定是可靠的或对外部有用的。我们选择不屏蔽它们。

我们采用了显著的滤波,用户可以对其进行调整,如数据表中所述。除了更高的分辨率温度报告之外,与竞争对手相比,我们的温度报告和风扇 PWM 输出非常平滑。更平滑的 PWM 输出不需要用户干预。

我们在之前的 VID 引脚上提供 GPIO 功能。这些是开漏输出或输入,可以用作通用 I/O 或基于温度限制的警报输出。这些在 19h 和 1Ah 中。

我们提供温度读数到热区的灵活映射。任何温度都可以映射到任何区域,该区域具有遵循 Intel 规范的默认分配。

由于存在一个风扇到区域的分配,允许一组区域中“较热”的区域控制单个风扇的 PWM,但没有向用户指示,因此我们添加了一个指示器,显示哪个区域当前正在控制给定风扇的 PWM。这在寄存器 00h 中。

可以为两个远程二极管温度读数提供一个偏移值,以便可以将报告的读数以及用于确定 PWM 的温度偏移以用于系统校准目的。

PECI 扩展配置允许每个 PECI 地址拥有两个以上的域,并且还为每个 PECI 地址提供了一个启用功能。可以使用我们灵活的区域分配将一个区域分配给最多 4 个 PECI 地址。这在默认的 Intel 配置中是不可能的。这在具有单个风扇的每个 CPU 上的多 CPU 系统中可能很有用,这将受益于单独的风扇控制。这在寄存器 0Eh 中。

转速计测量系统是灵活的,并且能够适应许多风扇类型。我们还可以支持脉冲拉伸 PWM,以便可以使用 3 线风扇。这些特性在寄存器 04h 到 07h 中。

最后,我们添加了一个转速禁用功能,该功能关闭单个转速计的转速测量系统,以节省电力。这在寄存器 75h 中。


aSC7621 产品描述

aSC7621 具有与 SMBus 2.0 兼容的两线数字接口。aSC7621 使用 10 位 ADC 测量两个远程二极管连接晶体管以及其自身芯片的温度。包括对平台环境控制接口 (PECI) 的支持。

利用来自这四个区域的温度信息,采用自动风扇速度控制算法,以在不同的操作负载下最大限度地减少声学影响,同时达到建议的 CPU 温度。

为了设置风扇速度,aSC7621 具有三个独立的脉冲宽度调制 (PWM) 输出,这些输出由一个或三个温度区域的组合控制。支持高频和低频 PWM 范围。

aSC7621 还包括一个数字滤波器,可以调用该滤波器来平滑温度读数,从而更好地控制风扇速度并最大限度地减少声学影响。

aSC7621 具有转速计输入,可以测量多达四个风扇的风扇速度。包括所有测量值的限制和状态寄存器,以警告系统主机任何测量值都超出通过状态寄存器编程的限制。

使用内部比例电阻器可以有效地监控 VCCP、2.5V、3.3V、5.0V 和 12V 主板电源的系统电压。

特性

  • 支持 PECI 接口并监控内部和远程热二极管

  • 2 线、符合 SMBus 2.0 的串行接口

  • 10 位 ADC

  • 监控 VCCP、2.5V、3.3V、5.0V 和 12V 主板/处理器电源

  • 基于温度读数的可编程自主风扇控制

  • 用于风扇速度控制的温度读数噪声滤波

  • 0.25C 数字温度传感器分辨率

  • 3 个 PWM 风扇速度控制输出,用于 2 线、3 线或 4 线风扇,以及最多 4 个风扇转速计输入

  • 增强的测量温度到温度区域分配。

  • 提供高频和低频 PWM 范围

  • 3 个 GPIO 引脚,用于自定义使用

  • 24 引脚 QSOP 封装

配置说明

除非下文另有说明,否则此驱动程序创建的 sysfs 条目遵循“sysfs-interface”中定义的标准。

temp1_source

0

(默认) peci_legacy = 0, 远程 1 温度 peci_legacy = 1, PECI 处理器温度 0

1

远程 1 温度

2

远程 2 温度

3

内部温度

4

PECI 处理器温度 0

5

PECI 处理器温度 1

6

PECI 处理器温度 2

7

PECI 处理器温度 3

temp2_source

0

(默认) 内部温度

1

远程 1 温度

2

远程 2 温度

3

内部温度

4

PECI 处理器温度 0

5

PECI 处理器温度 1

6

PECI 处理器温度 2

7

PECI 处理器温度 3

temp3_source

0

(默认) 远程 2 温度

1

远程 1 温度

2

远程 2 温度

3

内部温度

4

PECI 处理器温度 0

5

PECI 处理器温度 1

6

PECI 处理器温度 2

7

PECI 处理器温度 3

temp4_source

0

(默认) peci_legacy = 0, PECI 处理器温度 0 peci_legacy = 1, 远程 1 温度

1

远程 1 温度

2

远程 2 温度

3

内部温度

4

PECI 处理器温度 0

5

PECI 处理器温度 1

6

PECI 处理器温度 2

7

PECI 处理器温度 3

temp[1-4]_smoothing_enable / temp[1-4]_smoothing_time

平滑由噪声引起的温度读数中的尖峰。有效值(以毫秒为单位)为

  • 35000

  • 17600

  • 11800

  • 7000

  • 4400

  • 3000

  • 1600

  • 800

temp[1-4]_crit

当相应的区域温度达到此值时,所有 pwm 输出将变为 100%。

temp[5-8]_input / temp[5-8]_enable

aSC7621 还可以读取处理器通过 PECI 总线提供的温度。通常,这些是“核心”温度,并且相对于自动热控制电路开始节流的点。这意味着这些通常是负数。

pwm[1-3]_enable

0

风扇关闭。

1

风扇开启手动控制。

2

风扇开启自动控制,如果区域的温度低于最小值,将以最小 pwm 运行。

3

风扇开启自动控制,但如果区域的温度低于最小值,则将关闭。

4-254

忽略。

255

风扇全速运行。

pwm[1-3]_auto_channels

sysctl-interface 中描述的位图,但有以下例外...

只有以下区域组合(及其对应的掩码)有效

  • 1

  • 2

  • 3

  • 2,3

  • 1,2,3

  • 4

  • 1,2,3,4

  • 特殊值

    0

    已禁用。

    16

    风扇开启手动控制。

    31

    风扇全速运行。

pwm[1-3]_invert

设置后,反转 pwm[1-3] 的含义。即,当 pwm = 0 时,风扇将全速运行,当 pwm = 255 时,风扇将关闭。

pwm[1-3]_freq

PWM 频率,单位为 Hz。有效值(以 Hz 为单位)为

  • 10

  • 15

  • 23

  • 30 (默认)

  • 38

  • 47

  • 62

  • 94

  • 23000

  • 24000

  • 25000

  • 26000

  • 27000

  • 28000

  • 29000

  • 30000

设置任何其他值将被忽略。

peci_enable

启用或禁用 PECI

peci_avg

输入滤波器平均时间。

  • 0 0 秒(无平滑)(默认)

  • 1 0.25 秒

  • 2 0.5 秒

  • 3 1.0 秒

  • 4 2.0 秒

  • 5 4.0 秒

  • 6 8.0 秒

  • 7 0.0 秒

peci_legacy

0

标准模式(默认)远程二极管 1 读数与温度区域 1 相关联,PECI 与区域 4 相关联

1

传统模式 PECI 与温度区域 1 相关联,远程二极管 1 与区域 4 相关联

peci_diode

二极管滤波器

0

0.25 秒

1

1.1 秒

2

2.4 秒 (默认)

3

3.4 秒

4

5.0 秒

5

6.8 秒

6

10.2 秒

7

16.4 秒

peci_4domain

四域启用

0

已启用处理器的 1 或 2 个域(默认)

1

已启用处理器的 3 或 4 个域

peci_domain

0

处理器包含单个域 (0)(默认)

1

处理器包含两个域 (0,1)