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

Linux 6.18.37 · Hardware Monitoring

Kernel driver pc87360

PC87360~PC87366의 팬·PWM·온도·전압과 동적 팬 분주기, 핀 공유 제약을 설명합니다.

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

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

1. 요약·해설

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

요약·해설

pc87360.rst:1-198

모델별 최대 11개 전압·3개 팬·4개 온도를 제공하고 480 kHz 팬 분주기를 자동 선택하며 Vbat 샘플링과 PWM 과열 위험을 다룹니다.

문서 개요
항목
SourceDocumentation/hwmon/pc87360.rst
분량198 source lines
지원 칩PC87360~PC87366
최대 3

원문 분량과 핵심 장치 구성을 정리합니다.

운영 흐름
Super I/O 식별init 적용분주기 자동 선택온도·전압 보정경보·Vbat 관리

장치 인식부터 측정·제어까지의 핵심 순서입니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver pc87360
2 =====================
3
4 Supported chips:
5
6 * National Semiconductor PC87360, PC87363, PC87364, PC87365 and PC87366
7
8 Prefixes: 'pc87360', 'pc87363', 'pc87364', 'pc87365', 'pc87366'
9
10 Addresses scanned: none, address read from Super I/O config space
11
12 Datasheets: No longer available
13
14 Authors: Jean Delvare <[email protected]>
15
16 Thanks to Sandeep Mehta, Tonko de Rooy and Daniel Ceregatti for testing.
17
18 Thanks to Rudolf Marek for helping me investigate conversion issues.
19
20
21 Module Parameters
22 -----------------
23
24 * init int
25 Chip initialization level:
26
27 - 0: None
28 - **1**: Forcibly enable internal voltage and temperature channels,
29 except in9
30 - 2: Forcibly enable all voltage and temperature channels, except in9
31 - 3: Forcibly enable all voltage and temperature channels, including in9
32
33 Note that this parameter has no effect for the PC87360, PC87363 and PC87364
34 chips.
35
36 Also note that for the PC87366, initialization levels 2 and 3 don't enable
37 all temperature channels, because some of them share pins with each other,
38 so they can't be used at the same time.
39
40
41 Description
42 -----------
43
44 The National Semiconductor PC87360 Super I/O chip contains monitoring and
45 PWM control circuitry for two fans. The PC87363 chip is similar, and the
46 PC87364 chip has monitoring and PWM control for a third fan.
47
48 The National Semiconductor PC87365 and PC87366 Super I/O chips are complete
49 hardware monitoring chipsets, not only controlling and monitoring three fans,
50 but also monitoring eleven voltage inputs and two (PC87365) or up to four
51 (PC87366) temperatures.
52
53 =========== ======= ======= ======= ======= =====
54 Chip #vin #fan #pwm #temp devid
55 =========== ======= ======= ======= ======= =====
56 PC87360 - 2 2 - 0xE1
57 PC87363 - 2 2 - 0xE8
58 PC87364 - 3 3 - 0xE4
59 PC87365 11 3 3 2 0xE5
60 PC87366 11 3 3 3-4 0xE9
61 =========== ======= ======= ======= ======= =====
62
63 The driver assumes that no more than one chip is present, and one of the
64 standard Super I/O addresses is used (0x2E/0x2F or 0x4E/0x4F)
65
66 Fan Monitoring
67 --------------
68
69 Fan rotation speeds are reported in RPM (revolutions per minute). An alarm
70 is triggered if the rotation speed has dropped below a programmable limit.
71 A different alarm is triggered if the fan speed is too low to be measured.
72
73 Fan readings are affected by a programmable clock divider, giving the
74 readings more range or accuracy. Usually, users have to learn how it works,
75 but this driver implements dynamic clock divider selection, so you don't
76 have to care no more.
77
78 For reference, here are a few values about clock dividers:
79
80 =========== =============== =============== ===========
81 slowest accuracy highest
82 measurable around 3000 accurate
83 divider speed (RPM) RPM (RPM) speed (RPM)
84 =========== =============== =============== ===========
85 1 1882 18 6928
86 2 941 37 4898
87 4 470 74 3464
88 8 235 150 2449
89 =========== =============== =============== ===========
90
91 For the curious, here is how the values above were computed:
92
93 * slowest measurable speed: clock/(255*divider)
94 * accuracy around 3000 RPM: 3000^2/clock
95 * highest accurate speed: sqrt(clock*100)
96
97 The clock speed for the PC87360 family is 480 kHz. I arbitrarily chose 100
98 RPM as the lowest acceptable accuracy.
99
100 As mentioned above, you don't have to care about this no more.
101
102 Note that not all RPM values can be represented, even when the best clock
103 divider is selected. This is not only true for the measured speeds, but
104 also for the programmable low limits, so don't be surprised if you try to
105 set, say, fan1_min to 2900 and it finally reads 2909.
106
107
108 Fan Control
109 -----------
110
111 PWM (pulse width modulation) values range from 0 to 255, with 0 meaning
112 that the fan is stopped, and 255 meaning that the fan goes at full speed.
113
114 Be extremely careful when changing PWM values. Low PWM values, even
115 non-zero, can stop the fan, which may cause irreversible damage to your
116 hardware if temperature increases too much. When changing PWM values, go
117 step by step and keep an eye on temperatures.
118
119 One user reported problems with PWM. Changing PWM values would break fan
120 speed readings. No explanation nor fix could be found.
121
122
123 Temperature Monitoring
124 ----------------------
125
126 Temperatures are reported in degrees Celsius. Each temperature measured has
127 associated low, high and overtemperature limits, each of which triggers an
128 alarm when crossed.
129
130 The first two temperature channels are external. The third one (PC87366
131 only) is internal.
132
133 The PC87366 has three additional temperature channels, based on
134 thermistors (as opposed to thermal diodes for the first three temperature
135 channels). For technical reasons, these channels are held by the VLM
136 (voltage level monitor) logical device, not the TMS (temperature
137 measurement) one. As a consequence, these temperatures are exported as
138 voltages, and converted into temperatures in user-space.
139
140 Note that these three additional channels share their pins with the
141 external thermal diode channels, so you (physically) can't use them all at
142 the same time. Although it should be possible to mix the two sensor types,
143 the documents from National Semiconductor suggest that motherboard
144 manufacturers should choose one type and stick to it. So you will more
145 likely have either channels 1 to 3 (thermal diodes) or 3 to 6 (internal
146 thermal diode, and thermistors).
147
148
149 Voltage Monitoring
150 ------------------
151
152 Voltages are reported relatively to a reference voltage, either internal or
153 external. Some of them (in7:Vsb, in8:Vdd and in10:AVdd) are divided by two
154 internally, you will have to compensate in sensors.conf. Others (in0 to in6)
155 are likely to be divided externally. The meaning of each of these inputs as
156 well as the values of the resistors used for division is left to the
157 motherboard manufacturers, so you will have to document yourself and edit
158 sensors.conf accordingly. National Semiconductor has a document with
159 recommended resistor values for some voltages, but this still leaves much
160 room for per motherboard specificities, unfortunately. Even worse,
161 motherboard manufacturers don't seem to care about National Semiconductor's
162 recommendations.
163
164 Each voltage measured has associated low and high limits, each of which
165 triggers an alarm when crossed.
166
167 When available, VID inputs are used to provide the nominal CPU Core voltage.
168 The driver will default to VRM 9.0, but this can be changed from user-space.
169 The chipsets can handle two sets of VID inputs (on dual-CPU systems), but
170 the driver will only export one for now. This may change later if there is
171 a need.
172
173
174 General Remarks
175 ---------------
176
177 If an alarm triggers, it will remain triggered until the hardware register
178 is read at least once. This means that the cause for the alarm may already
179 have disappeared! Note that all hardware registers are read whenever any
180 data is read (unless it is less than 2 seconds since the last update, in
181 which case cached values are returned instead). As a consequence, when
182 a once-only alarm triggers, it may take 2 seconds for it to show, and 2
183 more seconds for it to disappear.
184
185 Monitoring of in9 isn't enabled at lower init levels (<3) because that
186 channel measures the battery voltage (Vbat). It is a known fact that
187 repeatedly sampling the battery voltage reduces its lifetime. National
188 Semiconductor smartly designed their chipset so that in9 is sampled only
189 once every 1024 sampling cycles (that is every 34 minutes at the default
190 sampling rate), so the effect is attenuated, but still present.
191
192
193 Limitations
194 -----------
195
196 The datasheets suggests that some values (fan mins, fan dividers)
197 shouldn't be changed once the monitoring has started, but we ignore that
198 recommendation. We'll reconsider if it actually causes trouble.
199

