요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Kernel driver emc1403
=====================
Supported chips:
* SMSC / Microchip EMC1402, EMC1412
Addresses scanned: I2C 0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c
Prefix: 'emc1402'
Datasheets:
- http://ww1.microchip.com/downloads/en/DeviceDoc/1412.pdf
- https://ww1.microchip.com/downloads/en/DeviceDoc/1402.pdf
* SMSC / Microchip EMC1403, EMC1404, EMC1413, EMC1414
Addresses scanned: I2C 0x18, 0x29, 0x4c, 0x4d
Prefix: 'emc1403', 'emc1404'
Datasheets:
- http://ww1.microchip.com/downloads/en/DeviceDoc/1403_1404.pdf
- http://ww1.microchip.com/downloads/en/DeviceDoc/1413_1414.pdf
* SMSC / Microchip EMC1422
Addresses scanned: I2C 0x4c
Prefix: 'emc1422'
Datasheet:
- https://ww1.microchip.com/downloads/en/DeviceDoc/1422.pdf
* SMSC / Microchip EMC1423, EMC1424
Addresses scanned: I2C 0x4c
Prefix: 'emc1423', 'emc1424'
Datasheet:
- https://ww1.microchip.com/downloads/en/DeviceDoc/1423_1424.pdf
* SMSC / Microchip EMC1428, EMC1438
Addresses scanned: I2C 0x18, 0x4c, 0x4d
Prefix: 'emc1428', 'emc1438'
Datasheets:
- https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005275A.pdf
- https://ww1.microchip.com/downloads/en/DeviceDoc/EMC1438%20DS%20Rev.%201.0%20(04-29-10).pdf
Author:
Kalhan Trisal <kalhan.trisal@intel.com
Description
-----------
The Standard Microsystems Corporation (SMSC) / Microchip EMC14xx chips
contain up to eight temperature sensors. EMC14x2 support two sensors
(one internal, one external). EMC14x3 support three sensors (one internal,
two external), EMC14x4 support four sensors (one internal, three external),
and EMC14x8 support eight sensors (one internal, seven external).
The chips implement three limits for each sensor: low (tempX_min), high
(tempX_max) and critical (tempX_crit.) The chips also implement an
hysteresis mechanism which applies to all limits. The relative difference
is stored in a single register on the chip, which means that the relative
difference between the limit and its hysteresis is always the same for
all three limits.
This implementation detail implies the following:
* When setting a limit, its hysteresis will automatically follow, the
difference staying unchanged. For example, if the old critical limit
was 80 degrees C, and the hysteresis was 75 degrees C, and you change
the critical limit to 90 degrees C, then the hysteresis will
automatically change to 85 degrees C.
* The hysteresis values can't be set independently. We decided to make
only temp1_crit_hyst writable, while all other hysteresis attributes
are read-only. Setting temp1_crit_hyst writes the difference between
temp1_crit_hyst and temp1_crit into the chip, and the same relative
hysteresis applies automatically to all other limits.
* The limits should be set before the hysteresis.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
EMC14xx 지원 장치
1-62이 드라이버는 SMSC/Microchip EMC14xx 온도 센서 계열을 지원합니다. EMC1402·EMC1412는 `emc1402`, EMC1403·EMC1413은 `emc1403`, EMC1404·EMC1414는 `emc1404`, EMC1422는 `emc1422`, EMC1423·EMC1424는 각각 `emc1423`·`emc1424`, EMC1428·EMC1438은 각각 `emc1428`·`emc1438` prefix를 사용합니다.
EMC1402·EMC1412는 I2C 주소 `0x18`, `0x1c`, `0x29`, `0x4c`, `0x4d`, `0x5c`를 검색합니다. EMC1403·EMC1404·EMC1413·EMC1414는 `0x18`, `0x29`, `0x4c`, `0x4d`, EMC1422·EMC1423·EMC1424는 `0x4c`, EMC1428·EMC1438은 `0x18`, `0x4c`, `0x4d`를 검색합니다.
각 계열의 공개 datasheet URL은 원문 목록에 그대로 보존했습니다. 저자는 Kalhan Trisal입니다.
Chip별 prefix와 검색 주소입니다.
주소 검색과 chip 식별 후 해당 채널을 등록합니다.
Kernel driver emc1403
=====================
Supported chips:
* SMSC / Microchip EMC1402, EMC1412
Addresses scanned: I2C 0x18, 0x1c, 0x29, 0x4c, 0x4d, 0x5c
Prefix: 'emc1402'
Datasheets:
- http://ww1.microchip.com/downloads/en/DeviceDoc/1412.pdf
- https://ww1.microchip.com/downloads/en/DeviceDoc/1402.pdf
* SMSC / Microchip EMC1403, EMC1404, EMC1413, EMC1414
Addresses scanned: I2C 0x18, 0x29, 0x4c, 0x4d
Prefix: 'emc1403', 'emc1404'
Datasheets:
- http://ww1.microchip.com/downloads/en/DeviceDoc/1403_1404.pdf
- http://ww1.microchip.com/downloads/en/DeviceDoc/1413_1414.pdf
* SMSC / Microchip EMC1422
Addresses scanned: I2C 0x4c
Prefix: 'emc1422'
Datasheet:
- https://ww1.microchip.com/downloads/en/DeviceDoc/1422.pdf
* SMSC / Microchip EMC1423, EMC1424
Addresses scanned: I2C 0x4c
Prefix: 'emc1423', 'emc1424'
Datasheet:
- https://ww1.microchip.com/downloads/en/DeviceDoc/1423_1424.pdf
* SMSC / Microchip EMC1428, EMC1438
Addresses scanned: I2C 0x18, 0x4c, 0x4d
Prefix: 'emc1428', 'emc1438'
Datasheets:
- https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005275A.pdf
- https://ww1.microchip.com/downloads/en/DeviceDoc/EMC1438%20DS%20Rev.%201.0%20(04-29-10).pdf
Author:
Kalhan Trisal <kalhan.trisal@intel.com
센서 수와 세 온도 한계
63-78SMSC/Microchip EMC14xx chip에는 최대 8개의 온도 센서가 있습니다. EMC14x2는 내부 1개와 외부 1개로 2개, EMC14x3은 내부 1개와 외부 2개로 3개, EMC14x4는 내부 1개와 외부 3개로 4개, EMC14x8은 내부 1개와 외부 7개로 8개를 지원합니다.
각 센서에는 low `tempX_min`, high `tempX_max`, critical `tempX_crit`의 세 limit가 있습니다. 모든 limit에 hysteresis가 적용되지만 limit와 hysteresis 사이의 상대 차이는 chip의 단일 register에 저장됩니다. 따라서 세 limit 모두 같은 상대 hysteresis 차이를 공유합니다.
모델별 센서 구성과 공통 limit입니다.
한 register의 차이가 모든 온도 limit에 적용됩니다.
Description
-----------
The Standard Microsystems Corporation (SMSC) / Microchip EMC14xx chips
contain up to eight temperature sensors. EMC14x2 support two sensors
(one internal, one external). EMC14x3 support three sensors (one internal,
two external), EMC14x4 support four sensors (one internal, three external),
and EMC14x8 support eight sensors (one internal, seven external).
The chips implement three limits for each sensor: low (tempX_min), high
(tempX_max) and critical (tempX_crit.) The chips also implement an
hysteresis mechanism which applies to all limits. The relative difference
is stored in a single register on the chip, which means that the relative
difference between the limit and its hysteresis is always the same for
all three limits.
Hysteresis 설정 규칙
79-91Limit를 변경하면 차이를 유지한 채 해당 hysteresis도 자동으로 따라갑니다. 예를 들어 critical limit가 80도 C, hysteresis가 75도 C인 상태에서 critical limit를 90도 C로 바꾸면 hysteresis는 자동으로 85도 C가 됩니다.
Hysteresis 값은 각각 독립적으로 설정할 수 없습니다. 드라이버는 `temp1_crit_hyst`만 쓰기 가능하게 하고 다른 모든 hysteresis attribute는 읽기 전용으로 둡니다. `temp1_crit_hyst`를 쓰면 `temp1_crit_hyst`와 `temp1_crit`의 차이가 chip에 기록되고, 같은 상대 hysteresis가 다른 모든 limit에 자동 적용됩니다.
설정 순서는 중요합니다. 먼저 limit를 설정한 뒤 hysteresis를 설정해야 합니다.
Limit 변경과 writable attribute의 효과입니다.
Limit 변경에 의한 자동 추종 뒤 공통 차이를 확정합니다.
This implementation detail implies the following:
* When setting a limit, its hysteresis will automatically follow, the
difference staying unchanged. For example, if the old critical limit
was 80 degrees C, and the hysteresis was 75 degrees C, and you change
the critical limit to 90 degrees C, then the hysteresis will
automatically change to 85 degrees C.
* The hysteresis values can't be set independently. We decided to make
only temp1_crit_hyst writable, while all other hysteresis attributes
are read-only. Setting temp1_crit_hyst writes the difference between
temp1_crit_hyst and temp1_crit into the chip, and the same relative
hysteresis applies automatically to all other limits.
* The limits should be set before the hysteresis.
요약·해설
emc1403.rst:1-91EMC14xx의 내부·외부 온도 채널과 단일 register가 공유하는 hysteresis 차이를 설명합니다.
원문 분량과 핵심 범위입니다.
장치 동작의 기본 순서입니다.