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

Linux 6.18.37 · Hardware Monitoring

Kernel driver amc6821

AMC6821의 local·remote 온도, fan tachometer, 네 regulator mode와 자동 PWM 곡선입니다.

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

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

1. 요약·해설

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

요약·해설

amc6821.rst:1-113

두 온도 센서와 fan tachometer를 사용해 open loop, 온도, 결합 온도, target RPM 방식으로 fan을 제어합니다.

문서 개요
항목
SourceDocumentation/hwmon/amc6821.rst
분량113 source lines
TemperatureLocal 1 + remote 1
Fan regulatorPWM 또는 DC

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

핵심 흐름
BIOS 초기화 상태 확인pwm1_enable mode 선택온도점 또는 target RPM 적용Tachometer와 alarm 감시

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

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver amc6821
2 =====================
3
4 Supported chips:
5
6 Texas Instruments AMC6821
7
8 Prefix: 'amc6821'
9
10 Addresses scanned: 0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, 0x4c, 0x4d, 0x4e
11
12 Datasheet: http://focus.ti.com/docs/prod/folders/print/amc6821.html
13
14 Authors:
15 Tomaz Mertelj <[email protected]>
16
17
18 Description
19 -----------
20
21 This driver implements support for the Texas Instruments amc6821 chip.
22 The chip has one on-chip and one remote temperature sensor and one pwm fan
23 regulator.
24 The pwm can be controlled either from software or automatically.
25
26 The driver provides the following sensor accesses in sysfs:
27
28 ======================= == ===============================================
29 temp1_input ro on-chip temperature
30 temp1_min rw "
31 temp1_max rw "
32 temp1_crit rw "
33 temp1_min_alarm ro "
34 temp1_max_alarm ro "
35 temp1_crit_alarm ro "
36
37 temp2_input ro remote temperature
38 temp2_min rw "
39 temp2_max rw "
40 temp2_crit rw "
41 temp2_min_alarm ro "
42 temp2_max_alarm ro "
43 temp2_crit_alarm ro "
44 temp2_fault ro "
45
46 fan1_input ro tachometer speed
47 fan1_min rw "
48 fan1_max rw "
49 fan1_fault ro "
50 fan1_pulses rw Pulses per revolution can be either 2 or 4.
51 fan1_target rw Target fan speed, to be used with pwm1_enable
52 mode 4.
53
54 pwm1 rw pwm1
55 pwm1_enable rw regulator mode, 1=open loop, 2=fan controlled
56 by remote temperature, 3=fan controlled by
57 combination of the on-chip temperature and
58 remote-sensor temperature,
59 4=fan controlled by target rpm set with
60 fan1_target attribute.
61 pwm1_mode rw Fan duty control mode (0=DC, 1=PWM)
62 pwm1_auto_channels_temp ro 1 if pwm_enable==2, 3 if pwm_enable==3
63 pwm1_auto_point1_pwm ro Hardwired to 0, shared for both
64 temperature channels.
65 pwm1_auto_point2_pwm rw This value is shared for both temperature
66 channels.
67 pwm1_auto_point3_pwm rw Hardwired to 255, shared for both
68 temperature channels.
69
70 temp1_auto_point1_temp ro Hardwired to temp2_auto_point1_temp
71 which is rw. Below this temperature fan stops.
72 temp1_auto_point2_temp rw The low-temperature limit of the proportional
73 range. Below this temperature
74 pwm1 = pwm1_auto_point2_pwm. It can go from
75 0 degree C to 124 degree C in steps of
76 4 degree C. Read it out after writing to get
77 the actual value.
78 temp1_auto_point3_temp rw Above this temperature fan runs at maximum
79 speed. It can go from temp1_auto_point2_temp.
80 It can only have certain discrete values
81 which depend on temp1_auto_point2_temp and
82 pwm1_auto_point2_pwm. Read it out after
83 writing to get the actual value.
84
85 temp2_auto_point1_temp rw Must be between 0 degree C and 63 degree C and
86 it defines the passive cooling temperature.
87 Below this temperature the fan stops in
88 the closed loop mode.
89 temp2_auto_point2_temp rw The low-temperature limit of the proportional
90 range. Below this temperature
91 pwm1 = pwm1_auto_point2_pwm. It can go from
92 0 degree C to 124 degree C in steps
93 of 4 degree C.
94
95 temp2_auto_point3_temp rw Above this temperature fan runs at maximum
96 speed. It can only have certain discrete
97 values which depend on temp2_auto_point2_temp
98 and pwm1_auto_point2_pwm. Read it out after
99 writing to get actual value.
100 ======================= == ===============================================
101
102
103 Module parameters
104 -----------------
105
106 If your board has a BIOS that initializes the amc6821 correctly, you should
107 load the module with: init=0.
108
109 If your board BIOS doesn't initialize the chip, or you want
110 different settings, you can set the following parameters:
111
112 - init=1,
113 - pwminv: 0 default pwm output, 1 inverts pwm output.
114