3. 한국어 전문 번역

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

지원 칩과 init 초기화 수준

1-40

Jean Delvare가 작성한 `pc87360` 드라이버는 National Semiconductor PC87360, PC87363, PC87364, PC87365, PC87366을 지원합니다. 각각 같은 이름의 접두사를 사용합니다. 주소를 검색하지 않고 Super I/O 구성 공간에서 읽으며, 데이터시트는 더 이상 제공되지 않습니다.

시험에 도움을 준 Sandeep Mehta, Tonko de Rooy, Daniel Ceregatti와 변환 문제 조사에 도움을 준 Rudolf Marek에게 감사를 표합니다.

정수형 모듈 매개변수 `init`은 칩 초기화 수준을 정합니다. 0은 초기화하지 않고, 기본값 1은 `in9`를 제외한 내부 전압 및 온도 채널을 강제로 활성화합니다. 2는 `in9`를 제외한 모든 전압·온도 채널, 3은 `in9`를 포함한 모든 채널을 강제로 활성화합니다.

이 매개변수는 PC87360, PC87363, PC87364에는 영향을 주지 않습니다. PC87366에서는 일부 온도 채널이 핀을 공유하므로 수준 2나 3도 모든 온도 채널을 동시에 활성화할 수 없습니다.

pc87360 init 수준
활성화 범위비고
0없음칩 설정 유지
1내부 전압·온도, in9 제외기본값
2모든 전압·온도, in9 제외PC87366 핀 공유 예외
3모든 전압·온도, in9 포함PC87366 핀 공유 예외
PC87360/63/64매개변수 영향 없음init 수준 미적용

