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

Linux 6.18.37 · Hardware Monitoring

Kernel driver w83793

W83793의 센서 유형, 온도·PWM 다대다 매핑, Thermal Cruise와 SmartFanII를 설명합니다.

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

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

1. 요약·해설

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

요약·해설

w83793.rst:1-113

W83793은 6개 온도 채널이 최대 8개 PWM을 함께 제어하며 여러 요청 중 가장 안전한 최대 PWM을 선택합니다.

문서 개요
항목
SourceDocumentation/hwmon/w83793.rst
분량113 source lines
온도/PWM6 / 최대 8
곡선 지점SmartFanII 최대 7

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

동작 흐름
센서 유형과 핀 구성 확인온도별 팬 맵 설정자동 제어 모드 계산팬별 최대 요청 선택PWM과 경보 제공

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

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver w83793
2 ====================
3
4 Supported chips:
5
6 * Winbond W83793G/W83793R
7
8 Prefix: 'w83793'
9
10 Addresses scanned: I2C 0x2c - 0x2f
11
12 Datasheet: Still not published
13
14 Authors:
15 - Yuan Mu (Winbond Electronics)
16 - Rudolf Marek <[email protected]>
17
18
19 Module parameters
20 -----------------
21
22 * reset int
23 (default 0)
24
25 This parameter is not recommended, it will lose motherboard specific
26 settings. Use 'reset=1' to reset the chip when loading this module.
27
28 * force_subclients=bus,caddr,saddr1,saddr2
29 This is used to force the i2c addresses for subclients of
30 a certain chip. Typical usage is `force_subclients=0,0x2f,0x4a,0x4b`
31 to force the subclients of chip 0x2f on bus 0 to i2c addresses
32 0x4a and 0x4b.
33
34
35 Description
36 -----------
37
38 This driver implements support for Winbond W83793G/W83793R chips.
39
40 * Exported features
41 This driver exports 10 voltage sensors, up to 12 fan tachometer inputs,
42 6 remote temperatures, up to 8 sets of PWM fan controls, SmartFan
43 (automatic fan speed control) on all temperature/PWM combinations, 2
44 sets of 6-pin CPU VID input.
45
46 * Sensor resolutions
47 If your motherboard maker used the reference design, the resolution of
48 voltage0-2 is 2mV, resolution of voltage3/4/5 is 16mV, 8mV for voltage6,
49 24mV for voltage7/8. Temp1-4 have a 0.25 degree Celsius resolution,
50 temp5-6 have a 1 degree Celsiis resolution.
51
52 * Temperature sensor types
53 Temp1-4 have 2 possible types. It can be read from (and written to)
54 temp[1-4]_type.
55
56 - If the value is 3, it starts monitoring using a remote termal diode
57 (default).
58 - If the value is 6, it starts monitoring using the temperature sensor
59 in Intel CPU and get result by PECI.
60
61 Temp5-6 can be connected to external thermistors (value of
62 temp[5-6]_type is 4).
63
64 * Alarm mechanism
65 For voltage sensors, an alarm triggers if the measured value is below
66 the low voltage limit or over the high voltage limit.
67 For temperature sensors, an alarm triggers if the measured value goes
68 above the high temperature limit, and wears off only after the measured
69 value drops below the hysteresis value.
70 For fan sensors, an alarm triggers if the measured value is below the
71 low speed limit.
72
73 * SmartFan/PWM control
74 If you want to set a pwm fan to manual mode, you just need to make sure it
75 is not controlled by any temp channel, for example, you want to set fan1
76 to manual mode, you need to check the value of temp[1-6]_fan_map, make
77 sure bit 0 is cleared in the 6 values. And then set the pwm1 value to
78 control the fan.
79
80 Each temperature channel can control all the 8 PWM outputs (by setting the
81 corresponding bit in tempX_fan_map), you can set the temperature channel
82 mode using temp[1-6]_pwm_enable, 2 is Thermal Cruise mode and 3
83 is the SmartFanII mode. Temperature channels will try to speed up or
84 slow down all controlled fans, this means one fan can receive different
85 PWM value requests from different temperature channels, but the chip
86 will always pick the safest (max) PWM value for each fan.
87
88 In Thermal Cruise mode, the chip attempts to keep the temperature at a
89 predefined value, within a tolerance margin. So if tempX_input >
90 thermal_cruiseX + toleranceX, the chip will increase the PWM value,
91 if tempX_input < thermal_cruiseX - toleranceX, the chip will decrease
92 the PWM value. If the temperature is within the tolerance range, the PWM
93 value is left unchanged.
94
95 SmartFanII works differently, you have to define up to 7 PWM, temperature
96 trip points, defining a PWM/temperature curve which the chip will follow.
97 While not fundamentally different from the Thermal Cruise mode, the
98 implementation is quite different, giving you a finer-grained control.
99
100 * Chassis
101 If the case open alarm triggers, it will stay in this state unless cleared
102 by writing 0 to the sysfs file "intrusion0_alarm".
103
104 * VID and VRM
105 The VRM version is detected automatically, don't modify the it unless you
106 *do* know the cpu VRM version and it's not properly detected.
107
108
109 Notes
110 -----
111
112 Only Fan1-5 and PWM1-3 are guaranteed to always exist, other fan inputs and
113 PWM outputs may or may not exist depending on the chip pin configuration.
114

