요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Kernel driver adt7470
=====================
Supported chips:
* Analog Devices ADT7470
Prefix: 'adt7470'
Addresses scanned: I2C 0x2C, 0x2E, 0x2F
Datasheet: Publicly available at the Analog Devices website
Author: Darrick J. Wong
Description
-----------
This driver implements support for the Analog Devices ADT7470 chip. There may
be other chips that implement this interface.
The ADT7470 uses the 2-wire interface compatible with the SMBus 2.0
specification. Using an analog to digital converter it measures up to ten (10)
external temperatures. It has four (4) 16-bit counters for measuring fan speed.
There are four (4) PWM outputs that can be used to control fan speed.
A sophisticated control system for the PWM outputs is designed into the ADT7470
that allows fan speed to be adjusted automatically based on any of the ten
temperature sensors. Each PWM output is individually adjustable and
programmable. Once configured, the ADT7470 will adjust the PWM outputs in
response to the measured temperatures with further host intervention. This
feature can also be disabled for manual control of the PWM's.
Each of the measured inputs (temperature, fan speed) has corresponding high/low
limit values. The ADT7470 will signal an ALARM if any measured value exceeds
either limit.
The ADT7470 samples all inputs continuously. A kernel thread is started up for
the purpose of periodically querying the temperature sensors, thus allowing the
automatic fan pwm control to set the fan speed. The driver will not read the
registers more often than once every 5 seconds. Further, configuration data is
only read once per minute.
Special Features
----------------
The ADT7470 has a 8-bit ADC and is capable of measuring temperatures with 1
degC resolution.
The Analog Devices datasheet is very detailed and describes a procedure for
determining an optimal configuration for the automatic PWM control.
Configuration Notes
-------------------
Besides standard interfaces driver adds the following:
* PWM Control
* pwm#_auto_point1_pwm and pwm#_auto_point1_temp and
* pwm#_auto_point2_pwm and pwm#_auto_point2_temp -
- point1: Set the pwm speed at a lower temperature bound.
- point2: Set the pwm speed at a higher temperature bound.
The ADT7470 will scale the pwm between the lower and higher pwm speed when
the temperature is between the two temperature boundaries. PWM values range
from 0 (off) to 255 (full speed). Fan speed will be set to maximum when the
temperature sensor associated with the PWM control exceeds
pwm#_auto_point2_temp.
The driver also allows control of the PWM frequency:
* pwm1_freq
The PWM frequency is rounded to the nearest one of:
* 11.0 Hz
* 14.7 Hz
* 22.1 Hz
* 29.4 Hz
* 35.3 Hz
* 44.1 Hz
* 58.8 Hz
* 88.2 Hz
* 1.4 kHz
* 22.5 kHz
Notes
-----
The temperature inputs no longer need to be read periodically from userspace in
order for the automatic pwm algorithm to run. This was the case for earlier
versions of the driver.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
ADT7470 지원과 자동 팬 제어
1-42이 드라이버는 Analog Devices `ADT7470` 칩을 지원합니다. 드라이버 prefix는 `adt7470`이며 I2C 주소 `0x2C`, `0x2E`, `0x2F`를 검색합니다. 데이터시트는 Analog Devices 웹사이트에서 공개되어 있고 저자는 Darrick J. Wong입니다. 같은 인터페이스를 구현한 다른 칩에서도 동작할 가능성이 있습니다.
ADT7470은 SMBus 2.0과 호환되는 2선 인터페이스를 사용합니다. 아날로그-디지털 변환기를 통해 외부 온도 최대 ten (10)개를 측정하고, fan speed 측정용 16-bit counter four (4)개와 fan speed 제어용 PWM output four (4)개를 제공합니다.
PWM output에는 정교한 자동 제어 시스템이 들어 있습니다. 온도 센서 10개 중 어느 것이든 제어 기준으로 삼을 수 있고, 각 PWM output을 독립적으로 조정하고 programming할 수 있습니다. 구성을 마치면 ADT7470이 측정 온도에 따라 별도의 host 개입 없이 PWM output을 조정합니다. 이 기능을 끄고 PWM을 수동으로 제어할 수도 있습니다.
온도와 fan speed를 포함한 각 측정 input에는 high/low limit가 대응합니다. 측정값이 어느 한계든 넘으면 ADT7470이 `ALARM`을 알립니다. 칩은 모든 input을 계속 sampling합니다. driver는 temperature sensor를 주기적으로 조회하는 kernel thread를 시작해 자동 fan PWM control이 fan speed를 설정할 수 있게 합니다. register는 5초에 한 번보다 자주 읽지 않으며 configuration data는 1분에 한 번만 읽습니다.
측정 채널과 팬 제어 자원을 정리합니다.
주기적인 온도 조회가 PWM 계산을 계속 진행시킵니다.
Kernel driver adt7470
=====================
Supported chips:
* Analog Devices ADT7470
Prefix: 'adt7470'
Addresses scanned: I2C 0x2C, 0x2E, 0x2F
Datasheet: Publicly available at the Analog Devices website
Author: Darrick J. Wong
Description
-----------
This driver implements support for the Analog Devices ADT7470 chip. There may
be other chips that implement this interface.
The ADT7470 uses the 2-wire interface compatible with the SMBus 2.0
specification. Using an analog to digital converter it measures up to ten (10)
external temperatures. It has four (4) 16-bit counters for measuring fan speed.
There are four (4) PWM outputs that can be used to control fan speed.
A sophisticated control system for the PWM outputs is designed into the ADT7470
that allows fan speed to be adjusted automatically based on any of the ten
temperature sensors. Each PWM output is individually adjustable and
programmable. Once configured, the ADT7470 will adjust the PWM outputs in
response to the measured temperatures with further host intervention. This
feature can also be disabled for manual control of the PWM's.
Each of the measured inputs (temperature, fan speed) has corresponding high/low
limit values. The ADT7470 will signal an ALARM if any measured value exceeds
either limit.
The ADT7470 samples all inputs continuously. A kernel thread is started up for
the purpose of periodically querying the temperature sensors, thus allowing the
automatic fan pwm control to set the fan speed. The driver will not read the
registers more often than once every 5 seconds. Further, configuration data is
only read once per minute.
ADC 해상도와 두 PWM 제어점
43-70ADT7470은 8-bit ADC를 사용하며 온도를 1 degC 해상도로 측정합니다. Analog Devices 데이터시트에는 automatic PWM control의 최적 configuration을 정하는 절차가 자세히 설명되어 있습니다.
표준 interface 외에 driver는 PWM control attribute를 추가합니다. 첫 번째 제어점은 `pwm#_auto_point1_pwm`과 `pwm#_auto_point1_temp`, 두 번째 제어점은 `pwm#_auto_point2_pwm`과 `pwm#_auto_point2_temp`로 표현합니다.
Point 1은 낮은 temperature bound에서 적용할 PWM speed이고 point 2는 높은 temperature bound에서 적용할 PWM speed입니다. 현재 온도가 두 경계 사이이면 ADT7470이 낮은 속도와 높은 속도 사이를 비례 조정합니다. PWM 값은 0, 즉 off부터 255, 즉 full speed까지입니다. PWM control에 연결된 temperature sensor가 `pwm#_auto_point2_temp`를 넘으면 fan speed를 maximum으로 설정합니다.
두 온도 경계와 그때의 PWM 출력을 짝지어 설정합니다.
온도 위치에 따라 0~255 범위의 출력을 결정합니다.
Special Features
----------------
The ADT7470 has a 8-bit ADC and is capable of measuring temperatures with 1
degC resolution.
The Analog Devices datasheet is very detailed and describes a procedure for
determining an optimal configuration for the automatic PWM control.
Configuration Notes
-------------------
Besides standard interfaces driver adds the following:
* PWM Control
* pwm#_auto_point1_pwm and pwm#_auto_point1_temp and
* pwm#_auto_point2_pwm and pwm#_auto_point2_temp -
- point1: Set the pwm speed at a lower temperature bound.
- point2: Set the pwm speed at a higher temperature bound.
The ADT7470 will scale the pwm between the lower and higher pwm speed when
the temperature is between the two temperature boundaries. PWM values range
from 0 (off) to 255 (full speed). Fan speed will be set to maximum when the
temperature sensor associated with the PWM control exceeds
pwm#_auto_point2_temp.
PWM 주파수와 동작 참고
71-94driver는 `pwm1_freq`로 PWM frequency를 제어할 수 있게 합니다. 요청한 주파수는 지원 목록에서 가장 가까운 값으로 반올림됩니다.
지원 주파수는 `11.0 Hz`, `14.7 Hz`, `22.1 Hz`, `29.4 Hz`, `35.3 Hz`, `44.1 Hz`, `58.8 Hz`, `88.2 Hz`, `1.4 kHz`, `22.5 kHz`입니다.
자동 PWM algorithm을 실행하기 위해 userspace가 temperature input을 주기적으로 읽을 필요는 더 이상 없습니다. 이전 driver 버전에서는 userspace 읽기가 필요했지만, 현재 구현은 kernel thread가 필요한 sampling을 수행합니다.
`pwm1_freq` 요청값은 다음 중 가장 가까운 값으로 맞춰집니다.
요청값을 hardware 지원 값으로 정규화합니다.
The driver also allows control of the PWM frequency:
* pwm1_freq
The PWM frequency is rounded to the nearest one of:
* 11.0 Hz
* 14.7 Hz
* 22.1 Hz
* 29.4 Hz
* 35.3 Hz
* 44.1 Hz
* 58.8 Hz
* 88.2 Hz
* 1.4 kHz
* 22.5 kHz
Notes
-----
The temperature inputs no longer need to be read periodically from userspace in
order for the automatic pwm algorithm to run. This was the case for earlier
versions of the driver.
요약·해설
adt7470.rst:1-94온도 센서 10개를 기준으로 네 PWM output을 자동 제어하고, 두 온도점 사이를 비례 조정하는 hardware monitor입니다.
원문 분량과 핵심 지원 범위입니다.
장치를 구성하고 측정·제어하는 기본 순서입니다.