강제 활성화 범위와 예외를 정리합니다.

칩 초기화 결정
Super I/O 구성 공간에서 모델 판독PC87360/63/64인지 확인init 0~3 선택in9 포함 여부 결정PC87366의 공유 핀 충돌 제외

모델과 init 값에 따라 강제 활성화 범위를 선택합니다.

Kernel driver pc87360
=====================

Supported chips:

  * National Semiconductor PC87360, PC87363, PC87364, PC87365 and PC87366

    Prefixes: 'pc87360', 'pc87363', 'pc87364', 'pc87365', 'pc87366'

    Addresses scanned: none, address read from Super I/O config space

    Datasheets: No longer available

Authors: Jean Delvare <[email protected]>

Thanks to Sandeep Mehta, Tonko de Rooy and Daniel Ceregatti for testing.

Thanks to Rudolf Marek for helping me investigate conversion issues.


Module Parameters
-----------------

* init int
    Chip initialization level:

    - 0: None
    - **1**: Forcibly enable internal voltage and temperature channels,
      except in9
    - 2: Forcibly enable all voltage and temperature channels, except in9
    - 3: Forcibly enable all voltage and temperature channels, including in9

Note that this parameter has no effect for the PC87360, PC87363 and PC87364
chips.

Also note that for the PC87366, initialization levels 2 and 3 don't enable
all temperature channels, because some of them share pins with each other,
so they can't be used at the same time.