3. 한국어 전문 번역

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

지원 장치와 모듈 매개변수

1-34

이 드라이버는 Winbond W83793G/W83793R을 지원합니다. 접두사는 `w83793`이고 검색하는 I2C 주소는 `0x2c`부터 `0x2f`까지입니다. 데이터시트는 아직 공개되지 않았습니다. 작성자는 Winbond Electronics의 Yuan Mu와 Rudolf Marek입니다.

정수 매개변수 `reset`의 기본값은 0입니다. 이 옵션은 메인보드 고유 설정을 잃게 하므로 권장하지 않습니다. 모듈을 적재할 때 칩을 재설정해야 할 때만 `reset=1`을 사용합니다.

`force_subclients=bus,caddr,saddr1,saddr2`는 특정 칩의 하위 클라이언트 I2C 주소를 강제합니다. 일반적인 예 `force_subclients=0,0x2f,0x4a,0x4b`는 버스 0의 칩 `0x2f`에 대한 하위 클라이언트를 `0x4a`, `0x4b`에 지정합니다.

W83793 지원과 매개변수
항목주의
지원 칩W83793G/W83793R접두사 `w83793`
검색I2C `0x2c`~`0x2f`데이터시트 미공개
`reset`기본 0보드 고유 설정 소실 가능
`force_subclients``0,0x2f,0x4a,0x4b`하위 주소 강제

공개 정보와 안전 주의를 정리합니다.

W83793 초기화
I2C 후보 주소에서 W83793 검색기본값으로 재설정하지 않음필요할 때만 하위 주소 강제보드 핀 구성에 따른 채널 확인센서·PWM 속성 등록

보드 설정을 보존하면서 장치와 하위 클라이언트를 연결합니다.

Kernel driver w83793
====================

Supported chips:

  * Winbond W83793G/W83793R

    Prefix: 'w83793'

    Addresses scanned: I2C 0x2c - 0x2f

    Datasheet: Still not published

Authors:
    - Yuan Mu (Winbond Electronics)
    - Rudolf Marek <[email protected]>


Module parameters
-----------------

* reset int
    (default 0)

    This parameter is not recommended, it will lose motherboard specific
    settings. Use 'reset=1' to reset the chip when loading this module.

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

내보내는 기능과 센서 해상도

35-72

드라이버는 전압 센서 10개, 팬 회전계 입력 최대 12개, 원격 온도 6개, PWM 팬 제어 최대 8세트, 모든 온도/PWM 조합의 SmartFan 자동 팬 속도 제어와 6핀 CPU VID 입력 2세트를 내보냅니다.

메인보드 제조사가 기준 설계를 사용했다면 `voltage0`~`voltage2`의 해상도는 2mV, `voltage3`~`voltage5`는 16mV, `voltage6`은 8mV, `voltage7`~`voltage8`은 24mV입니다. `temp1`~`temp4`는 0.25°C, `temp5`~`temp6`은 1°C 해상도입니다.

