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

Linux 6.18.37 · Hardware Monitoring

Kernel driver smsc47m192

SMSC LPC47M192 호환 칩의 8개 전압, 3개 온도, CPU VID와 공유 핀 제약을 설명합니다.

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

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

1. 요약·해설

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

요약·해설

smsc47m192.rst:1-116

8비트 ADC 센서의 mV·밀리섭씨 배율, +12V·VID4 공유 핀, 외부 다이오드 결함과 오프셋 공유 규칙을 제공합니다.

문서 개요
항목
SourceDocumentation/hwmon/smsc47m192.rst
분량116 source lines
센서전압 8·온도 3
갱신1.5초

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

운영 흐름
I2C 탐지공유 핀 구성 확인전압 판독온도·오프셋 처리CPU VID 해석

장치 식별부터 측정·검증까지의 핵심 순서입니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver smsc47m192
2 ========================
3
4 Supported chips:
5
6 * SMSC LPC47M192, LPC47M15x, LPC47M292 and LPC47M997
7
8 Prefix: 'smsc47m192'
9
10 Addresses scanned: I2C 0x2c - 0x2d
11
12 Datasheet: The datasheet for LPC47M192 is publicly available from
13
14 http://www.smsc.com/
15
16 The LPC47M15x, LPC47M292 and LPC47M997 are compatible for
17
18 hardware monitoring.
19
20
21
22 Author:
23 - Hartmut Rick <[email protected]>
24
25 - Special thanks to Jean Delvare for careful checking
26 of the code and many helpful comments and suggestions.
27
28
29 Description
30 -----------
31
32 This driver implements support for the hardware sensor capabilities
33 of the SMSC LPC47M192 and compatible Super-I/O chips.
34
35 These chips support 3 temperature channels and 8 voltage inputs
36 as well as CPU voltage VID input.
37
38 They do also have fan monitoring and control capabilities, but the
39 these features are accessed via ISA bus and are not supported by this
40 driver. Use the 'smsc47m1' driver for fan monitoring and control.
41
42 Voltages and temperatures are measured by an 8-bit ADC, the resolution
43 of the temperatures is 1 bit per degree C.
44 Voltages are scaled such that the nominal voltage corresponds to
45 192 counts, i.e. 3/4 of the full range. Thus the available range for
46 each voltage channel is 0V ... 255/192*(nominal voltage), the resolution
47 is 1 bit per (nominal voltage)/192.
48 Both voltage and temperature values are scaled by 1000, the sys files
49 show voltages in mV and temperatures in units of 0.001 degC.
50
51 The +12V analog voltage input channel (in4_input) is multiplexed with
52 bit 4 of the encoded CPU voltage. This means that you either get
53 a +12V voltage measurement or a 5 bit CPU VID, but not both.
54 The default setting is to use the pin as 12V input, and use only 4 bit VID.
55 This driver assumes that the information in the configuration register
56 is correct, i.e. that the BIOS has updated the configuration if
57 the motherboard has this input wired to VID4.
58
59 The temperature and voltage readings are updated once every 1.5 seconds.
60 Reading them more often repeats the same values.
61
62
63 sysfs interface
64 ---------------
65
66 ===================== ==========================================================
67 in0_input +2.5V voltage input
68 in1_input CPU voltage input (nominal 2.25V)
69 in2_input +3.3V voltage input
70 in3_input +5V voltage input
71 in4_input +12V voltage input (may be missing if used as VID4)
72 in5_input Vcc voltage input (nominal 3.3V)
73 This is the supply voltage of the sensor chip itself.
74 in6_input +1.5V voltage input
75 in7_input +1.8V voltage input
76
77 in[0-7]_min,
78 in[0-7]_max lower and upper alarm thresholds for in[0-7]_input reading
79
80 All voltages are read and written in mV.
81
82 in[0-7]_alarm alarm flags for voltage inputs
83 These files read '1' in case of alarm, '0' otherwise.
84
85 temp1_input chip temperature measured by on-chip diode
86 temp[2-3]_input temperature measured by external diodes (one of these
87 would typically be wired to the diode inside the CPU)
88
89 temp[1-3]_min,
90 temp[1-3]_max lower and upper alarm thresholds for temperatures
91
92 temp[1-3]_offset temperature offset registers
93 The chip adds the offsets stored in these registers to
94 the corresponding temperature readings.
95 Note that temp1 and temp2 offsets share the same register,
96 they cannot both be different from zero at the same time.
97 Writing a non-zero number to one of them will reset the other
98 offset to zero.
99
100 All temperatures and offsets are read and written in
101 units of 0.001 degC.
102
103 temp[1-3]_alarm alarm flags for temperature inputs, '1' in case of alarm,
104 '0' otherwise.
105 temp[2-3]_input_fault diode fault flags for temperature inputs 2 and 3.
106 A fault is detected if the two pins for the corresponding
107 sensor are open or shorted, or any of the two is shorted
108 to ground or Vcc. '1' indicates a diode fault.
109
110 cpu0_vid CPU voltage as received from the CPU
111
112 vrm CPU VID standard used for decoding CPU voltage
113 ===================== ==========================================================
114
115 The `*_min`, `*_max`, `*_offset` and `vrm` files can be read and written,
116 all others are read-only.
117