모델별 센서·PWM 구성

41-65

PC87360은 두 팬의 모니터링과 PWM 제어 회로를 포함합니다. PC87363도 비슷하며 PC87364는 세 번째 팬의 모니터링과 PWM 제어를 추가합니다.

PC87365와 PC87366은 완전한 하드웨어 모니터링 칩셋입니다. 세 팬을 제어·감시할 뿐 아니라 전압 입력 11개와 PC87365는 온도 2개, PC87366은 온도 3~4개를 감시합니다.

드라이버는 칩이 하나만 존재하고 표준 Super I/O 주소 `0x2E/0x2F` 또는 `0x4E/0x4F` 중 하나를 사용한다고 가정합니다.

PC8736x 모델 비교
전압PWM온도devid
PC87360-22-0xE1
PC87363-22-0xE8
PC87364-33-0xE4
PC87365113320xE5
PC8736611333-40xE9

원문의 채널 수와 장치 ID를 그대로 옮겼습니다.

모델별 채널 등록
표준 Super I/O 주소 확인devid로 모델 판별팬·PWM 채널 수 선택PC87365/66이면 전압·온도 추가단일 칩 hwmon 장치 등록

장치 ID에 맞춰 존재하는 센서만 공개합니다.

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

The National Semiconductor PC87360 Super I/O chip contains monitoring and
PWM control circuitry for two fans. The PC87363 chip is similar, and the
PC87364 chip has monitoring and PWM control for a third fan.

The National Semiconductor PC87365 and PC87366 Super I/O chips are complete
hardware monitoring chipsets, not only controlling and monitoring three fans,
but also monitoring eleven voltage inputs and two (PC87365) or up to four
(PC87366) temperatures.

  =========== ======= ======= ======= ======= =====
  Chip        #vin    #fan    #pwm    #temp   devid
  =========== ======= ======= ======= ======= =====
  PC87360     -       2       2       -       0xE1
  PC87363     -       2       2       -       0xE8
  PC87364     -       3       3       -       0xE4
  PC87365     11      3       3       2       0xE5
  PC87366     11      3       3       3-4     0xE9
  =========== ======= ======= ======= ======= =====

The driver assumes that no more than one chip is present, and one of the
standard Super I/O addresses is used (0x2E/0x2F or 0x4E/0x4F)

팬 측정과 동적 클록 분주기

66-107

팬 회전 속도는 RPM으로 보고됩니다. 속도가 프로그래밍한 하한보다 낮아지면 경보가 발생하고, 너무 느려 측정할 수 없을 때는 별도의 경보가 발생합니다.

팬 판독 범위와 정밀도는 프로그래밍 가능한 클록 분주기의 영향을 받습니다. 드라이버가 동적으로 가장 적절한 분주기를 선택하므로 사용자가 직접 관리할 필요는 없습니다.

480 kHz 클록에서 분주기 1, 2, 4, 8은 각각 측정 가능한 최저 속도 1882, 941, 470, 235 RPM을 제공합니다. 약 3000 RPM 부근의 정밀도는 각각 18, 37, 74, 150 RPM이고, 정확하게 측정 가능한 최고 속도는 6928, 4898, 3464, 2449 RPM입니다.

최저 측정 속도는 `clock/(255*divider)`, 3000 RPM 부근 정밀도는 `3000^2/clock`, 정확한 최고 속도는 `sqrt(clock*100)`으로 계산했습니다. 여기서 100 RPM은 작성자가 정한 최저 허용 정밀도입니다.

최적 분주기를 사용해도 모든 RPM 정수를 표현할 수 있는 것은 아닙니다. 측정값뿐 아니라 프로그래밍하는 하한도 양자화되므로 `fan1_min`에 2900을 써도 다시 읽으면 2909가 될 수 있습니다.