`temp1`~`temp4`는 두 센서 유형 중 하나를 가지며 `temp[1-4]_type`으로 읽고 쓸 수 있습니다. 값 3은 기본값인 원격 열 다이오드 감시를 시작하고, 값 6은 Intel CPU 내부 온도 센서를 PECI로 읽습니다. `temp5`~`temp6`은 외부 서미스터를 연결할 수 있으며 `temp[5-6]_type` 값은 4입니다.

전압 센서는 측정값이 하한 아래 또는 상한 위일 때 경보를 냅니다. 온도 센서는 상한을 넘으면 경보가 발생하고 히스테리시스 값 아래로 내려가야 해제됩니다. 팬 센서는 측정 속도가 하한 아래일 때 경보를 냅니다.

W83793 센서 기능
기능수·범위해상도·유형
전압10채널`voltage0-2` 2mV
전압`voltage3-5`16mV
전압`voltage6` / `voltage7-8`8mV / 24mV
팬 회전계최대 12최저 속도 경보
PWM최대 8모든 온도/PWM SmartFan 조합
`temp1-4`6채널 중 4개0.25°C; type 3 다이오드, 6 PECI
`temp5-6`6채널 중 2개1°C; type 4 외부 서미스터
CPU VID6핀 입력 2세트VRM 버전 자동 감지

채널 수, 해상도와 유형 값을 정리합니다.

W83793 센서 경보
보드 핀에 연결된 센서 채널 확인온도 유형 3·6·4 중 해당 값 선택전압·온도·팬 값 측정하한·상한·히스테리시스 비교채널별 경보 상태 제공

센서 유형을 선택하고 각 측정값을 임계값과 비교합니다.

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

This driver implements support for Winbond W83793G/W83793R chips.

* Exported features
    This driver exports 10 voltage sensors, up to 12 fan tachometer inputs,
    6 remote temperatures, up to 8 sets of PWM fan controls, SmartFan
    (automatic fan speed control) on all temperature/PWM combinations, 2
    sets of 6-pin CPU VID input.

* Sensor resolutions
    If your motherboard maker used the reference design, the resolution of
    voltage0-2 is 2mV, resolution of voltage3/4/5 is 16mV, 8mV for voltage6,
    24mV for voltage7/8. Temp1-4 have a 0.25 degree Celsius resolution,
    temp5-6 have a 1 degree Celsiis resolution.

* Temperature sensor types
    Temp1-4 have 2 possible types. It can be read from (and written to)
    temp[1-4]_type.

    - If the value is 3, it starts monitoring using a remote termal diode
      (default).
    - If the value is 6, it starts monitoring using the temperature sensor
      in Intel CPU and get result by PECI.

    Temp5-6 can be connected to external thermistors (value of
    temp[5-6]_type is 4).

* Alarm mechanism
    For voltage sensors, an alarm triggers if the measured value is below
    the low voltage limit or over the high voltage limit.
    For temperature sensors, an alarm triggers if the measured value goes
    above the high temperature limit, and wears off only after the measured
    value drops below the hysteresis value.
    For fan sensors, an alarm triggers if the measured value is below the
    low speed limit.

SmartFan/PWM, 섀시와 구성 주의

73-113

PWM 팬을 수동 모드로 설정하려면 어떤 온도 채널에도 제어되지 않게 해야 합니다. 예를 들어 fan1을 수동으로 제어하려면 `temp[1-6]_fan_map` 여섯 값에서 모두 비트 0이 지워졌는지 확인한 뒤 `pwm1` 값을 설정합니다.

각 온도 채널은 `tempX_fan_map`의 해당 비트를 설정해 8개 PWM 출력을 모두 제어할 수 있습니다. `temp[1-6]_pwm_enable`로 온도 채널 모드를 설정하며 값 2는 Thermal Cruise, 3은 SmartFanII입니다. 온도 채널들은 연결된 모든 팬을 빠르게 또는 느리게 하므로 팬 하나가 여러 온도 채널에서 서로 다른 PWM 요청을 받을 수 있습니다. 칩은 팬마다 가장 안전한 값, 즉 최대 PWM을 선택합니다.

