Kernel 驅動 NCT6775

注意

該驅動程式取代了 W83627EHF 驅動程式中對 NCT6775F 和 NCT6776F 的支援。

支援的晶片

  • Nuvoton NCT6102D/NCT6104D/NCT6106D

    字首:‘nct6106’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可從 Nuvoton 網站獲得

  • Nuvoton NCT5572D/NCT6771F/NCT6772F/NCT6775F/W83677HG-I

    字首:‘nct6775’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT5573D/NCT5577D/NCT6776D/NCT6776F

    字首:‘nct6776’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT5532D/NCT6779D

    字首:‘nct6779’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT6791D

    字首:‘nct6791’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT6792D

    字首:‘nct6792’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT6793D

    字首:‘nct6793’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT6795D

    字首:‘nct6795’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT6796D

    字首:‘nct6796’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

  • Nuvoton NCT6796D-S/NCT6799D-R

    字首:‘nct6799’

    掃描的地址:從 Super I/O 暫存器檢索到的 ISA 地址

    資料表:可根據要求從 Nuvoton 獲得

作者

Guenter Roeck <linux@roeck-us.net>

描述

該驅動程式實現了對 Nuvoton NCT6775F、NCT6776F 和 NCT6779D 以及相容的 super I/O 晶片的支援。

這些晶片支援多達 25 個溫度監控源。 其中最多 6 個是直接溫度感測器輸入,其餘是特殊來源,例如 PECI、PCH 和 SMBUS。 根據晶片型別,可以監控 2 到 6 個溫度源,並將其與最小、最大和臨界溫度進行比較。 該驅動程式向用戶報告最多 10 個溫度。 有 4 到 5 個風扇轉速感測器、8 到 15 個模擬電壓感測器、一個 VID、帶蜂鳴器警告的警報(控制未實現)以及一些自動風扇調節策略(加上手動風扇控制模式)。

所有晶片上的溫度感測器源都是可配置的。 每個溫度感測器配置的來源在 tempX_label 中提供。

溫度以攝氏度為單位測量,測量解析度為 1 攝氏度或 0.5 攝氏度,具體取決於溫度源和配置。 當溫度高於上限時,會觸發警報; 它會一直保持開啟狀態,直到溫度降至滯後值以下。 警報僅支援 temp1 到 temp6,具體取決於晶片型別。

風扇轉速以 RPM(每分鐘轉數)報告。 如果轉速已降至可程式設計限制以下,則會觸發警報。 在 NCT6775F 上,風扇讀數可以除以可程式設計的分頻器(1、2、4、8、16、32、64 或 128),以使讀數具有更大的範圍或精度; 其他晶片沒有風扇速度分頻器。 驅動程式會自行設定最合適的風扇分頻器; 具體來說,每次風扇速度讀數返回無效值時,它都會增加分頻器值,如果風扇速度讀數低於最佳值,則會降低分頻器值。 某些風扇可能不存在,因為它們與其他功能共享引腳。

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

該驅動程式支援稱為熱巡航的自動風扇控制模式。 在此模式下,晶片嘗試將測量的溫度保持在預定義的溫度範圍內。 如果溫度超出範圍,則風扇會減速/加速以再次達到預定義的範圍。

該模式適用於 fan1-fan5。

sysfs 屬性

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

    0(最低速度)到 255(全速)

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

    • 0 風扇控制已停用(風扇設定為最高速度)

    • 1 手動模式,將任何值 0-255 寫入 pwm[0-5]

    • 2 “熱巡航”模式

    • 3 “風扇速度巡航”模式

    • 4 “智慧風扇 III”模式(僅限 NCT6775F)

    • 5 “智慧風扇 IV”模式

pwm[1-7]_mode
  • 控制輸出是 PWM 還是 DC 電平

    • 0 DC 輸出

    • 1 PWM 輸出

通用風扇控制屬性

pwm[1-7]_temp_sel

溫度源。 該值是溫度感測器索引。 例如,為 temp1_input 選擇“1”。