480 kHz 팬 분주기
divider최저 RPM3000 RPM 부근 정밀도정확한 최고 RPM
1188218 RPM6928
294137 RPM4898
447074 RPM3464
8235150 RPM2449

원문에 제시된 측정 범위와 정밀도입니다.

동적 분주기 선택
현재 팬 카운터 읽기측정 범위를 벗어나는지 확인divider 1·2·4·8 중 선택카운터를 RPM으로 변환하한 및 측정 불가 경보 평가

측정 가능한 범위와 정밀도를 자동으로 맞춥니다.

Fan Monitoring
--------------

Fan rotation speeds are reported in RPM (revolutions per minute). An alarm
is triggered if the rotation speed has dropped below a programmable limit.
A different alarm is triggered if the fan speed is too low to be measured.

Fan readings are affected by a programmable clock divider, giving the
readings more range or accuracy. Usually, users have to learn how it works,
but this driver implements dynamic clock divider selection, so you don't
have to care no more.

For reference, here are a few values about clock dividers:

    =========== =============== =============== ===========
                slowest         accuracy        highest
                measurable      around 3000     accurate
    divider     speed (RPM)     RPM (RPM)       speed (RPM)
    =========== =============== =============== ===========
         1        1882              18           6928
         2         941              37           4898
         4         470              74           3464
         8         235             150           2449
    =========== =============== =============== ===========

For the curious, here is how the values above were computed:

 * slowest measurable speed: clock/(255*divider)
 * accuracy around 3000 RPM: 3000^2/clock
 * highest accurate speed: sqrt(clock*100)

The clock speed for the PC87360 family is 480 kHz. I arbitrarily chose 100
RPM as the lowest acceptable accuracy.

As mentioned above, you don't have to care about this no more.

Note that not all RPM values can be represented, even when the best clock
divider is selected. This is not only true for the measured speeds, but
also for the programmable low limits, so don't be surprised if you try to
set, say, fan1_min to 2900 and it finally reads 2909.

PWM 안전 수칙과 온도 채널

108-148

PWM 값은 0~255이며 0은 팬 정지, 255는 최고 속도를 뜻합니다. 0이 아닌 낮은 값에서도 팬이 멈출 수 있고 과열로 하드웨어가 영구 손상될 수 있으므로 값을 단계적으로 바꾸면서 온도를 지켜봐야 합니다.

한 사용자는 PWM 값을 바꾸면 팬 속도 판독이 깨지는 문제를 보고했지만 원인이나 해결책은 찾지 못했습니다.

온도는 섭씨로 보고되며 각 채널에는 하한, 상한, 과열 한계가 있고 각각을 넘으면 경보가 발생합니다. 처음 두 온도 채널은 외부 센서이고 PC87366에만 있는 세 번째 채널은 내부 센서입니다.

PC87366에는 열 다이오드 기반의 처음 세 채널 외에 서미스터 기반 온도 채널 세 개가 더 있습니다. 기술적 이유로 이 채널들은 TMS가 아니라 VLM 논리 장치에 속하므로 전압으로 공개되며 사용자 공간에서 온도로 변환해야 합니다.

세 서미스터 채널은 외부 열 다이오드 채널과 핀을 공유하므로 모두 동시에 사용할 수 없습니다. 두 센서 종류를 섞는 것이 기술적으로 가능해도 제조사 문서는 메인보드가 한 종류만 선택하도록 권고합니다. 일반적으로 열 다이오드 채널 1~3 또는 내부 다이오드와 서미스터인 채널 3~6 중 한 구성을 보게 됩니다.

PC87366 온도 구성
채널센서 종류위치·공개 형식제약
temp1-2외부 열 다이오드온도서미스터 핀과 공유
temp3내부 열 다이오드온도, PC87366 전용두 구성에 공통
추가 3채널서미스터VLM 전압으로 공개사용자 공간에서 온도 변환
권장 구성 A열 다이오드채널 1~3서미스터와 동시 사용 안 함
권장 구성 B내부 다이오드+서미스터채널 3~6외부 다이오드와 핀 공유

