Kernel driver asc7621¶
支援的晶片
Andigilog aSC7621 和 aSC7621a
字首: ‘asc7621’
掃描的地址: I2C 0x2c, 0x2d, 0x2e
- 作者
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)