← Documents Documentation/hwmon/w83792d.rst GitHub 원문 ↗

Linux 6.18.37 · Hardware Monitoring

Kernel driver w83792d

W83792D의 24개 실시간 경보, DC/PWM 출력, Thermal Cruise와 Smart Fan II를 설명합니다.

Source pathDocumentation/hwmon/w83792d.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

w83792d.rst:1-199

W83792D는 최대 7개 팬 출력을 제공하고 fan1~3에 수동, Thermal Cruise, Smart Fan II 자동 제어를 적용합니다.

문서 개요
항목
SourceDocumentation/hwmon/w83792d.rst
분량199 source lines
팬 출력최대 7
자동 제어fan1~fan3

원문 분량과 핵심 기능을 요약합니다.

동작 흐름
I2C 장치와 버전 확인센서·실시간 경보 갱신DC/PWM 출력 선택자동 팬 모드 설정목표 온도에 따라 속도 조절

장치 탐지부터 센서와 팬 제어 제공까지의 순서입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 Kernel driver w83792d
2 =====================
3
4 Supported chips:
5
6 * Winbond W83792D
7
8 Prefix: 'w83792d'
9
10 Addresses scanned: I2C 0x2c - 0x2f
11
12 Datasheet: http://www.winbond.com.tw
13
14 Author: Shane Huang (Winbond)
15 Updated: Roger Lucas
16
17
18 Module Parameters
19 -----------------
20
21 * init int
22 (default 1)
23
24 Use 'init=0' to bypass initializing the chip.
25 Try this if your computer crashes when you load the module.
26
27 * force_subclients=bus,caddr,saddr,saddr
28 This is used to force the i2c addresses for subclients of
29 a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b`
30 to force the subclients of chip 0x2f on bus 0 to i2c addresses
31 0x4a and 0x4b.
32
33
34 Description
35 -----------
36
37 This driver implements support for the Winbond W83792AD/D.
38
39 Detection of the chip can sometimes be foiled because it can be in an
40 internal state that allows no clean access (Bank with ID register is not
41 currently selected). If you know the address of the chip, use a 'force'
42 parameter; this will put it into a more well-behaved state first.
43
44 The driver implements three temperature sensors, seven fan rotation speed
45 sensors, nine voltage sensors, and two automatic fan regulation
46 strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.
47
48 The driver also implements up to seven fan control outputs: pwm1-7. Pwm1-7
49 can be configured to PWM output or Analogue DC output via their associated
50 pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on
51 how the W83792AD/D was configured by the BIOS.
52
53 Automatic fan control mode is possible only for fan1-fan3.
54
55 For all pwmX outputs, a value of 0 means minimum fan speed and a value of
56 255 means maximum fan speed.
57
58 Temperatures are measured in degrees Celsius and measurement resolution is 1
59 degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
60 the temperature gets higher than the Overtemperature Shutdown value; it stays
61 on until the temperature falls below the Hysteresis value.
62
63 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
64 triggered if the rotation speed has dropped below a programmable limit. Fan
65 readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
66 128) to give the readings more range or accuracy.
67
68 Voltage sensors (also known as IN sensors) report their values in millivolts.
69 An alarm is triggered if the voltage has crossed a programmable minimum
70 or maximum limit.
71
72 Alarms are provided as output from "realtime status register". Following bits
73 are defined:
74
75 ==== ==========
76 bit alarm on
77 ==== ==========
78 0 in0
79 1 in1
80 2 temp1
81 3 temp2
82 4 temp3
83 5 fan1
84 6 fan2
85 7 fan3
86 8 in2
87 9 in3
88 10 in4
89 11 in5
90 12 in6
91 13 VID change
92 14 chassis
93 15 fan7
94 16 tart1
95 17 tart2
96 18 tart3
97 19 in7
98 20 in8
99 21 fan4
100 22 fan5
101 23 fan6
102 ==== ==========
103
104 Tart will be asserted while target temperature cannot be achieved after 3 minutes
105 of full speed rotation of corresponding fan.
106
107 In addition to the alarms described above, there is a CHAS alarm on the chips
108 which triggers if your computer case is open (This one is latched, contrary
109 to realtime alarms).
110
111 The chips only update values each 3 seconds; reading them more often will
112 do no harm, but will return 'old' values.
113
114
115 W83792D PROBLEMS
116 ----------------
117 Known problems:
118 - This driver is only for Winbond W83792D C version device, there
119 are also some motherboards with B version W83792D device. The
120 calculation method to in6-in7(measured value, limits) is a little
121 different between C and B version. C or B version can be identified
122 by CR[0x49h].
123 - The function of vid and vrm has not been finished, because I'm NOT
124 very familiar with them. Adding support is welcome.
125 - The function of chassis open detection needs more tests.
126 - If you have ASUS server board and chip was not found: Then you will
127 need to upgrade to latest (or beta) BIOS. If it does not help please
128 contact us.
129
130 Fan control
131 -----------
132
133 Manual mode
134 -----------
135
136 Works as expected. You just need to specify desired PWM/DC value (fan speed)
137 in appropriate pwm# file.
138
139 Thermal cruise
140 --------------
141
142 In this mode, W83792D provides the Smart Fan system to automatically control
143 fan speed to keep the temperatures of CPU and the system within specific
144 range. At first a wanted temperature and interval must be set. This is done
145 via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
146 interval. The fan speed will be lowered as long as the current temperature
147 remains below the thermal_cruise# +- tolerance# value. Once the temperature
148 exceeds the high limit (T+tolerance), the fan will be turned on with a
149 specific speed set by pwm# and automatically controlled its PWM duty cycle
150 with the temperature varying. Three conditions may occur:
151
152 (1) If the temperature still exceeds the high limit, PWM duty
153 cycle will increase slowly.
154
155 (2) If the temperature goes below the high limit, but still above the low
156 limit (T-tolerance), the fan speed will be fixed at the current speed because
157 the temperature is in the target range.
158
159 (3) If the temperature goes below the low limit, PWM duty cycle will decrease
160 slowly to 0 or a preset stop value until the temperature exceeds the low
161 limit. (The preset stop value handling is not yet implemented in driver)
162
163 Smart Fan II
164 ------------
165
166 W83792D also provides a special mode for fan. Four temperature points are
167 available. When related temperature sensors detects the temperature in preset
168 temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run
169 on programmed value from sf2_level@_fan#. You need to set four temperatures
170 for each fan.
171
172
173 /sys files
174 ----------
175
176 pwm[1-7]
177 - this file stores PWM duty cycle or DC value (fan speed) in range:
178
179 0 (stop) to 255 (full)
180 pwm[1-3]_enable
181 - this file controls mode of fan/temperature control:
182
183 * 0 Disabled
184 * 1 Manual mode
185 * 2 Smart Fan II
186 * 3 Thermal Cruise
187 pwm[1-7]_mode
188 - Select PWM or DC mode
189
190 * 0 DC
191 * 1 PWM
192 thermal_cruise[1-3]
193 - Selects the desired temperature for cruise (degC)
194 tolerance[1-3]
195 - Value in degrees of Celsius (degC) for +- T
196 sf2_point[1-4]_fan[1-3]
197 - four temperature points for each fan for Smart Fan II
198 sf2_level[1-3]_fan[1-3]
199 - three PWM/DC levels for each fan for Smart Fan II
200

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

지원 장치와 모듈 매개변수

1-33

이 드라이버는 Winbond W83792D를 지원합니다. 접두사는 `w83792d`이고 검색하는 I2C 주소는 `0x2c`부터 `0x2f`까지입니다. 원문 데이터시트 위치는 Winbond 웹사이트입니다. 작성자는 Shane Huang이며 Roger Lucas가 문서를 갱신했습니다.

정수 매개변수 `init`의 기본값은 1입니다. 모듈을 적재할 때 컴퓨터가 멈추거나 충돌하면 `init=0`으로 칩 초기화를 건너뛸 수 있습니다.

`force_subclients=bus,caddr,saddr,saddr`는 특정 칩의 하위 클라이언트 주소를 강제로 지정합니다. `force_subclients=0,0x2f,0x4a,0x4b`는 버스 0의 칩 `0x2f` 하위 클라이언트를 I2C 주소 `0x4a`, `0x4b`에 배치합니다.

W83792D 적재 설정
항목용도
지원 칩Winbond W83792D접두사 `w83792d`
검색I2C `0x2c`~`0x2f`장치 자동 감지
`init`기본 1`init=0`이면 초기화 생략
`force_subclients``0,0x2f,0x4a,0x4b`하위 클라이언트 주소 강제

지원 주소와 문제 발생 시 조정할 매개변수를 정리합니다.

W83792D 적재
I2C 후보 주소 검색기본값으로 칩 초기화충돌하면 `init=0`으로 재시도필요하면 하위 클라이언트 주소 강제센서와 제어 속성 등록

정상 초기화를 우선하고 충돌 또는 감지 실패에 대응합니다.

Kernel driver w83792d
=====================

Supported chips:

  * Winbond W83792D

    Prefix: 'w83792d'

    Addresses scanned: I2C 0x2c - 0x2f

    Datasheet: http://www.winbond.com.tw

Author: Shane Huang (Winbond)
Updated: Roger Lucas


Module Parameters
-----------------

* init int
    (default 1)

    Use 'init=0' to bypass initializing the chip.
    Try this if your computer crashes when you load the module.

* force_subclients=bus,caddr,saddr,saddr
    This is used to force the i2c addresses for subclients of
    a certain chip. Example usage is `force_subclients=0,0x2f,0x4a,0x4b`
    to force the subclients of chip 0x2f on bus 0 to i2c addresses
    0x4a and 0x4b.

센서, PWM 출력과 실시간 경보

34-112

드라이버는 Winbond W83792AD/D를 지원합니다. ID 레지스터가 든 뱅크가 선택되지 않은 내부 상태에서는 자동 감지가 실패할 수 있습니다. 칩 주소를 안다면 `force` 매개변수로 먼저 접근 가능한 상태로 바꿀 수 있습니다.

칩은 온도 센서 3개, 팬 회전 속도 센서 7개, 전압 센서 9개와 Smart Fan I(Thermal Cruise), Smart Fan II라는 두 자동 팬 조절 전략을 제공합니다.

팬 제어 출력은 `pwm1`~`pwm7`까지 최대 7개입니다. 각 출력은 관련 `pwmX_mode`를 통해 PWM 또는 아날로그 DC 출력으로 구성할 수 있습니다. `pwm4`~`pwm7`은 BIOS가 W83792AD/D 핀을 어떻게 구성했는지에 따라 존재하지 않을 수 있습니다. 자동 팬 제어는 fan1~fan3에서만 가능합니다. 모든 PWM 출력에서 0은 최저 팬 속도, 255는 최고 팬 속도입니다.

온도 해상도는 `temp1`이 1°C, `temp2`와 `temp3`이 0.5°C입니다. 과열 종료값을 넘으면 경보가 발생하고 히스테리시스 값 아래로 떨어져야 해제됩니다. 팬 속도는 RPM으로 보고하며 최저 속도 아래에서 경보가 발생합니다. 분주기는 1, 2, 4, 8, 16, 32, 64, 128 중에서 선택합니다. 전압은 밀리볼트로 보고하며 프로그램한 최소·최대 범위를 벗어나면 경보가 발생합니다.

경보는 실시간 상태 레지스터의 비트로 제공됩니다. `tart1`~`tart3`은 해당 팬이 전속으로 3분 동안 회전한 뒤에도 목표 온도에 도달하지 못할 때 켜집니다. CHAS 경보는 컴퓨터 케이스가 열렸을 때 발생하며 실시간 경보와 달리 래치되어 유지됩니다.

칩은 3초마다 값만 갱신합니다. 더 자주 읽어도 문제는 없지만 이전 값을 반환합니다.

W83792D 실시간 경보 비트
비트경보 대상
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`
13VID change
14chassis
15`fan7`
16`tart1`
17`tart2`
18`tart3`
19`in7`
20`in8`
21`fan4`
22`fan5`
23`fan6`