열 다이오드와 서미스터 채널의 배치와 제약입니다.

안전한 팬·온도 제어
현재 온도와 팬 RPM 확인PWM을 작은 단계로 변경팬 정지 여부 감시온도 한계와 경보 확인PC87366은 선택된 센서 핀 구성만 사용

PWM 변경과 온도 감시를 함께 수행합니다.

Fan Control
-----------

PWM (pulse width modulation) values range from 0 to 255, with 0 meaning
that the fan is stopped, and 255 meaning that the fan goes at full speed.

Be extremely careful when changing PWM values. Low PWM values, even
non-zero, can stop the fan, which may cause irreversible damage to your
hardware if temperature increases too much. When changing PWM values, go
step by step and keep an eye on temperatures.

One user reported problems with PWM. Changing PWM values would break fan
speed readings. No explanation nor fix could be found.


Temperature Monitoring
----------------------

Temperatures are reported in degrees Celsius. Each temperature measured has
associated low, high and overtemperature limits, each of which triggers an
alarm when crossed.

The first two temperature channels are external. The third one (PC87366
only) is internal.

The PC87366 has three additional temperature channels, based on
thermistors (as opposed to thermal diodes for the first three temperature
channels). For technical reasons, these channels are held by the VLM
(voltage level monitor) logical device, not the TMS (temperature
measurement) one. As a consequence, these temperatures are exported as
voltages, and converted into temperatures in user-space.

Note that these three additional channels share their pins with the
external thermal diode channels, so you (physically) can't use them all at
the same time. Although it should be possible to mix the two sensor types,
the documents from National Semiconductor suggest that motherboard
manufacturers should choose one type and stick to it. So you will more
likely have either channels 1 to 3 (thermal diodes) or 3 to 6 (internal
thermal diode, and thermistors).

전압 배율과 VID

149-173

전압은 내부 또는 외부 기준 전압에 대한 상대값으로 보고됩니다. `in7:Vsb`, `in8:Vdd`, `in10:AVdd`는 칩 내부에서 2로 나뉘므로 `sensors.conf`에서 보정해야 합니다.

`in0`부터 `in6`도 외부 저항 분배기를 사용할 가능성이 큽니다. 각 입력의 의미와 저항값은 메인보드 제조사가 정하므로 보드 자료를 확인해 `sensors.conf`를 맞춰야 합니다. National Semiconductor의 권장 저항값 문서가 있어도 보드별 차이가 크고 제조사가 권고를 따르지 않는 경우도 있습니다.

각 전압에는 하한과 상한이 있으며 이를 넘으면 경보가 발생합니다.

VID 입력이 있으면 명목 CPU 코어 전압을 제공합니다. 드라이버의 기본 VRM 규격은 9.0이지만 사용자 공간에서 바꿀 수 있습니다. 칩셋은 듀얼 CPU용 VID 입력 두 세트를 처리할 수 있지만 현재 드라이버는 한 세트만 공개합니다.

전압 입력 보정
입력분주 위치사용자 조치
in7:Vsb내부 1/2sensors.conf에서 2배 보정
in8:Vdd내부 1/2sensors.conf에서 2배 보정
in10:AVdd내부 1/2sensors.conf에서 2배 보정
in0~in6보드 외부 가능회로와 저항값 확인 후 보정
VIDCPU 명목 전압기본 VRM 9.0, 한 세트만 공개

칩 내부 분주와 보드 외부 분주를 구분합니다.

전압 값 교정
입력 채널 식별내부 1/2 분주 여부 확인보드 외부 저항 분배기 조사sensors.conf 배율 설정하한·상한 경보 검증

원시 상대 전압을 실제 레일 전압으로 환산합니다.

Voltage Monitoring
------------------

