内核驱动 asc7621

支持的芯片

Andigilog aSC7621 和 aSC7621a

前缀:‘asc7621’

扫描地址:I2C 0x2c、0x2d、0x2e

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

作者

George Joseph

描述由 Andigilog 的 Dave Pivin 提供

Andigilog 拥有 Heceta-6 的 PECI 和 pre-PECI 版本,正如 Intel 所称的那样。Heceta-6e 具有高频 PWM,而 Heceta-6p 添加了 PECI 和第 4 个温度区域。Andigilog aSC7611 是 Heceta-6e 的部件,而 aSC7621 是 Heceta-6p 的部件。它们都在批量生产中,运往英特尔及其子公司。

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

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

我们采用了显著的滤波功能,用户可以按照数据手册中的描述进行调整。与竞争对手相比,我们的温度报告和风扇 PWM 输出非常平滑,并且温度报告的分辨率更高。更平滑的 PWM 输出不需要用户干预。

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

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

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

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

PECI 扩展配置允许每个 PECI 地址拥有两个以上的域,并为每个 PECI 地址提供启用功能。可以使用我们灵活的区域分配将一个区域分配给最多 4 个 PECI 地址。在默认的英特尔配置中,这是不可能的。这在每个 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 个用于 2 线、3 线或 4 线风扇的 PWM 风扇速度控制输出,以及最多 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)