원문의 24개 실시간 상태 비트를 모두 보존합니다.

실시간 상태 생성
3초 주기로 온도·팬·전압 갱신채널별 최소·최대·히스테리시스 비교실시간 상태 레지스터 비트 설정전속 3분 실패 시 `tart` 설정케이스 열림은 CHAS 래치에 유지

센서 측정에서 경보 비트와 래치 상태를 만드는 흐름입니다.

Description
-----------

This driver implements support for the Winbond W83792AD/D.

Detection of the chip can sometimes be foiled because it can be in an
internal state that allows no clean access (Bank with ID register is not
currently selected). If you know the address of the chip, use a 'force'
parameter; this will put it into a more well-behaved state first.

The driver implements three temperature sensors, seven fan rotation speed
sensors, nine voltage sensors, and two automatic fan regulation
strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II.

The driver also implements up to seven fan control outputs: pwm1-7.  Pwm1-7
can be configured to PWM output or Analogue DC output via their associated
pwmX_mode. Outputs pwm4 through pwm7 may or may not be present depending on
how the W83792AD/D was configured by the BIOS.

Automatic fan control mode is possible only for fan1-fan3.

For all pwmX outputs, a value of 0 means minimum fan speed and a value of
255 means maximum fan speed.

Temperatures are measured in degrees Celsius and measurement resolution is 1
degC for temp1 and 0.5 degC for temp2 and temp3. An alarm is triggered when
the temperature gets higher than the Overtemperature Shutdown value; it stays
on until the temperature falls below the Hysteresis value.

Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. Fan
readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
128) to give the readings more range or accuracy.