3. 한국어 전문 번역

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

LPC47M192 호환 Super I/O 칩

1-28

`smsc47m192` 드라이버는 SMSC LPC47M192, LPC47M15x, LPC47M292, LPC47M997을 지원합니다. 접두사는 `smsc47m192`이며 I2C 주소 `0x2c`부터 `0x2d`를 검색합니다.

LPC47M192 데이터시트는 공개되어 있고 나머지 세 제품도 하드웨어 모니터링 기능이 호환됩니다. 문서 작성자는 Hartmut Rick이며 Jean Delvare가 코드 검토와 제안을 제공했습니다.

smsc47m192 지원 칩
접두사검색 주소자료
LPC47M192smsc47m1920x2c~0x2d공개 데이터시트
LPC47M15xsmsc47m1920x2c~0x2dHWM 호환
LPC47M292smsc47m1920x2c~0x2dHWM 호환
LPC47M997smsc47m1920x2c~0x2dHWM 호환

동일 하드웨어 모니터링 인터페이스를 공유하는 제품군입니다.

SMSC HWM 탐지
I2C 0x2c~0x2d 검색지원 장치 ID 확인8비트 ADC 채널 초기화전압·온도·VID 기능 탐지hwmon 속성 생성

두 I2C 주소에서 호환 칩을 찾고 센서 기능을 등록합니다.

Kernel driver smsc47m192
========================

Supported chips:

  * SMSC LPC47M192, LPC47M15x, LPC47M292 and LPC47M997

    Prefix: 'smsc47m192'

    Addresses scanned: I2C 0x2c - 0x2d

    Datasheet: The datasheet for LPC47M192 is publicly available from

               http://www.smsc.com/

               The LPC47M15x, LPC47M292 and LPC47M997 are compatible for

               hardware monitoring.



Author:
      - Hartmut Rick <[email protected]>

      - Special thanks to Jean Delvare for careful checking
        of the code and many helpful comments and suggestions.

8비트 ADC와 +12V·VID4 공유 핀

29-62

이 드라이버는 LPC47M192 및 호환 Super I/O의 하드웨어 센서 기능을 지원합니다. 칩은 온도 채널 3개, 전압 입력 8개, CPU 전압 VID 입력을 제공합니다.

팬 감시와 제어 기능도 있지만 ISA 버스로 접근하므로 이 드라이버에서는 지원하지 않습니다. 팬 기능에는 `smsc47m1` 드라이버를 사용합니다.

전압과 온도는 8비트 ADC로 측정하고 온도 해상도는 1비트당 1°C입니다. 전압은 공칭값이 192카운트, 즉 전체 범위의 3/4에 대응하도록 스케일됩니다. 각 채널 범위는 `0 V ... 255/192 × 공칭 전압`, 해상도는 `공칭 전압/192`입니다.

전압과 온도 값은 모두 1000배 스케일되어 sysfs에서 전압은 mV, 온도는 0.001°C 단위로 표시됩니다.

+12 V 입력 `in4_input`은 인코딩된 CPU 전압의 비트 4와 핀을 공유합니다. 따라서 +12 V 측정과 5비트 CPU VID를 동시에 사용할 수 없습니다. 기본값은 +12 V 입력과 4비트 VID입니다. 드라이버는 메인보드가 VID4로 배선된 경우 BIOS가 구성 레지스터를 올바르게 갱신했다고 가정합니다.

