核心驅動 dme1737

支援的晶片

  • SMSC DME1737 和相容晶片(如 Asus A8000)

    字首:“dme1737”

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

    資料手冊:由 SMSC 應要求並在 NDA 下提供

  • SMSC SCH3112、SCH3114、SCH3116

    字首:“sch311x”

    掃描地址:無,地址從 Super-I/O 配置空間讀取

    資料手冊:可在 Internet 上獲取

  • SMSC SCH5027

    字首:“sch5027”

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

    資料手冊:由 SMSC 應要求並在 NDA 下提供

  • SMSC SCH5127

    字首:“sch5127”

    掃描地址:無,地址從 Super-I/O 配置空間讀取

    資料手冊:由 SMSC 應要求並在 NDA 下提供

作者

Juerg Haefliger <juergh@gmail.com>

模組引數

  • force_start: bool

    啟用電壓、風扇和溫度輸入以及 PWM 輸出控制功能的監控。由於 BIOS 通常會處理此問題,因此不應需要使用此引數。

  • probe_all_addr: bool

    探測 ISA 裝置時,包括非標準 LPC 地址 0x162e 和 0x164e。 以下主機板需要此引數:- VIA EPIA SN18000

描述

此驅動程式實現了對 SMSC DME1737 和 Asus A8000(兩者相同)、SMSC SCH5027、SCH311x 和 SCH5127 Super-I/O 晶片的硬體監控功能的支援。 這些晶片具有 3 個溫度感測器 temp[1-3](2 個遠端二極體和 1 個內部)、8 個電壓 in[0-7](7 個外部和 1 個內部)以及最多 6 個風扇轉速 fan[1-6] 的監控功能。 此外,這些晶片還實現了最多 5 個 PWM 輸出 pwm[1-3,5-6],用於手動和自動控制風扇速度。

對於 DME1737、A8000 和 SCH5027,始終存在 fan[1-2] 和 pwm[1-2]。 Fan[3-6] 和 pwm[3,5-6] 是可選功能,它們的可用性取決於晶片的配置。 驅動程式將在初始化期間檢測到哪些功能存在,並相應地建立 sysfs 屬性。

對於 SCH311x 和 SCH5127,始終存在 fan[1-3] 和 pwm[1-3],並且不存在 fan[4-6] 和 pwm[5-6]。

DME1737、A8000 和 SCH5027 的硬體監控功能只能透過 SMBus 訪問,而 SCH311x 和 SCH5127 只能透過 ISA 匯流排訪問。 因此,如果驅動程式檢測到 DME1737、A8000 或 SCH5027,它將註冊為 I2C 客戶端驅動程式;如果檢測到 SCH311x 或 SCH5127 晶片,它將註冊為平臺驅動程式。

電壓監控

電壓輸入以 12 位解析度取樣,並具有內部比例電阻。 因此,驅動程式返回的值反映了真實的毫伏值,不需要縮放。 電壓輸入對映如下(最後一列表示輸入範圍)

DME1737、A8000

in0: +5VTR      (+5V standby)           0V - 6.64V
in1: Vccp       (processor core)        0V - 3V
in2: VCC        (internal +3.3V)        0V - 4.38V
in3: +5V                                0V - 6.64V
in4: +12V                               0V - 16V
in5: VTR        (+3.3V standby)         0V - 4.38V
in6: Vbat       (+3.0V)                 0V - 4.38V

SCH311x

in0: +2.5V                              0V - 3.32V
in1: Vccp       (processor core)        0V - 2V
in2: VCC        (internal +3.3V)        0V - 4.38V
in3: +5V                                0V - 6.64V
in4: +12V                               0V - 16V
in5: VTR        (+3.3V standby)         0V - 4.38V
in6: Vbat       (+3.0V)                 0V - 4.38V

SCH5027

in0: +5VTR      (+5V standby)           0V - 6.64V
in1: Vccp       (processor core)        0V - 3V
in2: VCC        (internal +3.3V)        0V - 4.38V
in3: V2_IN                              0V - 1.5V
in4: V1_IN                              0V - 1.5V
in5: VTR        (+3.3V standby)         0V - 4.38V
in6: Vbat       (+3.0V)                 0V - 4.38V

SCH5127

in0: +2.5                               0V - 3.32V
in1: Vccp       (processor core)        0V - 3V
in2: VCC        (internal +3.3V)        0V - 4.38V
in3: V2_IN                              0V - 1.5V
in4: V1_IN                              0V - 1.5V
in5: VTR        (+3.3V standby)         0V - 4.38V
in6: Vbat       (+3.0V)                 0V - 4.38V
in7: Vtrip      (+1.5V)                 0V - 1.99V