Voltage sensors (also known as IN sensors) report their values in millivolts.
An alarm is triggered if the voltage has crossed a programmable minimum
or maximum limit.

Alarms are provided as output from "realtime status register". Following bits
are defined:

==== ==========
bit   alarm on
==== ==========
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 change
14   chassis
15   fan7
16   tart1
17   tart2
18   tart3
19   in7
20   in8
21   fan4
22   fan5
23   fan6
==== ==========

Tart will be asserted while target temperature cannot be achieved after 3 minutes
of full speed rotation of corresponding fan.

In addition to the alarms described above, there is a CHAS alarm on the chips
which triggers if your computer case is open (This one is latched, contrary
to realtime alarms).

The chips only update values each 3 seconds; reading them more often will
do no harm, but will return 'old' values.

알려진 문제와 팬 제어 알고리즘

113-172

이 드라이버는 W83792D C 버전 장치만을 대상으로 합니다. B 버전을 사용한 메인보드도 있으며 `in6`~`in7`의 측정값과 한계 계산 방식이 C 버전과 조금 다릅니다. C/B 버전은 `CR[0x49h]`로 식별할 수 있습니다.

VID와 VRM 기능은 작성자가 충분히 익숙하지 않아 완성되지 않았으며 추가 지원을 환영합니다. 섀시 열림 감지도 더 많은 시험이 필요합니다. ASUS 서버 보드에서 칩을 찾지 못하면 최신 또는 베타 BIOS로 갱신하고, 그래도 해결되지 않으면 개발자에게 문의해야 합니다.