Thermal Cruise는 허용폭 안에서 미리 정한 온도를 유지합니다. `tempX_input > thermal_cruiseX + toleranceX`이면 PWM을 높이고, `tempX_input < thermal_cruiseX - toleranceX`이면 낮춥니다. 허용 구간 안에서는 PWM 값을 바꾸지 않습니다.

SmartFanII는 최대 7개의 PWM·온도 전환점을 정의해 칩이 따라갈 PWM/온도 곡선을 만듭니다. 기본 목적은 Thermal Cruise와 크게 다르지 않지만 구현이 다르며 더 세밀하게 제어할 수 있습니다.

케이스 열림 경보는 `intrusion0_alarm` sysfs 파일에 0을 쓰기 전까지 유지됩니다. VRM 버전은 자동 감지하므로 CPU VRM 버전을 정확히 알고 자동 감지가 틀렸을 때가 아니면 수정하지 않아야 합니다.

Fan1~Fan5와 PWM1~PWM3만 항상 존재한다고 보장됩니다. 나머지 팬 입력과 PWM 출력은 칩의 핀 구성에 따라 있을 수도, 없을 수도 있습니다.

W83793 팬 제어 규칙
항목설정결과
수동 fan1모든 `temp[1-6]_fan_map` bit 0 지움`pwm1` 직접 제어
온도별 팬 맵`tempX_fan_map`최대 8개 PWM 연결
Thermal Cruise`temp[1-6]_pwm_enable=2`목표±허용폭 유지
SmartFanII`temp[1-6]_pwm_enable=3`최대 7개 곡선 지점
복수 요청여러 온도 채널가장 안전한 최대 PWM 선택
보장 채널Fan1~5, PWM1~3항상 존재
선택 채널Fan6~12, PWM4~8핀 구성에 따라 존재
섀시 경보`intrusion0_alarm=0`래치 해제

팬 맵, 자동 모드와 항상 존재하는 채널을 정리합니다.

W83793 PWM 결정
`tempX_fan_map`에서 연결 팬 확인Thermal Cruise 또는 SmartFanII 계산각 온도 채널이 PWM 값 요청팬별 요청 중 최대값 선택핀 구성에 존재하는 PWM에 출력

온도 채널별 요청을 모아 팬마다 안전한 출력을 선택합니다.

* SmartFan/PWM control
    If you want to set a pwm fan to manual mode, you just need to make sure it
    is not controlled by any temp channel, for example, you want to set fan1
    to manual mode, you need to check the value of temp[1-6]_fan_map, make
    sure bit 0 is cleared in the 6 values. And then set the pwm1 value to
    control the fan.

    Each temperature channel can control all the 8 PWM outputs (by setting the
    corresponding bit in tempX_fan_map), you can set the temperature channel
    mode using temp[1-6]_pwm_enable, 2 is Thermal Cruise mode and 3
    is the SmartFanII mode. Temperature channels will try to speed up or
    slow down all controlled fans, this means one fan can receive different
    PWM value requests from different temperature channels, but the chip
    will always pick the safest (max) PWM value for each fan.

    In Thermal Cruise mode, the chip attempts to keep the temperature at a
    predefined value, within a tolerance margin. So if tempX_input >
    thermal_cruiseX + toleranceX, the chip will increase the PWM value,
    if tempX_input < thermal_cruiseX - toleranceX, the chip will decrease
    the PWM value. If the temperature is within the tolerance range, the PWM
    value is left unchanged.

    SmartFanII works differently, you have to define up to 7 PWM, temperature
    trip points, defining a PWM/temperature curve which the chip will follow.
    While not fundamentally different from the Thermal Cruise mode, the
    implementation is quite different, giving you a finer-grained control.

* Chassis
    If the case open alarm triggers, it will stay in this state unless cleared
    by writing 0 to the sysfs file "intrusion0_alarm".

* VID and VRM
    The VRM version is detected automatically, don't modify the it unless you
    *do* know the cpu VRM version and it's not properly detected.


Notes
-----

  Only Fan1-5 and PWM1-3 are guaranteed to always exist, other fan inputs and
  PWM outputs may or may not exist depending on the chip pin configuration.