每個電壓輸入都具有相關的最小和最大限制,當超過這些限制時會觸發警報。

溫度監控

溫度以 12 位解析度測量,並以毫攝氏度為單位報告。 該晶片還具有所有 3 個溫度輸入的偏移量,這些偏移量(如果已程式設計)將新增到輸入讀數中。 晶片本身會進行所有縮放,因此驅動程式會報告不需要任何使用者空間調整的真實溫度。 溫度輸入對映如下(最後一列表示輸入範圍)

temp1: Remote diode 1 (3904 type) temperature   -127C - +127C
temp2: DME1737 internal temperature             -127C - +127C
temp3: Remote diode 2 (3904 type) temperature   -127C - +127C

每個溫度輸入都具有相關的最小和最大限制,當超過這些限制時會觸發警報。 此外,每個溫度輸入都有一個故障屬性,當檢測到有故障的二極體或未連線的輸入時,該屬性返回 1;否則返回 0。

風扇監控

風扇 RPM 以 16 位解析度測量。 該晶片提供 6 個風扇轉速計的輸入。 所有 6 個輸入都有一個相關的最小限制,當超過該限制時會觸發警報。 風扇輸入 1-4 提供型別屬性,需要將其設定為連線的轉速計產生的每次風扇轉數的脈衝數。 支援的值為 1、2 和 4。風扇輸入 5-6 僅支援產生每次轉數 2 個脈衝的風扇。 風扇輸入 5-6 還提供一個最大屬性,需要將其設定為輸入的最大可達 RPM(風扇在 100% 佔空比下)。 該晶片會根據此值調整取樣率。

PWM 輸出控制

該晶片具有 5 個 PWM 輸出。 PWM 輸出 1-3 與風扇輸入 1-3 相關聯,PWM 輸出 5-6 與風扇輸入 5-6 相關聯。 可以透過相應地設定適當的使能屬性來將 PWM 輸出 1-3 配置為以手動或自動模式執行。 PWM 輸出 5-6 只能在手動模式下執行,因此它們的使能屬性是隻讀的。 設定為手動模式時,透過將佔空比值寫入適當的 PWM 屬性來設定風扇速度。 在自動模式下,PWM 屬性返回晶片中風扇控制器設定的當前佔空比。 所有 PWM 輸出都支援透過 freq 屬性設定輸出頻率。

在自動模式下,該晶片支援 PWM 爬升率的設定,該爬升率定義了 PWM 輸出對相關溫度輸入變化做出調整的速度。 透過溫度區域將 PWM 輸出與溫度輸入相關聯。 該晶片具有 3 個區域,其溫度輸入的分配是靜態的,並在初始化期間確定。 可以透過 zone[1-3]_auto_channels_temp 屬性檢索這些分配。 每個 PWM 輸出透過 pwm[1-3]_auto_channels_zone 屬性分配給一個(或多箇中最熱的)溫度區域。 每個 PWM 輸出都有 3 個不同的輸出佔空比:full、low 和 min。 Full 在內部硬連線到 255 (100%),可以透過 pwm[1-3]_auto_point1_pwm 和 pwm[1-3]_auto_pwm_min 分別對 low 和 min 進行程式設計。 區域的熱閾值透過 zone[1-3]_auto_point[1-3]_temp 和 zone[1-3]_auto_point1_temp_hyst 程式設計

pwm[1-3]_auto_point2_pwm

全速佔空比(255,即 100%)

pwm[1-3]_auto_point1_pwm

低速佔空比

pwm[1-3]_auto_pwm_min

最小速度佔空比

zone[1-3]_auto_point3_temp

全速溫度(所有輸出)

zone[1-3]_auto_point2_temp

全速溫度

zone[1-3]_auto_point1_temp

低速溫度

zone[1-3]_auto_point1_temp_hyst

最小速度溫度

如果相關區域的溫度介於 auto_point1_temp 和 auto_point2_temp 之間,則晶片會在 auto_point1_pwm 到 auto_point2_pwm 的範圍內線性調整輸出佔空比。 如果溫度降至 auto_point1_temp_hyst 值以下,則輸出佔空比設定為 auto_pwm_min 值,該值僅支援兩個值:0 或 auto_point1_pwm。 這意味著風扇要麼完全關閉,要麼以低速佔空比繼續旋轉。 如果任何溫度升高到 auto_point3_temp 值以上,則所有 PWM 輸出都設定為 100% 佔空比。

以下是晶片如何根據相關熱區的溫度設定輸出佔空比的另一種表示形式

溫度

佔空比上升溫度

佔空比下降溫度

全速

全速

全速

< 線性調整的佔空比 >

低速

低速

低速

最小速度

低速

最小速度

最小速度

最小速度

最小速度

最小速度