수동 모드는 예상대로 동작합니다. 해당 `pwm#` 파일에 원하는 PWM 또는 DC 값, 즉 팬 속도를 쓰면 됩니다.

Thermal Cruise는 CPU와 시스템 온도를 지정 범위에 유지하도록 팬 속도를 자동 조절합니다. 먼저 `thermal_cruise#`에 목표 온도 T를, `tolerance#`에 허용폭을 설정해 `T ± tolerance` 구간을 만듭니다. 현재 온도가 이 구간 아래에 있는 동안 팬 속도를 낮춥니다. 온도가 상한 `T+tolerance`를 넘으면 `pwm#`에 설정한 특정 속도로 팬을 켜고 온도 변화에 맞춰 PWM 듀티 사이클을 자동 제어합니다.

온도가 여전히 상한을 넘으면 PWM 듀티 사이클을 천천히 높입니다. 온도가 상한 아래이지만 하한 `T-tolerance` 위인 목표 구간에 있으면 현재 팬 속도를 유지합니다. 온도가 하한 아래이면 하한을 다시 넘을 때까지 PWM을 천천히 0 또는 미리 정한 정지값으로 낮춥니다. 미리 정한 정지값 처리는 아직 드라이버에 구현되지 않았습니다.

Smart Fan II는 팬마다 4개 온도 지점을 사용합니다. 관련 센서 온도가 `sf2_point@_fan# ± tolerance#`로 정한 구간에 들어오면 `sf2_level@_fan#`에 프로그램한 값으로 팬을 구동합니다. 각 팬에 4개 온도를 설정해야 합니다.

W83792D 팬 제어 조건
모드·조건입력팬 반응
수동`pwm#`지정한 PWM/DC 값 사용
Thermal Cruise 상한 초과`T + tolerance`보다 높음듀티를 천천히 증가
Thermal Cruise 목표 구간`T - tolerance`~`T + tolerance`현재 속도 유지
Thermal Cruise 하한 미만`T - tolerance`보다 낮음0 또는 정지값까지 천천히 감소
Smart Fan II온도 지점 4개`sf2_level@_fan#` 값 적용
C/B 버전`CR[0x49h]``in6`~`in7` 계산 차이

수동, Thermal Cruise와 Smart Fan II의 입력과 반응을 비교합니다.

Thermal Cruise 조절
`thermal_cruise#` 목표 T 설정`tolerance#`로 상한·하한 계산상한 초과면 PWM 증가구간 안이면 현재 PWM 유지하한 미만이면 PWM 감소

목표 온도와 허용 구간에 따라 PWM을 점진적으로 바꿉니다.



W83792D PROBLEMS
----------------
Known problems:
        - This driver is only for Winbond W83792D C version device, there
          are also some motherboards with B version W83792D device. The
          calculation method to in6-in7(measured value, limits) is a little
          different between C and B version. C or B version can be identified
          by CR[0x49h].
        - The function of vid and vrm has not been finished, because I'm NOT
          very familiar with them. Adding support is welcome.
        - The function of chassis open detection needs more tests.
        - If you have ASUS server board and chip was not found: Then you will
          need to upgrade to latest (or beta) BIOS. If it does not help please
          contact us.