pwm[1-7]_weight_temp_sel

輔助溫度源。 該值是溫度感測器索引。 例如,為 temp1_input 選擇“1”。 設定為 0 以停用輔助溫度控制。

如果啟用了輔助溫度功能,則使用以下屬性進行控制。

pwm[1-7]_weight_duty_step

佔空比步長大小。

pwm[1-7]_weight_temp_step

溫度步長大小。 對於超過 temp_step_base 的每個步長,weight_duty_step 的值將新增到當前 pwm 值。

pwm[1-7]_weight_temp_step_base

輔助溫度控制開始起作用的溫度。

pwm[1-7]_weight_temp_step_tol

溫度步長容差。

熱巡航模式 (2)

如果溫度在以下定義的範圍內

pwm[1-7]_target_temp

目標溫度,單位為千分之一攝氏度(範圍 0 - 127000)

pwm[1-7]_temp_tolerance

目標溫度容差,單位為千分之一攝氏度

風扇速度沒有變化。 一旦溫度離開該區間,風扇速度就會增加(如果溫度高於所需溫度)或降低(如果溫度低於所需溫度),使用以下限制和時間間隔。

pwm[1-7]_start

風扇 pwm 起始值(範圍 1 - 255),以便在溫度高於定義的範圍時啟動風扇。

pwm[1-7]_floor

如果溫度低於定義的範圍,則為最低風扇 pwm(範圍 0 - 255)。 如果設定為 0,則當溫度低於定義的範圍時,風扇預計會停止。

pwm[1-7]_step_up_time

增加風扇速度之前的毫秒數

pwm[1-7]_step_down_time

降低風扇速度之前的毫秒數

pwm[1-7]_stop_time

必須經過多少毫秒才能關閉相應的風扇(當溫度低於定義的範圍時)。

速度巡航模式 (3)

此模式嘗試保持風扇速度恆定。

fan[1-7]_target

目標風扇速度

fan[1-7]_tolerance

目標速度容差

未經測試; 使用風險自負。

智慧風扇 IV 模式 (5)

此模式提供多個斜率來控制風扇速度。 可以透過設定 pwm 和溫度屬性來控制斜率。 當溫度升高時,晶片將根據當前斜率計算 DC/PWM 輸出。 根據晶片型別,最多有七個資料點。 後續資料點應設定為更高的溫度和更高的 pwm 值,以便在溫度升高時實現更高的風扇速度。 最後一個數據點反映了臨界溫度模式,在該模式下,風扇應全速執行。

pwm[1-7]_auto_point[1-7]_pwm

如果溫度達到匹配的溫度範圍,則要設定的 pwm 值。

pwm[1-7]_auto_point[1-7]_temp

啟用匹配 pwm 的溫度。

pwm[1-7]_temp_tolerance

溫度容差,單位為千分之一攝氏度

pwm[1-7]_crit_temp_tolerance

臨界溫度的溫度容差,單位為千分之一攝氏度

pwm[1-7]_step_up_time

增加風扇速度之前的毫秒數

pwm[1-7]_step_down_time

降低風扇速度之前的毫秒數

使用說明

在具有 NCT6776F 的各種 ASUS 主機板上,CPUTIN 似乎沒有真正連線到任何東西並且浮動,或者它連線到一些非標準的溫度測量裝置。 因此,CPUTIN 上報告的溫度不會反映可用的值。 它通常會報告不合理的高溫,並且在某些情況下,如果實際溫度升高,報告的溫度會下降(類似於原始 PECI 溫度值 - 有關詳細資訊,請參閱 PECI 規範)。 因此,在 ASUS 主機板上應忽略 CPUTIN。 ASUS 主機板上的 CPU 溫度從 PECI 0 或 TSI 0 報告。

NCT6796D-S 和 NCT6799D-R 晶片非常相似,它們的 chip_id 表明它們是不同的版本。 此驅動程式以相同的方式對待它們。