3. 한국어 전문 번역

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

AMC6821 지원과 센서 구성

1-26

이 드라이버는 Texas Instruments `AMC6821`을 지원합니다. prefix는 `amc6821`이고 주소 `0x18`, `0x19`, `0x1a`, `0x2c`, `0x2d`, `0x2e`, `0x4c`, `0x4d`, `0x4e`를 검색합니다. 데이터시트 URL은 TI 사이트에 있고 저자는 Tomaz Mertelj입니다.

칩에는 on-chip temperature sensor 하나, remote temperature sensor 하나, PWM fan regulator 하나가 있습니다. PWM은 software에서 직접 제어하거나 temperature에 따라 자동 제어할 수 있습니다.

AMC6821 자원
자원수량기능
On-chip temperature1Local temperature 측정
Remote temperature1외부 sensor 측정
PWM fan regulator1Software 또는 자동 제어
검색 주소90x18~0x1a, 0x2c~0x2e, 0x4c~0x4e

두 온도 채널과 하나의 fan controller로 구성됩니다.

AMC6821 제어 경로
두 temperature sensor 측정pwm1_enable mode 확인Software, 온도, 결합 온도, target RPM 중 기준 선택PWM 또는 DC duty 출력Fan tachometer로 결과 감시

Local·remote 온도나 target RPM을 기준으로 fan을 제어합니다.

Kernel driver amc6821
=====================

Supported chips:

        Texas Instruments AMC6821

        Prefix: 'amc6821'

        Addresses scanned: 0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, 0x4c, 0x4d, 0x4e

        Datasheet: http://focus.ti.com/docs/prod/folders/print/amc6821.html

Authors:
        Tomaz Mertelj <[email protected]>


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

This driver implements support for the Texas Instruments amc6821 chip.
The chip has one on-chip and one remote temperature sensor and one pwm fan
regulator.
The pwm can be controlled either from software or automatically.

The driver provides the following sensor accesses in sysfs:

Temperature, fan, PWM sysfs

27-68

`temp1_input`은 read-only on-chip temperature입니다. `temp1_min`, `temp1_max`, `temp1_crit`은 read/write 한계이고, `temp1_min_alarm`, `temp1_max_alarm`, `temp1_crit_alarm`은 read-only alarm입니다.

`temp2_input`은 read-only remote temperature입니다. `temp2_min`, `temp2_max`, `temp2_crit`은 read/write 한계이며, `temp2_min_alarm`, `temp2_max_alarm`, `temp2_crit_alarm`, `temp2_fault`는 read-only 상태입니다.

`fan1_input`은 read-only tachometer speed, `fan1_min`과 `fan1_max`는 read/write 한계, `fan1_fault`는 read-only fault입니다. `fan1_pulses`는 회전당 pulse 수를 2 또는 4로 설정하는 read/write attribute입니다. `fan1_target`은 `pwm1_enable` mode 4에서 사용할 target fan speed입니다.

`pwm1`은 read/write PWM 값입니다. `pwm1_enable`은 regulator mode를 선택합니다. 1은 open loop, 2는 remote temperature 제어, 3은 on-chip temperature와 remote-sensor temperature의 결합 제어, 4는 `fan1_target`에 설정한 target RPM 제어입니다.

