核心驅動 w83792d

支援的晶片

作者: Shane Huang (華邦) 更新人: Roger Lucas

模組引數

  • init int

    (預設 1)

    使用 ‘init=0’ 繞過晶片初始化。如果載入模組時計算機崩潰,請嘗試此操作。

  • force_subclients=bus,caddr,saddr,saddr

    這用於強制特定晶片的子客戶端的 I2C 地址。例如,使用 force_subclients=0,0x2f,0x4a,0x4b 可將匯流排 0 上晶片 0x2f 的子客戶端強制設定為 I2C 地址 0x4a 和 0x4b。

描述

該驅動程式實現了對華邦 W83792AD/D 的支援。

晶片檢測有時會失敗,因為它可能處於不允許乾淨訪問的內部狀態(帶有 ID 暫存器的 Bank 當前未被選中)。如果您知道晶片的地址,請使用 ‘force’ 引數;這將首先使其進入更良好行為的狀態。

該驅動程式實現了三個溫度感測器、七個風扇轉速感測器、九個電壓感測器,以及兩種自動風扇調節策略:智慧風扇 I (溫控巡航模式) 和智慧風扇 II。

該驅動程式還實現了多達七個風扇控制輸出:pwm1-7。Pwm1-7 可以透過其相關的 pwmX_mode 配置為 PWM 輸出或模擬直流輸出。輸出 pwm4 到 pwm7 可能存在,也可能不存在,具體取決於 BIOS 如何配置 W83792AD/D。

自動風扇控制模式僅適用於風扇 1 到風扇 3。

對於所有 pwmX 輸出,值為 0 表示最低風扇轉速,值為 255 表示最高風扇轉速。

溫度以攝氏度測量,temp1 的測量解析度為 1 攝氏度,temp2 和 temp3 的測量解析度為 0.5 攝氏度。當溫度高於過溫關機值時會觸發警報;警報會一直持續到溫度降至遲滯值以下。

風扇轉速以 RPM (每分鐘轉數) 報告。如果轉速降至可程式設計限制以下,則會觸發警報。風扇讀數可以由可程式設計分頻器 (1、2、4、8、16、32、64 或 128) 進行分頻,以提供更大的讀數範圍或更高的精度。

電壓感測器 (也稱為 IN 感測器) 以毫伏報告其值。如果電壓超出可程式設計的最小或最大限制,則會觸發警報。

警報作為“即時狀態暫存器”的輸出提供。定義了以下位

報警開啟

0

in0

1

in1

2

temp1

3

temp2

4

temp3

5

fan1

6

fan2

7

fan3

8

in2

9

in3

10

in4

11

in5

12

in6

13

VID 變化

14

機箱

15

fan7

16

tart1

17

tart2

18

tart3

19

in7

20

in8

21

fan4

22

fan5

23

fan6

如果對應風扇全速旋轉 3 分鐘後仍無法達到目標溫度,則會斷言 Tart。

除了上述警報外,晶片上還有一個 CHAS 警報,當您的計算機機箱開啟時會觸發(此警報是鎖存的,與即時警報不同)。

晶片每 3 秒才更新一次值;更頻繁地讀取它們不會造成傷害,但會返回“舊”值。

W83792D 問題

已知問題
  • 此驅動程式僅適用於華邦 W83792D C 版本裝置,也有一些主機板使用 B 版本 W83792D 裝置。C 和 B 版本在 in6-in7(測量值、限制)的計算方法上略有不同。C 或 B 版本可以透過 CR[0x49h] 識別。

  • vid 和 vrm 的功能尚未完成,因為我不太熟悉它們。歡迎新增支援。

  • 機箱開啟檢測功能需要更多測試。

  • 如果您有華碩伺服器主機板且未找到晶片:則需要升級到最新(或 Beta)BIOS。如果仍無幫助,請聯絡我們。

風扇控制

手動模式

按預期工作。您只需在相應的 pwm# 檔案中指定所需的 PWM/DC 值(風扇轉速)。

溫控巡航

在此模式下,W83792D 提供智慧風扇系統,自動控制風扇轉速,使 CPU 和系統溫度保持在特定範圍內。首先,必須設定一個目標溫度和間隔。這透過 thermal_cruise# 檔案完成。tolerance# 檔案用於建立 T +- tolerance 間隔。只要當前溫度保持在 thermal_cruise# +- tolerance# 值以下,風扇轉速就會降低。一旦溫度超過高限(T+tolerance),風扇將以 pwm# 設定的特定速度開啟,並隨著溫度變化自動控制其 PWM 佔空比。可能出現以下三種情況

(1) 如果溫度仍超過高限,PWM 佔空比將緩慢增加。

(2) 如果溫度低於高限,但仍高於低限(T-tolerance),風扇轉速將固定在當前速度,因為溫度處於目標範圍內。

(3) 如果溫度低於低限,PWM 佔空比將緩慢減小至 0 或預設停止值,直到溫度超過低限。(驅動程式尚未實現預設停止值處理)

智慧風扇 II

W83792D 還提供了一種特殊的風扇模式。有四個溫度點可用。當相關的溫度感測器檢測到預設溫度區域 (sf2_point@_fan# +- tolerance#) 內的溫度時,它將使風扇以 sf2_level@_fan# 中程式設計的值執行。您需要為每個風扇設定四個溫度。

/sys 檔案

pwm[1-7]
  • 此檔案儲存 PWM 佔空比或直流值(風扇轉速),範圍為

    0 (停止) 到 255 (全速)

pwm[1-3]_enable
  • 此檔案控制風扇/溫度控制模式

    • 0 停用

    • 1 手動模式

    • 2 智慧風扇 II

    • 3 溫控巡航

pwm[1-7]_mode
  • 選擇 PWM 或直流模式

    • 0 直流

    • 1 PWM

thermal_cruise[1-3]
  • 選擇巡航目標溫度(攝氏度)

tolerance[1-3]
  • 攝氏度值(degC),用於 +- T

sf2_point[1-4]_fan[1-3]
  • 智慧風扇 II 的每個風扇的四個溫度點

sf2_level[1-3]_fan[1-3]
  • 智慧風扇 II 的每個風扇的三個 PWM/直流級別