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

Linux 6.18.37 · Hardware Monitoring

Kernel driver adt7470

ADT7470의 외부 온도 10채널, fan counter 4개, 두 점 기반 자동 PWM과 주파수 설정입니다.

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

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

1. 요약·해설

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

요약·해설

adt7470.rst:1-94

온도 센서 10개를 기준으로 네 PWM output을 자동 제어하고, 두 온도점 사이를 비례 조정하는 hardware monitor입니다.

문서 개요
항목
SourceDocumentation/hwmon/adt7470.rst
분량94 source lines
Temperature최대 10
PWM4, 0~255

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

핵심 흐름
I2C 장치 탐지온도와 fan speed sampling두 PWM 제어점 계산선택 주파수로 fan 구동

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

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver adt7470
2 =====================
3
4 Supported chips:
5
6 * Analog Devices ADT7470
7
8 Prefix: 'adt7470'
9
10 Addresses scanned: I2C 0x2C, 0x2E, 0x2F
11
12 Datasheet: Publicly available at the Analog Devices website
13
14 Author: Darrick J. Wong
15
16 Description
17 -----------
18
19 This driver implements support for the Analog Devices ADT7470 chip. There may
20 be other chips that implement this interface.
21
22 The ADT7470 uses the 2-wire interface compatible with the SMBus 2.0
23 specification. Using an analog to digital converter it measures up to ten (10)
24 external temperatures. It has four (4) 16-bit counters for measuring fan speed.
25 There are four (4) PWM outputs that can be used to control fan speed.
26
27 A sophisticated control system for the PWM outputs is designed into the ADT7470
28 that allows fan speed to be adjusted automatically based on any of the ten
29 temperature sensors. Each PWM output is individually adjustable and
30 programmable. Once configured, the ADT7470 will adjust the PWM outputs in
31 response to the measured temperatures with further host intervention. This
32 feature can also be disabled for manual control of the PWM's.
33
34 Each of the measured inputs (temperature, fan speed) has corresponding high/low
35 limit values. The ADT7470 will signal an ALARM if any measured value exceeds
36 either limit.
37
38 The ADT7470 samples all inputs continuously. A kernel thread is started up for
39 the purpose of periodically querying the temperature sensors, thus allowing the
40 automatic fan pwm control to set the fan speed. The driver will not read the
41 registers more often than once every 5 seconds. Further, configuration data is
42 only read once per minute.
43
44 Special Features
45 ----------------
46
47 The ADT7470 has a 8-bit ADC and is capable of measuring temperatures with 1
48 degC resolution.
49
50 The Analog Devices datasheet is very detailed and describes a procedure for
51 determining an optimal configuration for the automatic PWM control.
52
53 Configuration Notes
54 -------------------
55
56 Besides standard interfaces driver adds the following:
57
58 * PWM Control
59
60 * pwm#_auto_point1_pwm and pwm#_auto_point1_temp and
61 * pwm#_auto_point2_pwm and pwm#_auto_point2_temp -
62
63 - point1: Set the pwm speed at a lower temperature bound.
64 - point2: Set the pwm speed at a higher temperature bound.
65
66 The ADT7470 will scale the pwm between the lower and higher pwm speed when
67 the temperature is between the two temperature boundaries. PWM values range
68 from 0 (off) to 255 (full speed). Fan speed will be set to maximum when the
69 temperature sensor associated with the PWM control exceeds
70 pwm#_auto_point2_temp.
71
72 The driver also allows control of the PWM frequency:
73
74 * pwm1_freq
75
76 The PWM frequency is rounded to the nearest one of:
77
78 * 11.0 Hz
79 * 14.7 Hz
80 * 22.1 Hz
81 * 29.4 Hz
82 * 35.3 Hz
83 * 44.1 Hz
84 * 58.8 Hz
85 * 88.2 Hz
86 * 1.4 kHz
87 * 22.5 kHz
88
89 Notes
90 -----
91
92 The temperature inputs no longer need to be read periodically from userspace in
93 order for the automatic pwm algorithm to run. This was the case for earlier
94 versions of the driver.
95

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분에 한 번만 읽습니다.

ADT7470 자원
자원수량용도
외부 온도 input최대 10자동 PWM 기준 및 한계 감시
Fan counter4 x 16 bitFan speed 측정
PWM output4독립적인 자동 또는 수동 fan 제어
Sensor register 갱신최소 5초driver cache 갱신
Configuration 갱신1분변경 빈도가 낮은 설정 읽기

측정 채널과 팬 제어 자원을 정리합니다.

자동 팬 제어
Kernel thread가 온도 센서 조회측정값을 high/low limit와 비교연결된 온도 채널별 PWM 값 계산각 PWM output에 계산 결과 적용한계 초과 시 ALARM 알림

주기적인 온도 조회가 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-70

ADT7470은 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으로 설정합니다.

ADT7470 자동 PWM 제어점
제어점온도 attributePWM attribute의미
Point 1pwm#_auto_point1_temppwm#_auto_point1_pwm낮은 경계의 fan speed
Point 2pwm#_auto_point2_temppwm#_auto_point2_pwm높은 경계의 fan speed
범위 초과> pwm#_auto_point2_temp255Maximum fan speed

두 온도 경계와 그때의 PWM 출력을 짝지어 설정합니다.

두 점 사이 PWM 계산
Point 1 온도와 PWM 설정Point 2 온도와 PWM 설정현재 온도를 두 경계와 비교경계 사이이면 PWM을 비례 조정상한을 넘으면 full speed 적용

온도 위치에 따라 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-94

driver는 `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을 수행합니다.

지원 PWM 주파수
낮은 주파수중간 주파수높은 주파수
11.0 Hz35.3 Hz88.2 Hz
14.7 Hz44.1 Hz1.4 kHz
22.1 Hz58.8 Hz22.5 kHz
29.4 Hz--

`pwm1_freq` 요청값은 다음 중 가장 가까운 값으로 맞춰집니다.

PWM 주파수 적용
Userspace가 pwm1_freq에 값 기록지원 주파수 목록과 거리 비교가장 가까운 주파수 선택PWM generator에 선택값 적용Kernel thread가 자동 제어 계속 수행

요청값을 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.