요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
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.
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.
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.
/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
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`에 배치합니다.
지원 주소와 문제 발생 시 조정할 매개변수를 정리합니다.
정상 초기화를 우선하고 충돌 또는 감지 실패에 대응합니다.
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초마다 값만 갱신합니다. 더 자주 읽어도 문제는 없지만 이전 값을 반환합니다.
원문의 24개 실시간 상태 비트를 모두 보존합니다.
센서 측정에서 경보 비트와 래치 상태를 만드는 흐름입니다.
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개 온도를 설정해야 합니다.
수동, Thermal Cruise와 Smart Fan II의 입력과 반응을 비교합니다.
목표 온도와 허용 구간에 따라 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 레벨입니다.
팬 출력, 모드와 자동 제어 설정의 범위를 정리합니다.
출력 유형과 제어 알고리즘을 순서대로 설정합니다.
/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
요약·해설
w83792d.rst:1-199W83792D는 최대 7개 팬 출력을 제공하고 fan1~3에 수동, Thermal Cruise, Smart Fan II 자동 제어를 적용합니다.
원문 분량과 핵심 기능을 요약합니다.
장치 탐지부터 센서와 팬 제어 제공까지의 순서입니다.