온도와 전압 값은 1.5초마다 갱신됩니다. 더 자주 읽으면 같은 값이 반복됩니다.

LPC47M192 측정 구조
항목값·동작
온도 채널3개, 1°C/bit
전압 채널8개, 8비트 ADC
공칭 전압192 counts = 전체 범위 3/4
전압 범위0~255/192×공칭 전압
sysfs 배율전압 mV, 온도 0.001°C
공유 핀in4_input(+12 V) 또는 VID4
기본 구성+12 V 입력 + 4비트 VID
갱신 주기1.5초

ADC 배율과 공유 핀의 선택 관계입니다.

+12V·VID4 구성
구성 레지스터 판독공유 핀이 +12 V인지 VID4인지 확인+12 V이면 in4_input·4비트 VID 제공VID4이면 5비트 VID·in4_input 생략1.5초 주기로 측정값 갱신

BIOS가 설정한 공유 핀 모드에 따라 전압 채널과 VID 폭을 결정합니다.

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

This driver implements support for the hardware sensor capabilities
of the SMSC LPC47M192 and compatible Super-I/O chips.

These chips support 3 temperature channels and 8 voltage inputs
as well as CPU voltage VID input.

They do also have fan monitoring and control capabilities, but the
these features are accessed via ISA bus and are not supported by this
driver. Use the 'smsc47m1' driver for fan monitoring and control.

Voltages and temperatures are measured by an 8-bit ADC, the resolution
of the temperatures is 1 bit per degree C.
Voltages are scaled such that the nominal voltage corresponds to
192 counts, i.e. 3/4 of the full range. Thus the available range for
each voltage channel is 0V ... 255/192*(nominal voltage), the resolution
is 1 bit per (nominal voltage)/192.
Both voltage and temperature values are scaled by 1000, the sys files
show voltages in mV and temperatures in units of 0.001 degC.

The +12V analog voltage input channel (in4_input) is multiplexed with
bit 4 of the encoded CPU voltage. This means that you either get
a +12V voltage measurement or a 5 bit CPU VID, but not both.
The default setting is to use the pin as 12V input, and use only 4 bit VID.
This driver assumes that the information in the configuration register
is correct, i.e. that the BIOS has updated the configuration if
the motherboard has this input wired to VID4.

The temperature and voltage readings are updated once every 1.5 seconds.
Reading them more often repeats the same values.

8개 전압 입력과 한계·경보

63-84

전압 채널은 `in0_input` +2.5 V, `in1_input` 공칭 2.25 V CPU 전압, `in2_input` +3.3 V, `in3_input` +5 V, `in4_input` +12 V, `in5_input` 센서 자체 공급 Vcc 공칭 3.3 V, `in6_input` +1.5 V, `in7_input` +1.8 V입니다. VID4로 쓰면 `in4_input`이 없을 수 있습니다.

`in[0-7]_min`과 `in[0-7]_max`는 각 전압 입력의 하한·상한 경보 임계값이며 읽기·쓰기가 가능합니다. 모든 전압은 mV 단위로 읽고 씁니다.

`in[0-7]_alarm`은 전압 경보 플래그이며 경보 시 1, 아니면 0을 읽습니다.

LPC47M192 전압 채널
속성입력비고
in0_input+2.5 V전압 입력
in1_inputCPU 전압, 공칭 2.25 V전압 입력
in2_input+3.3 V전압 입력
in3_input+5 V전압 입력
in4_input+12 VVID4 사용 시 없을 수 있음
in5_inputVcc, 공칭 3.3 V센서 칩 자체 공급
in6_input+1.5 V전압 입력
in7_input+1.8 V전압 입력
in[0-7]_min/max하한·상한RW, mV
in[0-7]_alarm경보 플래그1=경보, 0=정상

각 입력의 공칭 전압과 공유 핀 예외입니다.

전압 채널 감시
in0~in7 구현 여부 확인mV 단위 input 판독min·max 임계값 확인alarm 플래그 확인VID4 모드에서는 in4 누락 처리

공유 핀 구성을 반영해 측정값과 임계값·경보를 읽습니다.

sysfs interface
---------------

