요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Kernel driver lm90
==================
Supported chips:
* National Semiconductor LM84
Prefix: 'lm84'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the National Semiconductor website
* National Semiconductor LM90
Prefix: 'lm90'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/pf/LM/LM90.html
* National Semiconductor LM89
Prefix: 'lm89' (no auto-detection)
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/mpf/LM/LM89.html
* National Semiconductor LM99
Prefix: 'lm99'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/pf/LM/LM99.html
* National Semiconductor LM86
Prefix: 'lm86'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/mpf/LM/LM86.html
* Analog Devices ADM1020
Prefix: 'adm1020'
Addresses scanned: I2C 0x4c - 0x4e
Datasheet: Publicly available at the Analog Devices website
* Analog Devices ADM1021
Prefix: 'adm1021'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Analog Devices website
* Analog Devices ADM1021A/ADM1023
Prefix: 'adm1023'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Analog Devices website
* Analog Devices ADM1032
Prefix: 'adm1032'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADM1032
* Analog Devices ADT7461
Prefix: 'adt7461'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461
* Analog Devices ADT7461A
Prefix: 'adt7461a'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461A
* Analog Devices ADT7481
Prefix: 'adt7481'
Addresses scanned: I2C 0x4b and 0x4c
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7481
* Analog Devices ADT7482
Prefix: 'adt7482'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7482
* Analog Devices ADT7483A
Prefix: 'adt7483a'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7483A
* ON Semiconductor NCT1008
Prefix: 'nct1008'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT1008
* ON Semiconductor NCT210
Prefix: 'adm1021'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT210
* ON Semiconductor NCT214
Prefix: 'nct214'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT214
* ON Semiconductor NCT218
Prefix: 'nct218'
Addresses scanned: I2C 0x4c - 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT218
* ON Semiconductor NCT72
Prefix: 'nct72'
Addresses scanned: I2C 0x4c - 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT72
* Maxim MAX1617
Prefix: 'max1617'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Maxim website
* Maxim MAX1617A
Prefix: 'max1617a'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Maxim website
* Maxim MAX6642
Prefix: 'max6642'
Addresses scanned: I2C 0x48-0x4f
Datasheet: Publicly available at the Maxim website
http://datasheets.maxim-ic.com/en/ds/MAX6642.pdf
* Maxim MAX6646
Prefix: 'max6646'
Addresses scanned: I2C 0x4d
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
* Maxim MAX6647
Prefix: 'max6646'
Addresses scanned: I2C 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
* Maxim MAX6648
Prefix: 'max6648'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
* Maxim MAX6649
Prefix: 'max6646'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
* Maxim MAX6654
Prefix: 'max6654'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
https://www.maximintegrated.com/en/products/sensors/MAX6654.html
* Maxim MAX6657
Prefix: 'max6657'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
* Maxim MAX6658
Prefix: 'max6657'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
* Maxim MAX6659
Prefix: 'max6659'
Addresses scanned: I2C 0x4c, 0x4d, 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
* Maxim MAX6680
Prefix: 'max6680'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370
* Maxim MAX6681
Prefix: 'max6680'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370
* Maxim MAX6692
Prefix: 'max6648'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
* Maxim MAX6695
Prefix: 'max6695'
Addresses scanned: I2C 0x18
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/datasheet/index.mvp/id/4199
* Maxim MAX6696
Prefix: 'max6695'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/datasheet/index.mvp/id/4199
* Winbond/Nuvoton W83L771W/G
Prefix: 'w83l771'
Addresses scanned: I2C 0x4c
Datasheet: No longer available
* Winbond/Nuvoton W83L771AWG/ASG
Prefix: 'w83l771'
Addresses scanned: I2C 0x4c
Datasheet: Not publicly available, can be requested from Nuvoton
* Nuvoton NCT7716
Prefix: 'nct7716'
Addresses scanned: I2C 0x48, 0x49
Datasheet: Not publicly available, can be requested from Nuvoton
* Nuvoton NCT7717
Prefix: 'nct7717'
Addresses scanned: I2C 0x48
Datasheet: Publicly available at Nuvoton website
https://www.nuvoton.com/resource-files/Nuvoton_NCT7717U_Datasheet_V111.pdf
* Nuvoton NCT7718
Prefix: 'nct7718'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at Nuvoton website
https://www.nuvoton.com/resource-files/Nuvoton_NCT7718W_Datasheet_V11.pdf
* Philips/NXP SA56004X
Prefix: 'sa56004'
Addresses scanned: I2C 0x48 through 0x4F
Datasheet: Publicly available at NXP website
http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf
* GMT G781
Prefix: 'g781'
Addresses scanned: I2C 0x4c, 0x4d
Datasheet: Not publicly available from GMT
* Texas Instruments TMP451
Prefix: 'tmp451'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at TI website
https://www.ti.com/litv/pdf/sbos686
* Texas Instruments TMP461
Prefix: 'tmp461'
Addresses scanned: I2C 0x48 through 0x4F
Datasheet: Publicly available at TI website
https://www.ti.com/lit/gpn/tmp461
* Philips NE1617, NE1617A
Prefix: 'max1617' (probably detected as a max1617)
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheets: Publicly available at the Philips website
* Philips NE1618
Prefix: 'ne1618'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheets: Publicly available at the Philips website
* Genesys Logic GL523SM
Prefix: 'gl523sm'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet:
* TI THMC10
Prefix: 'thmc10'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the TI website
* Onsemi MC1066
Prefix: 'mc1066'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Onsemi website
Author: Jean Delvare <[email protected]>
Description
-----------
The LM90 is a digital temperature sensor. It senses its own temperature as
well as the temperature of up to one external diode. It is compatible
with many other devices, many of which are supported by this driver.
The family of chips supported by this driver is derived from MAX1617.
This chip as well as various compatible chips support a local and a remote
temperature sensor with 8 bit accuracy. Later chips provide improved accuracy
and other additional features such as hysteresis and temperature offset
registers.
Note that there is no easy way to differentiate between the MAX6657,
MAX6658 and MAX6659 variants. The extra features of the MAX6659 are only
supported by this driver if the chip is located at address 0x4d or 0x4e,
or if the chip type is explicitly selected as max6659.
The MAX6680 and MAX6681 only differ in their pinout, therefore they obviously
can't (and don't need to) be distinguished.
The different chipsets of the family are not strictly identical, although
very similar. For reference, here comes a non-exhaustive list of specific
features:
LM84:
* 8 bit sensor resolution
ADM1020, ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
* 8 bit sensor resolution
* Low temperature limits
NCT210, NE1618:
* 11 bit sensor resolution for remote temperature sensor
* Low temperature limits
ADM1021A, ADM1023:
* Temperature offset register for remote temperature sensor
* 11 bit resolution for remote temperature sensor
* Low temperature limits
LM90:
* 11 bit resolution for remote temperature sensor
* Temperature offset register for remote temperature sensor
* Low and critical temperature limits
* Configurable conversion rate
* Filter and alert configuration register at 0xBF.
* ALERT is triggered by temperatures over critical limits.
LM86 and LM89:
* Same as LM90
* Better external channel accuracy
LM99:
* Same as LM89
* External temperature shifted by 16 degrees down
ADM1032:
* Consecutive alert register at 0x22.
* Conversion averaging.
* Up to 64 conversions/s.
* ALERT is triggered by open remote sensor.
* SMBus PEC support for Write Byte and Receive Byte transactions.
ADT7461, ADT7461A, NCT1008:
* Extended temperature range (breaks compatibility)
* Lower resolution for remote temperature
* SMBus PEC support for Write Byte and Receive Byte transactions.
* 10 bit temperature resolution
ADT7481, ADT7482, ADT7483:
* Temperature offset register
* SMBus PEC support
* 10 bit temperature resolution for external sensors
* Two remote sensors
* Selectable address (ADT7483)
MAX6642:
* No critical limit register
* Conversion rate not configurable
* Better local resolution (10 bit)
* 10 bit external sensor resolution
MAX6646, MAX6647, MAX6649:
* Better local resolution
* Extended range unsigned external temperature
MAX6648, MAX6692:
* Better local resolution
* Unsigned temperature
MAX6654, MAX6690:
* Better local resolution
* Selectable address
* Remote sensor type selection
* Extended temperature range
* Extended resolution only available when conversion rate <= 1 Hz
MAX6657 and MAX6658:
* Better local resolution
* Remote sensor type selection
MAX6659:
* Better local resolution
* Selectable address
* Second critical temperature limit
* Remote sensor type selection
MAX6680 and MAX6681:
* Selectable address
* Remote sensor type selection
MAX6695 and MAX6696:
* Better local resolution
* Selectable address (max6696)
* Second critical temperature limit
* Two remote sensors
W83L771W/G
* The G variant is lead-free, otherwise similar to the W.
* Filter and alert configuration register at 0xBF
* Moving average (depending on conversion rate)
W83L771AWG/ASG
* Successor of the W83L771W/G, same features.
* The AWG and ASG variants only differ in package format.
* Diode ideality factor configuration (remote sensor) at 0xE3
NCT7716:
* 8 bit sensor resolution
* Selectable address
* Configurable conversion rate
NCT7717:
* 8 bit sensor resolution
* Configurable conversion rate
NCT7718:
* Temperature offset register for remote temperature sensor
* 11 bit resolution for remote temperature sensor
* Low temperature limits
* Configurable conversion rate
SA56004X:
* Better local resolution
All temperature values are given in degrees Celsius. Resolution
is 1.0 degree for the local temperature, 0.125 degree for the remote
temperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have
a resolution of 0.125 degree for both temperatures.
Each sensor has its own high and low limits, plus a critical limit.
Additionally, there is a relative hysteresis value common to both critical
values. To make life easier to user-space applications, two absolute values
are exported, one for each channel, but these values are of course linked.
Only the local hysteresis can be set from user-space, and the same delta
applies to the remote hysteresis.
The lm90 driver will not update its values more frequently than configured with
the update_interval attribute; reading them more often will do no harm, but will
return 'old' values.
SMBus Alert Support
-------------------
This driver has basic support for SMBus alert. When an alert is received,
the status register is read and the faulty temperature channel is logged.
The Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON
Semiconductor chips (NCT1008) do not implement the SMBus alert protocol
properly so additional care is needed: the ALERT output is disabled when
an alert is received, and is re-enabled only when the alarm is gone.
Otherwise the chip would block alerts from other chips in the bus as long
as the alarm is active.
PEC Support
-----------
The ADM1032 is the only chip of the family which supports PEC. It does
not support PEC on all transactions though, so some care must be taken.
When reading a register value, the PEC byte is computed and sent by the
ADM1032 chip. However, in the case of a combined transaction (SMBus Read
Byte), the ADM1032 computes the CRC value over only the second half of
the message rather than its entirety, because it thinks the first half
of the message belongs to a different transaction. As a result, the CRC
value differs from what the SMBus master expects, and all reads fail.
For this reason, the lm90 driver will enable PEC for the ADM1032 only if
the bus supports the SMBus Send Byte and Receive Byte transaction types.
These transactions will be used to read register values, instead of
SMBus Read Byte, and PEC will work properly.
Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC.
Instead, it will try to write the PEC value to the register (because the
SMBus Send Byte transaction with PEC is similar to a Write Byte transaction
without PEC), which is not what we want. Thus, PEC is explicitly disabled
on SMBus Send Byte transactions in the lm90 driver.
PEC on byte data transactions represents a significant increase in bandwidth
usage (+33% for writes, +25% for reads) in normal conditions. With the need
to use two SMBus transaction for reads, this overhead jumps to +50%. Worse,
two transactions will typically mean twice as much delay waiting for
transaction completion, effectively doubling the register cache refresh time.
I guess reliability comes at a price, but it's quite expensive this time.
So, as not everyone might enjoy the slowdown, PEC is disabled by default and
can be enabled through sysfs. Just write 1 to the "pec" file and PEC will be
enabled. Write 0 to that file to disable PEC again.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
National·Analog Devices·ON 지원 칩
1-187`lm90` 드라이버는 MAX1617 계보의 로컬·원격 다이오드 온도 센서를 폭넓게 지원합니다. National Semiconductor 계열은 LM84, LM90, 자동 감지하지 않는 LM89, LM99, LM86입니다. 주소는 LM84가 `0x18`~`0x1a`, `0x29`~`0x2b`, `0x4c`~`0x4e`, LM90·LM86이 `0x4c`, LM89·LM99가 `0x4c`와 `0x4d`입니다.
Analog Devices 계열은 ADM1020, ADM1021, ADM1021A/ADM1023, ADM1032, ADT7461, ADT7461A, ADT7481, ADT7482, ADT7483A입니다. ADM1020은 `0x4c`~`0x4e`, ADM1021 계열은 넓은 세 주소군, ADM1032·ADT7461 계열은 `0x4c`·`0x4d`, ADT7481은 `0x4b`·`0x4c`, ADT7482는 `0x4c`, ADT7483A는 넓은 아홉 주소를 사용합니다.
ON Semiconductor 계열은 NCT1008, ADM1021 접두사를 쓰는 NCT210, NCT214, NCT218, NCT72입니다. NCT1008은 `0x4c`·`0x4d`, NCT210·214는 넓은 세 주소군, NCT218·NCT72는 `0x4c`·`0x4d`에서 검색됩니다. 각 제품의 원문 데이터시트 링크를 그대로 보존합니다.
National·Analog Devices·ON 칩의 접두사와 대표 주소입니다.
공통 레지스터 계열 안에서 제조사 ID와 주소를 함께 봅니다.
Kernel driver lm90
==================
Supported chips:
* National Semiconductor LM84
Prefix: 'lm84'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the National Semiconductor website
* National Semiconductor LM90
Prefix: 'lm90'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/pf/LM/LM90.html
* National Semiconductor LM89
Prefix: 'lm89' (no auto-detection)
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/mpf/LM/LM89.html
* National Semiconductor LM99
Prefix: 'lm99'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/pf/LM/LM99.html
* National Semiconductor LM86
Prefix: 'lm86'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the National Semiconductor website
http://www.national.com/mpf/LM/LM86.html
* Analog Devices ADM1020
Prefix: 'adm1020'
Addresses scanned: I2C 0x4c - 0x4e
Datasheet: Publicly available at the Analog Devices website
* Analog Devices ADM1021
Prefix: 'adm1021'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Analog Devices website
* Analog Devices ADM1021A/ADM1023
Prefix: 'adm1023'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Analog Devices website
* Analog Devices ADM1032
Prefix: 'adm1032'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADM1032
* Analog Devices ADT7461
Prefix: 'adt7461'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461
* Analog Devices ADT7461A
Prefix: 'adt7461a'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7461A
* Analog Devices ADT7481
Prefix: 'adt7481'
Addresses scanned: I2C 0x4b and 0x4c
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7481
* Analog Devices ADT7482
Prefix: 'adt7482'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7482
* Analog Devices ADT7483A
Prefix: 'adt7483a'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b, 0x4c, 0x4d, 0x4e
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=ADT7483A
* ON Semiconductor NCT1008
Prefix: 'nct1008'
Addresses scanned: I2C 0x4c and 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT1008
* ON Semiconductor NCT210
Prefix: 'adm1021'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT210
* ON Semiconductor NCT214
Prefix: 'nct214'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT214
* ON Semiconductor NCT218
Prefix: 'nct218'
Addresses scanned: I2C 0x4c - 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT218
* ON Semiconductor NCT72
Prefix: 'nct72'
Addresses scanned: I2C 0x4c - 0x4d
Datasheet: Publicly available at the ON Semiconductor website
https://www.onsemi.com/PowerSolutions/product.do?id=NCT72
Maxim MAX1617·MAX66xx 지원 칩
188-351Maxim 계열은 MAX1617·MAX1617A를 넓은 주소군에서 지원합니다. MAX6642는 `0x48`~`0x4f`, MAX6646은 `0x4d`, MAX6647은 `0x4e`, MAX6648은 `0x4c`, MAX6649는 `0x4c`이며 MAX6647·6649는 `max6646` 접두사를 공유합니다.
MAX6654는 `0x18`, `0x19`, `0x1a`, `0x29`, `0x2a`, `0x2b`, `0x4c`, `0x4d`, `0x4e`를 지원합니다. MAX6657·6658은 `max6657` 접두사와 주소 `0x4c`, MAX6659는 `0x4c`~`0x4e`를 사용합니다.
MAX6680·6681은 같은 `max6680` 접두사와 넓은 아홉 주소를 사용합니다. MAX6692는 `max6648` 접두사와 `0x4c`, MAX6695는 `max6695`와 `0x18`, MAX6696은 같은 접두사로 넓은 아홉 주소를 지원합니다.
원문은 각 Maxim 제품의 데이터시트 또는 제품 페이지 링크를 제공하며, 핀 배치만 다른 제품과 접두사를 공유하는 제품을 구분합니다.
Maxim 칩의 공유 접두사와 주소 선택을 정리합니다.
주소만으로 구분하기 어려운 변형은 명시적 유형을 사용합니다.
* Maxim MAX1617
Prefix: 'max1617'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Maxim website
* Maxim MAX1617A
Prefix: 'max1617a'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Maxim website
* Maxim MAX6642
Prefix: 'max6642'
Addresses scanned: I2C 0x48-0x4f
Datasheet: Publicly available at the Maxim website
http://datasheets.maxim-ic.com/en/ds/MAX6642.pdf
* Maxim MAX6646
Prefix: 'max6646'
Addresses scanned: I2C 0x4d
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
* Maxim MAX6647
Prefix: 'max6646'
Addresses scanned: I2C 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
* Maxim MAX6648
Prefix: 'max6648'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
* Maxim MAX6649
Prefix: 'max6646'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3497
* Maxim MAX6654
Prefix: 'max6654'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
https://www.maximintegrated.com/en/products/sensors/MAX6654.html
* Maxim MAX6657
Prefix: 'max6657'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
* Maxim MAX6658
Prefix: 'max6657'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
* Maxim MAX6659
Prefix: 'max6659'
Addresses scanned: I2C 0x4c, 0x4d, 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2578
* Maxim MAX6680
Prefix: 'max6680'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370
* Maxim MAX6681
Prefix: 'max6680'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3370
* Maxim MAX6692
Prefix: 'max6648'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3500
* Maxim MAX6695
Prefix: 'max6695'
Addresses scanned: I2C 0x18
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/datasheet/index.mvp/id/4199
* Maxim MAX6696
Prefix: 'max6695'
Addresses scanned: I2C 0x18, 0x19, 0x1a, 0x29, 0x2a, 0x2b,
0x4c, 0x4d and 0x4e
Datasheet: Publicly available at the Maxim website
http://www.maxim-ic.com/datasheet/index.mvp/id/4199
Nuvoton·NXP·TI·Philips 등 지원 칩
352-476Winbond/Nuvoton 계열은 W83L771W/G와 후속 W83L771AWG/ASG를 `w83l771`, NCT7716·7717·7718을 각각 모델 접두사로 지원합니다. W83L771은 `0x4c`, NCT7716은 `0x48`·`0x49`, NCT7717은 `0x48`, NCT7718은 `0x4c`입니다. 일부 데이터시트는 공개되지 않았거나 Nuvoton에 요청해야 합니다.
Philips/NXP SA56004X는 `sa56004`와 `0x48`~`0x4f`, GMT G781은 `g781`과 `0x4c`·`0x4d`를 사용합니다. TI TMP451은 `tmp451`과 `0x4c`, TMP461은 `tmp461`과 `0x48`~`0x4f`입니다.
Philips NE1617·NE1617A는 대체로 `max1617`로 감지되고, NE1618은 `ne1618`입니다. Genesys Logic GL523SM은 `gl523sm`, TI THMC10은 `thmc10`, Onsemi MC1066은 `mc1066`이며 모두 넓은 세 주소군에서 검색됩니다. GL523SM 항목은 원문에서 데이터시트 주소가 비어 있습니다.
작성자는 Jean Delvare입니다.
기타 제조사 칩과 주소 범위를 정리합니다.
공개 자료 여부와 감지 별칭을 함께 확인합니다.
* Winbond/Nuvoton W83L771W/G
Prefix: 'w83l771'
Addresses scanned: I2C 0x4c
Datasheet: No longer available
* Winbond/Nuvoton W83L771AWG/ASG
Prefix: 'w83l771'
Addresses scanned: I2C 0x4c
Datasheet: Not publicly available, can be requested from Nuvoton
* Nuvoton NCT7716
Prefix: 'nct7716'
Addresses scanned: I2C 0x48, 0x49
Datasheet: Not publicly available, can be requested from Nuvoton
* Nuvoton NCT7717
Prefix: 'nct7717'
Addresses scanned: I2C 0x48
Datasheet: Publicly available at Nuvoton website
https://www.nuvoton.com/resource-files/Nuvoton_NCT7717U_Datasheet_V111.pdf
* Nuvoton NCT7718
Prefix: 'nct7718'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at Nuvoton website
https://www.nuvoton.com/resource-files/Nuvoton_NCT7718W_Datasheet_V11.pdf
* Philips/NXP SA56004X
Prefix: 'sa56004'
Addresses scanned: I2C 0x48 through 0x4F
Datasheet: Publicly available at NXP website
http://ics.nxp.com/products/interface/datasheet/sa56004x.pdf
* GMT G781
Prefix: 'g781'
Addresses scanned: I2C 0x4c, 0x4d
Datasheet: Not publicly available from GMT
* Texas Instruments TMP451
Prefix: 'tmp451'
Addresses scanned: I2C 0x4c
Datasheet: Publicly available at TI website
https://www.ti.com/litv/pdf/sbos686
* Texas Instruments TMP461
Prefix: 'tmp461'
Addresses scanned: I2C 0x48 through 0x4F
Datasheet: Publicly available at TI website
https://www.ti.com/lit/gpn/tmp461
* Philips NE1617, NE1617A
Prefix: 'max1617' (probably detected as a max1617)
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheets: Publicly available at the Philips website
* Philips NE1618
Prefix: 'ne1618'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheets: Publicly available at the Philips website
* Genesys Logic GL523SM
Prefix: 'gl523sm'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet:
* TI THMC10
Prefix: 'thmc10'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the TI website
* Onsemi MC1066
Prefix: 'mc1066'
Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
Datasheet: Publicly available at the Onsemi website
Author: Jean Delvare <[email protected]>
MAX1617 계보와 변형 식별 제약
477-500LM90은 자체 온도와 외부 다이오드 하나의 온도를 측정하는 디지털 센서이며, 이 드라이버는 많은 호환 장치를 함께 지원합니다.
지원 계열은 MAX1617에서 파생되었습니다. 초기 칩과 호환품은 로컬·원격 온도를 8비트 정확도로 제공하고, 후속 칩은 정밀도 향상과 히스테리시스·온도 오프셋 같은 기능을 추가했습니다.
MAX6657·MAX6658·MAX6659는 쉽게 구별할 방법이 없습니다. MAX6659의 추가 기능은 주소가 `0x4d` 또는 `0x4e`이거나 칩 유형을 `max6659`로 명시했을 때만 지원됩니다. MAX6680과 MAX6681은 핀 배치만 달라 소프트웨어가 구별할 수도, 구별할 필요도 없습니다.
기본 구조와 자동 감지 한계를 요약합니다.
감지 정보가 부족하면 보수적으로 공통 기능만 사용합니다.
Description
-----------
The LM90 is a digital temperature sensor. It senses its own temperature as
well as the temperature of up to one external diode. It is compatible
with many other devices, many of which are supported by this driver.
The family of chips supported by this driver is derived from MAX1617.
This chip as well as various compatible chips support a local and a remote
temperature sensor with 8 bit accuracy. Later chips provide improved accuracy
and other additional features such as hysteresis and temperature offset
registers.
Note that there is no easy way to differentiate between the MAX6657,
MAX6658 and MAX6659 variants. The extra features of the MAX6659 are only
supported by this driver if the chip is located at address 0x4d or 0x4e,
or if the chip type is explicitly selected as max6659.
The MAX6680 and MAX6681 only differ in their pinout, therefore they obviously
can't (and don't need to) be distinguished.
The different chipsets of the family are not strictly identical, although
very similar. For reference, here comes a non-exhaustive list of specific
features:
모델별 분해능·오프셋·채널·변환 기능
501-621LM84는 8비트 센서 분해능입니다. ADM1020·ADM1021·GL523SM·MAX1617·NE1617·NE1617A·THMC10은 8비트 분해능과 저온 제한을 제공합니다. NCT210·NE1618은 원격 센서 11비트 분해능과 저온 제한을, ADM1021A·ADM1023은 여기에 원격 온도 오프셋을 더합니다.
LM90은 원격 11비트, 원격 오프셋, 저온·임계 제한, 설정 가능한 변환률, `0xBF` 필터·Alert 구성 레지스터를 제공하며 임계 온도 초과로 ALERT가 발생합니다. LM86·LM89는 외부 채널 정확도가 더 높고, LM99는 LM89와 같지만 외부 온도가 16도 아래로 이동합니다.
ADM1032는 `0x22` 연속 경보 레지스터, 변환 평균, 초당 최대 64회 변환, 원격 센서 개방 ALERT, Write Byte·Receive Byte용 SMBus PEC를 제공합니다. ADT7461·ADT7461A·NCT1008은 호환성을 깨는 확장 온도 범위, 낮아진 원격 정밀도, PEC, 10비트 온도를 제공합니다.
ADT7481·ADT7482·ADT7483은 오프셋, PEC, 외부 센서 10비트, 원격 센서 두 개를 제공하고 ADT7483은 주소를 선택할 수 있습니다. MAX6642는 임계 레지스터와 변환률 설정이 없지만 로컬·외부가 10비트입니다. MAX6646·6647·6649는 로컬 정밀도가 높고 부호 없는 확장 원격 범위를, MAX6648·6692는 향상된 로컬과 부호 없는 온도를 제공합니다.
MAX6654·MAX6690은 향상된 로컬, 선택 주소, 원격 센서 유형, 확장 범위를 제공하며 1 Hz 이하 변환률에서만 확장 정밀도를 쓸 수 있습니다. MAX6657·6658은 향상된 로컬과 원격 센서 유형을, MAX6659는 여기에 선택 주소와 두 번째 임계 제한을 더합니다. MAX6680·6681은 선택 주소와 원격 센서 유형을 제공합니다. MAX6695·6696은 향상된 로컬, 두 번째 임계 제한, 원격 센서 두 개를 제공하며 MAX6696은 주소 선택도 가능합니다.
W83L771W/G의 G는 무연 변형이며 `0xBF` 구성과 변환률에 따른 이동 평균을 지원합니다. 후속 AWG/ASG는 패키지만 다르고 원격 다이오드 이상 계수 구성을 `0xE3`에서 제공합니다. NCT7716은 8비트·선택 주소·변환률 설정, NCT7717은 8비트·변환률 설정, NCT7718은 원격 오프셋·11비트·저온 제한·변환률 설정을 지원합니다. SA56004X는 로컬 정밀도가 더 좋습니다.
긴 기능 목록을 핵심 능력별로 묶습니다.
모델별 능력을 공통 hwmon 속성에 매핑합니다.
LM84:
* 8 bit sensor resolution
ADM1020, ADM1021, GL523SM, MAX1617, NE1617, NE1617A, THMC10:
* 8 bit sensor resolution
* Low temperature limits
NCT210, NE1618:
* 11 bit sensor resolution for remote temperature sensor
* Low temperature limits
ADM1021A, ADM1023:
* Temperature offset register for remote temperature sensor
* 11 bit resolution for remote temperature sensor
* Low temperature limits
LM90:
* 11 bit resolution for remote temperature sensor
* Temperature offset register for remote temperature sensor
* Low and critical temperature limits
* Configurable conversion rate
* Filter and alert configuration register at 0xBF.
* ALERT is triggered by temperatures over critical limits.
LM86 and LM89:
* Same as LM90
* Better external channel accuracy
LM99:
* Same as LM89
* External temperature shifted by 16 degrees down
ADM1032:
* Consecutive alert register at 0x22.
* Conversion averaging.
* Up to 64 conversions/s.
* ALERT is triggered by open remote sensor.
* SMBus PEC support for Write Byte and Receive Byte transactions.
ADT7461, ADT7461A, NCT1008:
* Extended temperature range (breaks compatibility)
* Lower resolution for remote temperature
* SMBus PEC support for Write Byte and Receive Byte transactions.
* 10 bit temperature resolution
ADT7481, ADT7482, ADT7483:
* Temperature offset register
* SMBus PEC support
* 10 bit temperature resolution for external sensors
* Two remote sensors
* Selectable address (ADT7483)
MAX6642:
* No critical limit register
* Conversion rate not configurable
* Better local resolution (10 bit)
* 10 bit external sensor resolution
MAX6646, MAX6647, MAX6649:
* Better local resolution
* Extended range unsigned external temperature
MAX6648, MAX6692:
* Better local resolution
* Unsigned temperature
MAX6654, MAX6690:
* Better local resolution
* Selectable address
* Remote sensor type selection
* Extended temperature range
* Extended resolution only available when conversion rate <= 1 Hz
MAX6657 and MAX6658:
* Better local resolution
* Remote sensor type selection
MAX6659:
* Better local resolution
* Selectable address
* Second critical temperature limit
* Remote sensor type selection
MAX6680 and MAX6681:
* Selectable address
* Remote sensor type selection
MAX6695 and MAX6696:
* Better local resolution
* Selectable address (max6696)
* Second critical temperature limit
* Two remote sensors
W83L771W/G
* The G variant is lead-free, otherwise similar to the W.
* Filter and alert configuration register at 0xBF
* Moving average (depending on conversion rate)
W83L771AWG/ASG
* Successor of the W83L771W/G, same features.
* The AWG and ASG variants only differ in package format.
* Diode ideality factor configuration (remote sensor) at 0xE3
NCT7716:
* 8 bit sensor resolution
* Selectable address
* Configurable conversion rate
NCT7717:
* 8 bit sensor resolution
* Configurable conversion rate
NCT7718:
* Temperature offset register for remote temperature sensor
* 11 bit resolution for remote temperature sensor
* Low temperature limits
* Configurable conversion rate
SA56004X:
* Better local resolution
공통 온도·임계 히스테리시스·갱신 주기
622-637모든 온도 값은 섭씨입니다. 기본적으로 로컬 온도 분해능은 1.0 C, 원격 온도는 0.125 C입니다. MAX6654·MAX6657·MAX6658·MAX6659는 두 온도 모두 0.125 C 분해능입니다.
각 센서에는 개별 고온·저온 제한과 임계 제한이 있습니다. 두 임계값에는 공통 상대 히스테리시스 하나가 적용됩니다. 사용자 공간 편의를 위해 채널별 절대 히스테리시스 값 두 개를 내보내지만 서로 연결되어 있습니다. 로컬 히스테리시스만 설정할 수 있고 같은 차이가 원격 히스테리시스에도 적용됩니다.
드라이버는 `update_interval`에 설정된 주기보다 자주 값을 갱신하지 않습니다. 더 자주 읽어도 문제는 없지만 이전 값이 반환됩니다.
분해능과 연결된 임계 히스테리시스 구조입니다.
로컬에 쓴 상대 차이가 원격에도 연결됩니다.
All temperature values are given in degrees Celsius. Resolution
is 1.0 degree for the local temperature, 0.125 degree for the remote
temperature, except for the MAX6654, MAX6657, MAX6658 and MAX6659 which have
a resolution of 0.125 degree for both temperatures.
Each sensor has its own high and low limits, plus a critical limit.
Additionally, there is a relative hysteresis value common to both critical
values. To make life easier to user-space applications, two absolute values
are exported, one for each channel, but these values are of course linked.
Only the local hysteresis can be set from user-space, and the same delta
applies to the remote hysteresis.
The lm90 driver will not update its values more frequently than configured with
the update_interval attribute; reading them more often will do no harm, but will
return 'old' values.
SMBus Alert 수신과 비표준 칩 처리
638-650드라이버는 기본적인 SMBus Alert를 지원합니다. Alert를 받으면 상태 레지스터를 읽고 문제가 발생한 온도 채널을 로그에 기록합니다.
Analog Devices ADM1032·ADT7461·ADT7461A와 ON Semiconductor NCT1008은 SMBus Alert 프로토콜을 올바르게 구현하지 않습니다. Alert를 받으면 ALERT 출력을 비활성화하고 경보 원인이 사라진 뒤에만 다시 활성화해야 합니다.
이 처리가 없으면 경보가 활성인 동안 해당 칩이 버스를 점유해 다른 칩의 Alert 전달을 막을 수 있습니다.
표준 경로와 비표준 칩 보정 경로를 비교합니다.
비표준 칩에서는 출력 재활성화 시점을 통제합니다.
SMBus Alert Support
-------------------
This driver has basic support for SMBus alert. When an alert is received,
the status register is read and the faulty temperature channel is logged.
The Analog Devices chips (ADM1032, ADT7461 and ADT7461A) and ON
Semiconductor chips (NCT1008) do not implement the SMBus alert protocol
properly so additional care is needed: the ALERT output is disabled when
an alert is received, and is re-enabled only when the alarm is gone.
Otherwise the chip would block alerts from other chips in the bus as long
as the alarm is active.
ADM1032 PEC 거래 제약과 성능 비용
651-684이 계열에서 PEC를 지원하는 칩은 ADM1032뿐이며 모든 거래에서 지원하는 것은 아니므로 주의해야 합니다.
레지스터를 읽을 때 ADM1032는 PEC 바이트를 계산해 보냅니다. 그러나 결합 거래인 SMBus Read Byte에서는 메시지 전체가 아니라 두 번째 절반만 CRC 계산에 포함합니다. 첫 절반을 별도 거래로 인식하기 때문에 SMBus 마스터가 기대하는 CRC와 달라져 모든 읽기가 실패합니다.
따라서 버스가 SMBus Send Byte와 Receive Byte 거래를 모두 지원할 때만 ADM1032 PEC를 켭니다. 레지스터 읽기에는 Read Byte 대신 이 두 거래를 사용해야 PEC가 정상 동작합니다.
ADM1032는 PEC가 붙은 SMBus Send Byte도 지원하지 않습니다. PEC 값을 레지스터에 쓸 데이터로 오인하므로 드라이버는 Send Byte 거래에서 PEC를 명시적으로 끕니다.
바이트 데이터 PEC는 정상 조건에서도 쓰기 대역폭을 33%, 읽기를 25% 늘립니다. 읽기에 두 SMBus 거래가 필요하면 오버헤드는 50%가 되고 거래 완료 대기 또한 대체로 두 배가 되어 레지스터 캐시 갱신 시간이 사실상 배가됩니다.
이 성능 저하 때문에 PEC는 기본적으로 꺼져 있습니다. sysfs의 `pec` 파일에 1을 쓰면 활성화하고 0을 쓰면 다시 비활성화합니다.
거래 유형별 지원과 비용입니다.
버스 능력을 확인하고 두 거래로 안전하게 읽습니다.
PEC Support
-----------
The ADM1032 is the only chip of the family which supports PEC. It does
not support PEC on all transactions though, so some care must be taken.
When reading a register value, the PEC byte is computed and sent by the
ADM1032 chip. However, in the case of a combined transaction (SMBus Read
Byte), the ADM1032 computes the CRC value over only the second half of
the message rather than its entirety, because it thinks the first half
of the message belongs to a different transaction. As a result, the CRC
value differs from what the SMBus master expects, and all reads fail.
For this reason, the lm90 driver will enable PEC for the ADM1032 only if
the bus supports the SMBus Send Byte and Receive Byte transaction types.
These transactions will be used to read register values, instead of
SMBus Read Byte, and PEC will work properly.
Additionally, the ADM1032 doesn't support SMBus Send Byte with PEC.
Instead, it will try to write the PEC value to the register (because the
SMBus Send Byte transaction with PEC is similar to a Write Byte transaction
without PEC), which is not what we want. Thus, PEC is explicitly disabled
on SMBus Send Byte transactions in the lm90 driver.
PEC on byte data transactions represents a significant increase in bandwidth
usage (+33% for writes, +25% for reads) in normal conditions. With the need
to use two SMBus transaction for reads, this overhead jumps to +50%. Worse,
two transactions will typically mean twice as much delay waiting for
transaction completion, effectively doubling the register cache refresh time.
I guess reliability comes at a price, but it's quite expensive this time.
So, as not everyone might enjoy the slowdown, PEC is disabled by default and
can be enabled through sysfs. Just write 1 to the "pec" file and PEC will be
enabled. Write 0 to that file to disable PEC again.
요약·해설
lm90.rst:1-684LM90 계열 47종의 주소·접두사와 모델별 분해능·오프셋·복수 원격 채널을 구분하고, 공통 임계 히스테리시스·Alert·PEC 거래 제약을 처리합니다.
원문 분량과 핵심 인터페이스입니다.
칩 식별부터 경보와 PEC 처리까지의 핵심 순서입니다.