`pwm1_mode`는 fan duty control mode로 0은 DC, 1은 PWM입니다. `pwm1_auto_channels_temp`는 `pwm_enable==2`이면 1, `pwm_enable==3`이면 3을 read-only로 표시합니다. `pwm1_auto_point1_pwm`은 두 temperature channel이 공유하는 고정값 0, `pwm1_auto_point2_pwm`은 두 채널이 공유하는 read/write 값, `pwm1_auto_point3_pwm`은 공유하는 고정값 255입니다.

AMC6821 fan control attribute
Attribute권한의미
fan1_input/min/max/faultro/rw/rw/roTachometer와 limit/fault
fan1_pulsesrw회전당 2 또는 4 pulse
fan1_targetrwMode 4 target RPM
pwm1_enable = 1rwOpen loop
pwm1_enable = 2rwRemote temperature 제어
pwm1_enable = 3rwLocal + remote temperature 제어
pwm1_enable = 4rwTarget RPM 제어

권한과 mode 의미를 함께 정리합니다.

pwm1_enable mode 선택
pwm1_enable 값 읽기Mode 1이면 pwm1 직접 적용Mode 2이면 remote temperature 사용Mode 3이면 local과 remote temperature 결합Mode 4이면 fan1_target과 tachometer 사용

선택한 제어 모드에 맞는 입력을 fan regulator에 연결합니다.


======================= ==      ===============================================
temp1_input                ro        on-chip temperature
temp1_min                rw        "
temp1_max                rw        "
temp1_crit                rw        "
temp1_min_alarm                ro        "
temp1_max_alarm                ro        "
temp1_crit_alarm        ro        "

temp2_input                ro        remote temperature
temp2_min                rw        "
temp2_max                rw        "
temp2_crit                rw        "
temp2_min_alarm                ro        "
temp2_max_alarm                ro        "
temp2_crit_alarm        ro        "
temp2_fault                ro        "

fan1_input                ro        tachometer speed
fan1_min                rw        "
fan1_max                rw        "
fan1_fault                ro        "
fan1_pulses                rw        Pulses per revolution can be either 2 or 4.
fan1_target                rw        Target fan speed, to be used with pwm1_enable
                                mode 4.

pwm1                        rw        pwm1
pwm1_enable                rw        regulator mode, 1=open loop, 2=fan controlled
                                by remote temperature, 3=fan controlled by
                                combination of the on-chip temperature and
                                remote-sensor temperature,
                                4=fan controlled by target rpm set with
                                fan1_target attribute.
pwm1_mode                rw        Fan duty control mode (0=DC, 1=PWM)
pwm1_auto_channels_temp ro        1 if pwm_enable==2, 3 if pwm_enable==3
pwm1_auto_point1_pwm        ro        Hardwired to 0, shared for both
                                temperature channels.
pwm1_auto_point2_pwm        rw        This value is shared for both temperature
                                channels.
pwm1_auto_point3_pwm        rw        Hardwired to 255, shared for both
                                temperature channels.

두 온도 채널의 자동 제어점

69-100

`temp1_auto_point1_temp`는 read-only이며 read/write인 `temp2_auto_point1_temp`와 동일하게 고정됩니다. 이 온도 아래에서는 fan이 멈춥니다.

`temp1_auto_point2_temp`는 proportional range의 low-temperature limit입니다. 이 온도 아래에서는 `pwm1 = pwm1_auto_point2_pwm`입니다. 0 degree C부터 124 degree C까지 4 degree C 간격으로 설정할 수 있으므로, 기록한 뒤 실제 적용값을 다시 읽어야 합니다.

`temp1_auto_point3_temp`보다 높으면 fan이 maximum speed로 동작합니다. 이 값은 `temp1_auto_point2_temp`부터 시작할 수 있고, `temp1_auto_point2_temp`와 `pwm1_auto_point2_pwm`에 따라 정해지는 특정 discrete value만 허용합니다. 기록 후 실제 값을 다시 읽어야 합니다.

`temp2_auto_point1_temp`는 0 degree C와 63 degree C 사이여야 하며 passive cooling temperature를 정의합니다. Closed loop mode에서는 이 온도 아래에서 fan이 멈춥니다.