Voltages are reported relatively to a reference voltage, either internal or
external. Some of them (in7:Vsb, in8:Vdd and in10:AVdd) are divided by two
internally, you will have to compensate in sensors.conf. Others (in0 to in6)
are likely to be divided externally. The meaning of each of these inputs as
well as the values of the resistors used for division is left to the
motherboard manufacturers, so you will have to document yourself and edit
sensors.conf accordingly. National Semiconductor has a document with
recommended resistor values for some voltages, but this still leaves much
room for per motherboard specificities, unfortunately. Even worse,
motherboard manufacturers don't seem to care about National Semiconductor's
recommendations.

Each voltage measured has associated low and high limits, each of which
triggers an alarm when crossed.

When available, VID inputs are used to provide the nominal CPU Core voltage.
The driver will default to VRM 9.0, but this can be changed from user-space.
The chipsets can handle two sets of VID inputs (on dual-CPU systems), but
the driver will only export one for now. This may change later if there is
a need.

경보 지연·Vbat 수명·제한사항

174-198

경보는 하드웨어 레지스터를 최소 한 번 읽을 때까지 유지되므로 원인이 이미 사라진 뒤에도 표시될 수 있습니다. 어떤 데이터든 읽으면 모든 레지스터를 읽지만 마지막 갱신 후 2초가 지나지 않았다면 캐시를 반환합니다.

그 결과 한 번만 발생한 경보는 표시되기까지 최대 2초, 사라지기까지 다시 최대 2초가 걸릴 수 있습니다.

낮은 init 수준 0~2에서 `in9`를 활성화하지 않는 이유는 이 채널이 배터리 전압 Vbat를 측정하기 때문입니다. 배터리를 반복 샘플링하면 수명이 줄어듭니다.

칩은 영향을 줄이기 위해 `in9`를 1024번의 샘플링 주기마다 한 번만, 기본 속도에서는 약 34분마다 측정하지만 수명 영향이 완전히 없어지는 것은 아닙니다.

데이터시트는 모니터링 시작 뒤 팬 하한과 팬 분주기 같은 값을 바꾸지 말라고 권고하지만 드라이버는 현재 이 권고를 무시합니다. 실제 문제가 확인되면 재검토할 예정입니다.

PC87360 일반 주의사항
항목동작영향
레지스터 갱신최대 2초마다그 사이에는 캐시 반환
일회성 경보 표시최대 2초 지연원인이 사라진 뒤 보일 수 있음
일회성 경보 해제추가 최대 2초레지스터 읽기 필요
in9 Vbat1024주기마다 1회기본 약 34분마다
fan_min/div 변경드라이버는 허용데이터시트 권고와 다름

캐시·경보·배터리 샘플링의 시간 특성입니다.

경보 해석
경보 속성 읽기마지막 갱신 후 2초 경과 여부 확인필요하면 새 레지스터 판독 대기현재 센서 값과 경보 원인 비교일회성 경보 해제 여부 재확인

캐시 주기를 고려해 실제 상태와 래치된 경보를 구분합니다.

General Remarks
---------------

If an alarm triggers, it will remain triggered until the hardware register
is read at least once. This means that the cause for the alarm may already
have disappeared! Note that all hardware registers are read whenever any
data is read (unless it is less than 2 seconds since the last update, in
which case cached values are returned instead). As a consequence, when
a once-only alarm triggers, it may take 2 seconds for it to show, and 2
more seconds for it to disappear.

Monitoring of in9 isn't enabled at lower init levels (<3) because that
channel measures the battery voltage (Vbat). It is a known fact that
repeatedly sampling the battery voltage reduces its lifetime. National
Semiconductor smartly designed their chipset so that in9 is sampled only
once every 1024 sampling cycles (that is every 34 minutes at the default
sampling rate), so the effect is attenuated, but still present.


Limitations
-----------

The datasheets suggests that some values (fan mins, fan dividers)
shouldn't be changed once the monitoring has started, but we ignore that
recommendation. We'll reconsider if it actually causes trouble.