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

Linux 6.18.37 · Hardware Monitoring

Kernel driver adt7475

ADT7473/7475/7476/7490의 모델별 voltage 매핑, 다중 온도 기반 PWM, stall과 smoothing 설정입니다.

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

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

1. 요약·해설

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

요약·해설

adt7475.rst:1-157

ADT747x 네 모델의 공통 sensor·fan 기능과 모델별 voltage input, 자동 PWM 정책을 설명합니다.

문서 개요
항목
SourceDocumentation/hwmon/adt7475.rst
분량157 source lines
Temperature3 x 0.25C
PWM3, 0~255

원문 분량과 핵심 지원 범위입니다.

핵심 흐름
모델과 입력 채널 식별온도별 PWM 요구값 계산Maximum 요구값 선택Stall과 smoothing 적용

장치를 구성하고 측정·제어하는 기본 순서입니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver adt7475
2 =====================
3
4 Supported chips:
5
6 * Analog Devices ADT7473
7
8 Prefix: 'adt7473'
9
10 Addresses scanned: I2C 0x2C, 0x2D, 0x2E
11
12 Datasheet: Publicly available at the On Semiconductors website
13
14 * Analog Devices ADT7475
15
16 Prefix: 'adt7475'
17
18 Addresses scanned: I2C 0x2E
19
20 Datasheet: Publicly available at the On Semiconductors website
21
22 * Analog Devices ADT7476
23
24 Prefix: 'adt7476'
25
26 Addresses scanned: I2C 0x2C, 0x2D, 0x2E
27
28 Datasheet: Publicly available at the On Semiconductors website
29
30 * Analog Devices ADT7490
31
32 Prefix: 'adt7490'
33
34 Addresses scanned: I2C 0x2C, 0x2D, 0x2E
35
36 Datasheet: Publicly available at the On Semiconductors website
37
38 Authors:
39 - Jordan Crouse
40 - Hans de Goede
41 - Darrick J. Wong (documentation)
42 - Jean Delvare
43
44
45 Description
46 -----------
47
48 This driver implements support for the Analog Devices ADT7473, ADT7475,
49 ADT7476 and ADT7490 chip family. The ADT7473 and ADT7475 differ only in
50 minor details. The ADT7476 has additional features, including extra voltage
51 measurement inputs and VID support. The ADT7490 also has additional
52 features, including extra voltage measurement inputs and PECI support. All
53 the supported chips will be collectively designed by the name "ADT747x" in
54 the rest of this document.
55
56 The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
57 specification. Using an analog to digital converter it measures three (3)
58 temperatures and two (2) or more voltages. It has four (4) 16-bit counters
59 for measuring fan speed. There are three (3) PWM outputs that can be used
60 to control fan speed.
61
62 A sophisticated control system for the PWM outputs is designed into the
63 ADT747x that allows fan speed to be adjusted automatically based on any of the
64 three temperature sensors. Each PWM output is individually adjustable and
65 programmable. Once configured, the ADT747x will adjust the PWM outputs in
66 response to the measured temperatures without further host intervention.
67 This feature can also be disabled for manual control of the PWM's.
68
69 Each of the measured inputs (voltage, temperature, fan speed) has
70 corresponding high/low limit values. The ADT747x will signal an ALARM if
71 any measured value exceeds either limit.
72
73 The ADT747x samples all inputs continuously. The driver will not read
74 the registers more often than once every other second. Further,
75 configuration data is only read once per minute.
76
77 Chip Differences Summary
78 ------------------------
79
80 ADT7473:
81 * 2 voltage inputs
82 * system acoustics optimizations (not implemented)
83
84 ADT7475:
85 * 2 voltage inputs
86
87 ADT7476:
88 * 5 voltage inputs
89 * VID support
90
91 ADT7490:
92 * 6 voltage inputs
93 * 1 Imon input
94 * PECI support (not implemented)
95 * 2 GPIO pins (not implemented)
96 * system acoustics optimizations (not implemented)
97
98 Sysfs Mapping
99 -------------
100
101 ==== =========== =========== ========= ==========
102 in ADT7490 ADT7476 ADT7475 ADT7473
103 ==== =========== =========== ========= ==========
104 in0 2.5VIN (22) 2.5VIN (22) - -
105 in1 VCCP (23) VCCP (23) VCCP (14) VCCP (14)
106 in2 VCC (4) VCC (4) VCC (4) VCC (3)
107 in3 5VIN (20) 5VIN (20)
108 in4 12VIN (21) 12VIN (21)
109 in5 VTT (8)
110 in6 Imon (19)
111 ==== =========== =========== ========= ==========
112
113 Special Features
114 ----------------
115
116 The ADT747x has a 10-bit ADC and can therefore measure temperatures
117 with a resolution of 0.25 degree Celsius. Temperature readings can be
118 configured either for two's complement format or "Offset 64" format,
119 wherein 64 is subtracted from the raw value to get the temperature value.
120
121 The datasheet is very detailed and describes a procedure for determining
122 an optimal configuration for the automatic PWM control.
123
124 Fan Speed Control
125 -----------------
126
127 The driver exposes two trip points per PWM channel.
128
129 - point1: Set the PWM speed at the lower temperature bound
130 - point2: Set the PWM speed at the higher temperature bound
131
132 The ADT747x will scale the PWM linearly between the lower and higher PWM
133 speed when the temperature is between the two temperature boundaries.
134 Temperature boundaries are associated to temperature channels rather than
135 PWM outputs, and a given PWM output can be controlled by several temperature
136 channels. As a result, the ADT747x may compute more than one PWM value
137 for a channel at a given time, in which case the maximum value (fastest
138 fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
139
140 Fan speed may be set to maximum when the temperature sensor associated with
141 the PWM control exceeds temp#_max.
142
143 At Tmin - hysteresis the PWM output can either be off (0% duty cycle) or at the
144 minimum (i.e. auto_point1_pwm). This behaviour can be configured using the
145 `pwm[1-*]_stall_disable sysfs attribute`. A value of 0 means the fans will shut
146 off. A value of 1 means the fans will run at auto_point1_pwm.
147
148 The responsiveness of the ADT747x to temperature changes can be configured.
149 This allows smoothing of the fan speed transition. To set the transition time
150 set the value in ms in the `temp[1-*]_smoothing` sysfs attribute.
151
152 Notes
153 -----
154
155 The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
156 Unfortunately, they fail to set the i2c adapter class, so this driver may
157 fail to find the chip until the nvidia driver is patched.
158

3. 한국어 전문 번역

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

ADT747x 계열 지원

1-43

이 드라이버는 Analog Devices `ADT7473`, `ADT7475`, `ADT7476`, `ADT7490`을 지원합니다. 각 prefix는 `adt7473`, `adt7475`, `adt7476`, `adt7490`입니다. ADT7475는 I2C `0x2E`만 검색하고 나머지 세 모델은 `0x2C`, `0x2D`, `0x2E`를 검색합니다.

각 모델의 데이터시트는 On Semiconductors 웹사이트에서 공개되어 있습니다. 저자는 Jordan Crouse, Hans de Goede, 문서화를 맡은 Darrick J. Wong, Jean Delvare입니다.

ADT747x 검색 정보
Prefix검색 주소
ADT7473adt74730x2C, 0x2D, 0x2E
ADT7475adt74750x2E
ADT7476adt74760x2C, 0x2D, 0x2E
ADT7490adt74900x2C, 0x2D, 0x2E

모델별 prefix와 검색 주소입니다.

모델 식별
지원 I2C 주소 검색칩 identity 확인ADT7473/7475/7476/7490 variant 선택모델별 voltage input과 기능 노출

주소 검색 결과와 칩 identity를 사용해 variant를 선택합니다.

Kernel driver adt7475
=====================

Supported chips:

  * Analog Devices ADT7473

    Prefix: 'adt7473'

    Addresses scanned: I2C 0x2C, 0x2D, 0x2E

    Datasheet: Publicly available at the On Semiconductors website

  * Analog Devices ADT7475

    Prefix: 'adt7475'

    Addresses scanned: I2C 0x2E

    Datasheet: Publicly available at the On Semiconductors website

  * Analog Devices ADT7476

    Prefix: 'adt7476'

    Addresses scanned: I2C 0x2C, 0x2D, 0x2E

    Datasheet: Publicly available at the On Semiconductors website

  * Analog Devices ADT7490

    Prefix: 'adt7490'

    Addresses scanned: I2C 0x2C, 0x2D, 0x2E

    Datasheet: Publicly available at the On Semiconductors website

Authors:
        - Jordan Crouse
        - Hans de Goede
        - Darrick J. Wong (documentation)
        - Jean Delvare

공통 측정과 자동 PWM

44-75

이 드라이버는 ADT7473, ADT7475, ADT7476, ADT7490 계열을 지원합니다. ADT7473과 ADT7475의 차이는 사소합니다. ADT7476은 추가 voltage measurement input과 VID support를 제공하고, ADT7490은 추가 voltage input과 PECI support를 제공합니다. 이 문서에서는 이들을 통틀어 `ADT747x`라고 부릅니다.

ADT747x는 SMBus 2.0과 호환되는 2선 interface를 사용합니다. ADC로 temperature three (3)개와 voltage two (2)개 이상을 측정하며, fan speed 측정용 16-bit counter four (4)개와 fan control용 PWM output three (3)개를 제공합니다.

각 PWM output은 temperature sensor 세 개 중 어느 것이든 기준으로 삼아 자동 조정할 수 있으며, 독립적으로 조정하고 programming할 수 있습니다. 구성 후에는 host의 추가 개입 없이 측정 온도에 따라 PWM output을 바꿉니다. 자동 기능을 disable하고 PWM을 수동 제어할 수도 있습니다.

Voltage, temperature, fan speed input에는 각각 high/low limit가 있습니다. 측정값이 어느 한계든 넘으면 ADT747x가 `ALARM`을 알립니다. 칩은 모든 input을 계속 sampling하고, driver는 register를 2초에 한 번보다 자주 읽지 않으며 configuration data는 1분에 한 번만 읽습니다.

ADT747x 공통 자원
자원수량기능
Temperature3자동 PWM 기준과 한계 감시
Voltage2 이상모델별 추가 채널
Fan counter4 x 16 bitFan speed 측정
PWM output3자동 또는 수동 제어
Register refresh최소 2초측정 cache 갱신

계열 전체에서 공유하는 측정과 제어 기능입니다.

ADT747x 자동 제어
모든 input 연속 samplingTemperature별 PWM 요구값 계산PWM output별 제어값 선택Fan speed 조정Limit 초과 시 ALARM 알림

여러 온도 채널이 하나의 PWM output을 함께 제어할 수 있습니다.


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

This driver implements support for the Analog Devices ADT7473, ADT7475,
ADT7476 and ADT7490 chip family. The ADT7473 and ADT7475 differ only in
minor details. The ADT7476 has additional features, including extra voltage
measurement inputs and VID support. The ADT7490 also has additional
features, including extra voltage measurement inputs and PECI support. All
the supported chips will be collectively designed by the name "ADT747x" in
the rest of this document.

The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
specification. Using an analog to digital converter it measures three (3)
temperatures and two (2) or more voltages. It has four (4) 16-bit counters
for measuring fan speed. There are three (3) PWM outputs that can be used
to control fan speed.

A sophisticated control system for the PWM outputs is designed into the
ADT747x that allows fan speed to be adjusted automatically based on any of the
three temperature sensors. Each PWM output is individually adjustable and
programmable. Once configured, the ADT747x will adjust the PWM outputs in
response to the measured temperatures without further host intervention.
This feature can also be disabled for manual control of the PWM's.

Each of the measured inputs (voltage, temperature, fan speed) has
corresponding high/low limit values. The ADT747x will signal an ALARM if
any measured value exceeds either limit.

The ADT747x samples all inputs continuously. The driver will not read
the registers more often than once every other second. Further,
configuration data is only read once per minute.

모델 차이와 sysfs voltage 매핑

76-111

ADT7473은 voltage input 2개와 system acoustics optimization을 갖지만 acoustics 기능은 구현되지 않았습니다. ADT7475는 voltage input 2개를 제공합니다. ADT7476은 voltage input 5개와 VID support를 제공합니다.

ADT7490은 voltage input 6개, Imon input 1개, PECI support, GPIO pin 2개, system acoustics optimization을 제공합니다. 이 가운데 PECI, GPIO, acoustics 기능은 driver에 구현되지 않았습니다.

Sysfs `in` 채널 매핑은 모델마다 다릅니다. ADT7490과 ADT7476의 `in0`은 `2.5VIN (22)`, `in1`은 `VCCP (23)`, `in2`는 `VCC (4)`, `in3`은 `5VIN (20)`, `in4`는 `12VIN (21)`입니다. ADT7490에는 `in5`의 `VTT (8)`와 `in6`의 `Imon (19)`가 더 있습니다.

ADT7475는 `in1`이 `VCCP (14)`, `in2`가 `VCC (4)`입니다. ADT7473은 `in1`이 `VCCP (14)`, `in2`가 `VCC (3)`입니다.

ADT747x 기능 차이
모델Voltage input추가 기능미구현 기능
ADT74732-System acoustics
ADT74752--
ADT74765VID-
ADT74906 + Imon-PECI, GPIO 2개, system acoustics

모델별 voltage input과 추가 기능입니다.

Voltage 채널 노출
ADT747x 모델 식별모델별 voltage input 수 확인Pin 번호와 in 채널 연결ADT7490이면 VTT와 Imon 추가미구현 기능은 노출하지 않음

식별한 모델에 맞춰 유효한 sysfs 입력만 등록합니다.


Chip Differences Summary
------------------------

ADT7473:
  * 2 voltage inputs
  * system acoustics optimizations (not implemented)

ADT7475:
  * 2 voltage inputs

ADT7476:
  * 5 voltage inputs
  * VID support

ADT7490:
  * 6 voltage inputs
  * 1 Imon input
  * PECI support (not implemented)
  * 2 GPIO pins (not implemented)
  * system acoustics optimizations (not implemented)

Sysfs Mapping
-------------

==== =========== =========== ========= ==========
in   ADT7490     ADT7476     ADT7475   ADT7473
==== =========== =========== ========= ==========
in0  2.5VIN (22) 2.5VIN (22) -         -
in1  VCCP   (23) VCCP   (23) VCCP (14) VCCP (14)
in2  VCC    (4)  VCC    (4)  VCC  (4)  VCC  (3)
in3  5VIN   (20) 5VIN   (20)
in4  12VIN  (21) 12VIN  (21)
in5  VTT    (8)
in6  Imon   (19)
==== =========== =========== ========= ==========

온도 형식과 fan speed control

112-150

ADT747x는 10-bit ADC를 사용하므로 온도를 0.25 degree Celsius 해상도로 측정합니다. 온도 값은 two's complement format 또는 `Offset 64` format으로 구성할 수 있습니다. Offset 64 형식에서는 raw value에서 64를 빼 실제 temperature value를 구합니다.

데이터시트에는 automatic PWM control의 최적 configuration을 결정하는 절차가 자세히 나옵니다. driver는 PWM channel마다 trip point 두 개를 노출합니다. Point 1은 낮은 temperature bound에서 PWM speed를 설정하고, point 2는 높은 temperature bound에서 PWM speed를 설정합니다.

온도가 두 경계 사이이면 PWM speed를 선형으로 조정합니다. Temperature boundary는 PWM output이 아니라 temperature channel에 연결되며, PWM output 하나를 여러 temperature channel이 제어할 수 있습니다. 따라서 한 시점에 한 PWM channel용 값이 여러 개 계산될 수 있고, 이때 maximum value, 즉 가장 빠른 fan speed를 적용합니다. PWM 범위는 0 off부터 255 full speed까지입니다.

PWM control에 연결된 temperature sensor가 `temp#_max`를 넘으면 fan speed를 maximum으로 설정할 수 있습니다. `Tmin - hysteresis`에서 PWM output을 off, 즉 0% duty cycle로 만들거나 minimum인 `auto_point1_pwm`으로 유지할 수 있습니다.

이 동작은 `pwm[1-*]_stall_disable sysfs attribute`로 구성합니다. 값 0은 fan을 끄고, 값 1은 fan을 `auto_point1_pwm`으로 구동합니다. 온도 변화에 대한 응답성과 fan speed transition smoothing도 설정할 수 있습니다. `temp[1-*]_smoothing` sysfs attribute에 millisecond 단위 transition time을 기록합니다.

ADT747x PWM 정책
조건/attribute동작
Point 1낮은 온도 경계의 PWM speed
Point 2높은 온도 경계의 PWM speed
여러 temperature channel계산값 중 maximum PWM 적용
pwm[1-*]_stall_disable = 0Tmin - hysteresis에서 fan off
pwm[1-*]_stall_disable = 1Tmin - hysteresis에서 auto_point1_pwm
temp[1-*]_smoothing전환 시간을 ms 단위로 설정

두 제어점, 여러 온도 채널, stall 정책을 함께 적용합니다.

Fan speed 산출
각 temperature channel의 두 trip point 읽기현재 온도에 따른 PWM 선형 계산한 output을 제어하는 계산값 모으기Maximum PWM value 선택Stall 정책과 smoothing을 적용해 출력

온도별 요구값 중 가장 빠른 fan speed를 선택합니다.


Special Features
----------------

The ADT747x has a 10-bit ADC and can therefore measure temperatures
with a resolution of 0.25 degree Celsius. Temperature readings can be
configured either for two's complement format or "Offset 64" format,
wherein 64 is subtracted from the raw value to get the temperature value.

The datasheet is very detailed and describes a procedure for determining
an optimal configuration for the automatic PWM control.

Fan Speed Control
-----------------

The driver exposes two trip points per PWM channel.

- point1: Set the PWM speed at the lower temperature bound
- point2: Set the PWM speed at the higher temperature bound

The ADT747x will scale the PWM linearly between the lower and higher PWM
speed when the temperature is between the two temperature boundaries.
Temperature boundaries are associated to temperature channels rather than
PWM outputs, and a given PWM output can be controlled by several temperature
channels. As a result, the ADT747x may compute more than one PWM value
for a channel at a given time, in which case the maximum value (fastest
fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).

Fan speed may be set to maximum when the temperature sensor associated with
the PWM control exceeds temp#_max.

At Tmin - hysteresis the PWM output can either be off (0% duty cycle) or at the
minimum (i.e. auto_point1_pwm). This behaviour can be configured using the
`pwm[1-*]_stall_disable sysfs attribute`. A value of 0 means the fans will shut
off. A value of 1 means the fans will run at auto_point1_pwm.

The responsiveness of the ADT747x to temperature changes can be configured.
This allows smoothing of the fan speed transition. To set the transition time
set the value in ms in the `temp[1-*]_smoothing` sysfs attribute.

nVidia on-card I2C 참고

151-157

nVidia binary driver는 그래픽 카드 내부 I2C bus를 통해 ADT7473 칩을 제공합니다. 그러나 이 driver가 i2c adapter class를 설정하지 않으므로, nvidia driver를 patch하기 전에는 hwmon driver가 칩을 찾지 못할 수 있습니다.

nVidia 환경의 탐지 문제
단계상태
On-card busADT7473 제공
Adapter classnVidia binary driver가 설정하지 않음
결과ADT7475 driver의 자동 탐지가 실패할 수 있음
대응nvidia driver patch 필요

칩 자체보다 I2C adapter metadata가 탐지를 막을 수 있습니다.

탐지 실패 진단
On-card I2C bus 존재 확인ADT7473 응답 확인I2C adapter class 확인Class가 없으면 nvidia driver patchHwmon driver 탐지 다시 수행

Adapter class 설정 여부를 순서대로 확인합니다.


Notes
-----

The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
Unfortunately, they fail to set the i2c adapter class, so this driver may
fail to find the chip until the nvidia driver is patched.