`temp2_auto_point2_temp`도 proportional range의 low-temperature limit입니다. 이 온도 아래에서는 `pwm1 = pwm1_auto_point2_pwm`이며 0 degree C부터 124 degree C까지 4 degree C 간격으로 설정합니다.

`temp2_auto_point3_temp`보다 높으면 fan이 maximum speed로 동작합니다. 허용값은 `temp2_auto_point2_temp`와 `pwm1_auto_point2_pwm`에 따라 정해지는 discrete value뿐이므로 기록한 뒤 actual value를 다시 읽어야 합니다.

AMC6821 자동 온도점
Attribute범위/권한동작
temp1_auto_point1_tempro, temp2 point1과 동일이하에서 fan 정지
temp1_auto_point2_temprw, 0~124C, 4C stepProportional range 시작
temp1_auto_point3_temprw, discrete이상에서 maximum speed
temp2_auto_point1_temprw, 0~63CPassive cooling 온도
temp2_auto_point2_temprw, 0~124C, 4C stepProportional range 시작
temp2_auto_point3_temprw, discrete이상에서 maximum speed

Local과 remote channel의 제약과 결과입니다.

자동 PWM 곡선
Point 1 아래이면 fan 정지Point 2 아래이면 pwm1_auto_point2_pwm 적용Point 2와 point 3 사이 비례 제어Point 3 위이면 PWM 255 적용기록 후 양자화된 실제 temperature 다시 읽기

Point 1의 정지 구간, point 2의 저속 구간, point 3의 최대 속도를 연결합니다.


temp1_auto_point1_temp        ro        Hardwired to temp2_auto_point1_temp
                                which is rw. Below this temperature fan stops.
temp1_auto_point2_temp        rw        The low-temperature limit of the proportional
                                range. Below this temperature
                                pwm1 = pwm1_auto_point2_pwm. It can go from
                                0 degree C to 124 degree C in steps of
                                4 degree C. Read it out after writing to get
                                the actual value.
temp1_auto_point3_temp        rw        Above this temperature fan runs at maximum
                                speed. It can go from temp1_auto_point2_temp.
                                It can only have certain discrete values
                                which depend on temp1_auto_point2_temp and
                                pwm1_auto_point2_pwm. Read it out after
                                writing to get the actual value.

temp2_auto_point1_temp        rw        Must be between 0 degree C and 63 degree C and
                                it defines the passive cooling temperature.
                                Below this temperature the fan stops in
                                the closed loop mode.
temp2_auto_point2_temp        rw        The low-temperature limit of the proportional
                                range. Below this temperature
                                pwm1 = pwm1_auto_point2_pwm. It can go from
                                0 degree C to 124 degree C in steps
                                of 4 degree C.

temp2_auto_point3_temp        rw        Above this temperature fan runs at maximum
                                speed. It can only have certain discrete
                                values which depend on temp2_auto_point2_temp
                                and pwm1_auto_point2_pwm. Read it out after
                                writing to get actual value.
======================= ==      ===============================================

AMC6821 module parameter

101-113

Board BIOS가 AMC6821을 올바르게 초기화한다면 module을 `init=0`으로 load해야 합니다.

Board BIOS가 칩을 초기화하지 않거나 다른 설정을 원한다면 `init=1`을 사용할 수 있습니다. `pwminv`는 PWM output polarity를 선택하며 0은 default PWM output, 1은 PWM output inversion입니다.

AMC6821 module parameter
Parameter의미
init0BIOS가 초기화한 설정 유지
init1Driver가 칩 초기화
pwminv0Default PWM output
pwminv1PWM output 반전

BIOS 초기화 여부와 PWM polarity에 맞춰 선택합니다.

Module load 설정
BIOS의 AMC6821 초기화 여부 확인올바르게 초기화했으면 init=0초기화가 없거나 설정을 바꾸면 init=1Hardware polarity에 맞춰 pwminv 선택Module load 후 fan 동작 검증

Board firmware 상태를 먼저 확인해 불필요한 재초기화를 피합니다.



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

If your board has a BIOS that initializes the amc6821 correctly, you should
load the module with: init=0.

If your board BIOS doesn't initialize the chip, or you want
different settings, you can set the following parameters:

- init=1,
- pwminv: 0 default pwm output, 1 inverts pwm output.