Sysfs 屬性

以下是驅動程式提供的所有 sysfs 屬性的列表、它們的許可權和簡短描述

名稱

許可權

描述

cpu0_vid

RO

以毫伏為單位的 CPU 核心參考電壓。

vrm

RW

電壓調節器模組版本號。

in[0-7]_input

RO

以毫伏為單位測量的電壓。

in[0-7]_min

RW

電壓輸入的下限。

in[0-7]_max

RW

電壓輸入的上限。

in[0-7]_alarm

RO

電壓輸入警報。 如果電壓輸入位於或超出相關的最小-最大範圍,則返回 1,否則返回 0。

temp[1-3]_input

RO

以毫攝氏度為單位測量的溫度。

temp[1-3]_min

RW

溫度輸入的下限。

temp[1-3]_max

RW

溫度輸入的上限。

temp[1-3]_offset

RW

溫度輸入的偏移量。 晶片會將此值新增到測量的溫度中。

temp[1-3]_alarm

RO

溫度輸入的警報。 如果溫度輸入位於或超出相關的最小-最大範圍,則返回 1,否則返回 0。

temp[1-3]_fault

RO

溫度輸入故障。 如果晶片檢測到有故障的熱二極體或未連線的溫度輸入,則返回 1,否則返回 0。

zone[1-3]_auto_channels_temp

RO

溫度區域到溫度輸入對映。 此屬性是一個位欄位,支援以下值

  • 1:temp1

  • 2:temp2

  • 4:temp3

zone[1-3]_auto_point1_temp_hyst

RW

自動 PWM 溫度點 1 滯後。 如果溫度降至 auto_point1_temp_hyst 值以下,則相應 PWM 的輸出設定為 pwm_auto_min 值。

zone[1-3]_auto_point[1-3]_temp

RW

自動 PWM 溫度點。 Auto_point1 是低速溫度,auto_point2 是全速溫度,auto_point3 是所有 PWM 輸出都設定為全速(100% 佔空比)時的溫度。

fan[1-6]_input

RO

以 RPM 為單位測量的風扇速度。

fan[1-6]_min

RW

風扇輸入的下限。

fan[1-6]_alarm

RO

風扇輸入的警報。 如果風扇輸入位於或低於相關的最小值,則返回 1,否則返回 0。

fan[1-4]_type

RW

附加風扇的型別。 以風扇產生的每次轉數的脈衝數表示。 支援的值為 1、2 和 4。

fan[5-6]_max

RW

100% 佔空比下的最大可達 RPM。 晶片需要此值才能相應地調整取樣率。

pmw[1-3,5-6]

RO/RW

PWM 輸出的佔空比。 支援的值為 0-255 (0%-100%)。 僅當相關 PWM 處於手動模式時可寫。

pwm[1-3]_enable

RW

PWM 輸出 1-3 的使能。 支援的值為

  • 0:已關閉(輸出 @ 100%)

  • 1:手動模式

  • 2:自動模式

pwm[5-6]_enable

RO

PWM 輸出 5-6 的使能。 由於這兩個輸出硬連線到手動模式,因此始終返回 1。

pmw[1-3,5-6]_freq

RW

PWM 輸出的頻率。 支援的值範圍為 11Hz-30000Hz(預設為 25000Hz)。

pmw[1-3]_ramp_rate

RW

PWM 輸出的爬升率。 確定當 PWM 處於自動模式時,PWM 佔空比變化的快慢。 以毫秒/ PWM 步長表示。 支援的值範圍為 0ms-206ms(預設為 0,這意味著佔空比立即變化)。

pwm[1-3]_auto_channels_zone

RW

PWM 輸出到溫度區域對映。 此屬性是一個位欄位,支援以下值

  • 1:zone1

  • 2:zone2

  • 4:zone3

  • 6:zone[2-3] 中的最高值

  • 7:zone[1-3] 中的最高值

pwm[1-3]_auto_pwm_min

RW

自動 PWM 最小 pwm。 最小 PWM 佔空比。 支援的值為 0 或 auto_point1_pwm。

pwm[1-3]_auto_point1_pwm

RW

自動 PWM pwm 點。 Auto_point1 是低速佔空比。

pwm[1-3]_auto_point2_pwm

RO

自動 PWM pwm 點。 Auto_point2 是全速佔空比,硬連線到 255(100% 佔空比)。

晶片差異

特性

dme1737

sch311x

sch5027

sch5127

temp[1-3]_offset

vid

zone3

zone[1-3]_hyst

pwm min/off

fan3

可選

可選

pwm3

可選

可選

fan4

可選

可選

fan5

可選

可選

pwm5

可選

可選

fan6

可選

可選

pwm6

可選

可選

in7