===================== ==========================================================
in0_input              +2.5V voltage input
in1_input              CPU voltage input (nominal 2.25V)
in2_input              +3.3V voltage input
in3_input              +5V voltage input
in4_input              +12V voltage input (may be missing if used as VID4)
in5_input              Vcc voltage input (nominal 3.3V)
                      This is the supply voltage of the sensor chip itself.
in6_input              +1.5V voltage input
in7_input              +1.8V voltage input

in[0-7]_min,
in[0-7]_max              lower and upper alarm thresholds for in[0-7]_input reading

                      All voltages are read and written in mV.

in[0-7]_alarm              alarm flags for voltage inputs
                      These files read '1' in case of alarm, '0' otherwise.

온도 다이오드·오프셋·CPU VID

85-116

`temp1_input`은 칩 내장 다이오드 온도이고 `temp2_input`, `temp3_input`은 외부 다이오드 온도입니다. 외부 채널 중 하나는 보통 CPU 내부 다이오드에 연결됩니다.

`temp[1-3]_min`과 `temp[1-3]_max`는 온도 하한·상한 경보 임계값입니다. `temp[1-3]_offset`은 측정값에 더하는 온도 오프셋 레지스터입니다.

temp1과 temp2 오프셋은 같은 레지스터를 공유하므로 둘을 동시에 0이 아닌 값으로 둘 수 없습니다. 한쪽에 0이 아닌 값을 쓰면 다른 오프셋은 0으로 초기화됩니다. 온도와 오프셋은 모두 0.001°C 단위로 읽고 씁니다.

`temp[1-3]_alarm`은 경보 시 1, 정상 시 0입니다. `temp[2-3]_input_fault`는 외부 다이오드의 두 핀이 개방·단락되거나 둘 중 하나가 접지 또는 Vcc에 단락될 때 1이 됩니다.

`cpu0_vid`는 CPU에서 받은 CPU 전압이고 `vrm`은 CPU 전압 해석에 사용하는 VID 표준입니다. `*_min`, `*_max`, `*_offset`, `vrm`만 읽기·쓰기가 가능하고 나머지는 읽기 전용입니다.

LPC47M192 온도·VID 속성
속성접근의미
temp1_inputRO온칩 다이오드 온도
temp2_input·temp3_inputRO외부 다이오드 온도
temp[1-3]_min/maxRW온도 하한·상한
temp[1-3]_offsetRW0.001°C 단위 보정값
temp1_offset·temp2_offsetRW레지스터 공유, 동시에 비영(非零) 불가
temp[1-3]_alarmRO1=경보
temp[2-3]_input_faultRO개방·단락·GND/Vcc 단락 시 1
cpu0_vidROCPU 수신 전압
vrmRWCPU VID 해석 표준

센서 유형, 쓰기 가능 속성, 공유 오프셋 제약을 정리합니다.

온도 오프셋 적용
내부·외부 다이오드 값 판독입력 결함 플래그 확인temp1·temp2 오프셋 중 한쪽 선택비영 값을 쓰면 반대쪽 오프셋 0 확인보정 온도와 경보·VID 보고

공유 레지스터 제약을 지키며 다이오드 측정값을 보정합니다.

temp1_input              chip temperature measured by on-chip diode
temp[2-3]_input              temperature measured by external diodes (one of these
                      would typically be wired to the diode inside the CPU)

temp[1-3]_min,
temp[1-3]_max              lower and upper alarm thresholds for temperatures

temp[1-3]_offset      temperature offset registers
                      The chip adds the offsets stored in these registers to
                      the corresponding temperature readings.
                      Note that temp1 and temp2 offsets share the same register,
                      they cannot both be different from zero at the same time.
                      Writing a non-zero number to one of them will reset the other
                      offset to zero.

                      All temperatures and offsets are read and written in
                      units of 0.001 degC.

temp[1-3]_alarm       alarm flags for temperature inputs, '1' in case of alarm,
                      '0' otherwise.
temp[2-3]_input_fault diode fault flags for temperature inputs 2 and 3.
                      A fault is detected if the two pins for the corresponding
                      sensor are open or shorted, or any of the two is shorted
                      to ground or Vcc. '1' indicates a diode fault.

cpu0_vid              CPU voltage as received from the CPU

vrm                      CPU VID standard used for decoding CPU voltage
===================== ==========================================================

The `*_min`, `*_max`, `*_offset` and `vrm` files can be read and written,
all others are read-only.