Fan control
-----------

Manual mode
-----------

Works as expected. You just need to specify desired PWM/DC value (fan speed)
in appropriate pwm# file.

Thermal cruise
--------------

In this mode, W83792D provides the Smart Fan system to automatically control
fan speed to keep the temperatures of CPU and the system within specific
range. At first a wanted temperature and interval must be set. This is done
via thermal_cruise# file. The tolerance# file serves to create T +- tolerance
interval. The fan speed will be lowered as long as the current temperature
remains below the thermal_cruise# +- tolerance# value. Once the temperature
exceeds the high limit (T+tolerance), the fan will be turned on with a
specific speed set by pwm# and automatically controlled its PWM duty cycle
with the temperature varying. Three conditions may occur:

(1) If the temperature still exceeds the high limit, PWM duty
cycle will increase slowly.

(2) If the temperature goes below the high limit, but still above the low
limit (T-tolerance), the fan speed will be fixed at the current speed because
the temperature is in the target range.

(3) If the temperature goes below the low limit, PWM duty cycle will decrease
slowly to 0 or a preset stop value until the temperature exceeds the low
limit. (The preset stop value handling is not yet implemented in driver)

Smart Fan II
------------

W83792D also provides a special mode for fan. Four temperature points are
available. When related temperature sensors detects the temperature in preset
temperature region (sf2_point@_fan# +- tolerance#) it will cause fans to run
on programmed value from sf2_level@_fan#. You need to set four temperatures
for each fan.

W83792D 고유 sysfs 속성

173-199

`pwm[1-7]`은 팬 속도를 나타내는 PWM 듀티 사이클 또는 DC 값을 저장하며 범위는 0(정지)부터 255(전속)까지입니다.

`pwm[1-3]_enable`은 팬과 온도 제어 모드를 선택합니다. 0은 비활성화, 1은 수동, 2는 Smart Fan II, 3은 Thermal Cruise입니다.

`pwm[1-7]_mode`는 출력 방식을 정하며 0은 DC, 1은 PWM입니다. `thermal_cruise[1-3]`은 Thermal Cruise의 목표 온도를 섭씨로 정하고 `tolerance[1-3]`은 T의 양쪽 허용폭을 섭씨로 정합니다.

`sf2_point[1-4]_fan[1-3]`은 Smart Fan II에서 각 팬에 사용할 4개 온도 지점입니다. `sf2_level[1-3]_fan[1-3]`은 각 팬의 3개 PWM/DC 레벨입니다.

W83792D sysfs 인터페이스
속성의미
`pwm[1-7]`0~255정지~전속 PWM/DC
`pwm[1-3]_enable`0비활성화
`pwm[1-3]_enable`1수동
`pwm[1-3]_enable`2Smart Fan II
`pwm[1-3]_enable`3Thermal Cruise
`pwm[1-7]_mode`0 / 1DC / PWM
`thermal_cruise[1-3]`°C목표 온도
`tolerance[1-3]`°C목표 허용폭
`sf2_point[1-4]_fan[1-3]`온도 4개/팬Smart Fan II 지점
`sf2_level[1-3]_fan[1-3]`레벨 3개/팬PWM/DC 레벨

팬 출력, 모드와 자동 제어 설정의 범위를 정리합니다.

sysfs 팬 모드 구성
사용 가능한 `pwm1`~`pwm7` 확인`pwmX_mode`로 DC 또는 PWM 선택fan1~fan3 제어 모드 선택목표·허용폭 또는 Smart Fan 지점 설정센서 온도에 따른 출력 확인

출력 유형과 제어 알고리즘을 순서대로 설정합니다.

/sys files
----------

pwm[1-7]
        - this file stores PWM duty cycle or DC value (fan speed) in range:

            0 (stop) to 255 (full)
pwm[1-3]_enable
        - this file controls mode of fan/temperature control:

            * 0 Disabled
            * 1 Manual mode
            * 2 Smart Fan II
            * 3 Thermal Cruise
pwm[1-7]_mode
        - Select PWM or DC mode

            * 0 DC
            * 1 PWM
thermal_cruise[1-3]
        - Selects the desired temperature for cruise (degC)
tolerance[1-3]
        - Value in degrees of Celsius (degC) for +- T
sf2_point[1-4]_fan[1-3]
        - four temperature points for each fan for Smart Fan II
sf2_level[1-3]_fan[1-3]
        - three PWM/DC levels for each fan for Smart Fan II