요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
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
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.
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)
==== =========== =========== ========= ==========
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.
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.
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입니다.
모델별 prefix와 검색 주소입니다.
주소 검색 결과와 칩 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분에 한 번만 읽습니다.
계열 전체에서 공유하는 측정과 제어 기능입니다.
여러 온도 채널이 하나의 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-111ADT7473은 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)`입니다.
모델별 voltage input과 추가 기능입니다.
식별한 모델에 맞춰 유효한 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-150ADT747x는 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을 기록합니다.
두 제어점, 여러 온도 채널, stall 정책을 함께 적용합니다.
온도별 요구값 중 가장 빠른 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-157nVidia binary driver는 그래픽 카드 내부 I2C bus를 통해 ADT7473 칩을 제공합니다. 그러나 이 driver가 i2c adapter class를 설정하지 않으므로, nvidia driver를 patch하기 전에는 hwmon driver가 칩을 찾지 못할 수 있습니다.
칩 자체보다 I2C adapter metadata가 탐지를 막을 수 있습니다.
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.
요약·해설
adt7475.rst:1-157ADT747x 네 모델의 공통 sensor·fan 기능과 모델별 voltage input, 자동 PWM 정책을 설명합니다.
원문 분량과 핵심 지원 범위입니다.
장치를 구성하고 측정·제어하는 기본 순서입니다.