1 Kernel driver lm73 1 Kernel driver lm73 2 ================== 2 ================== 3 3 4 Supported chips: 4 Supported chips: 5 5 6 * Texas Instruments LM73 6 * Texas Instruments LM73 7 7 8 Prefix: 'lm73' 8 Prefix: 'lm73' 9 9 10 Addresses scanned: I2C 0x48, 0x49, 0x4a, 0 10 Addresses scanned: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, and 0x4e 11 11 12 Datasheet: Publicly available at the Texas 12 Datasheet: Publicly available at the Texas Instruments website 13 13 14 https://www.ti.com/product/lm73 14 https://www.ti.com/product/lm73 15 15 16 16 17 Author: Guillaume Ligneul <guillaume.ligneul@gm 17 Author: Guillaume Ligneul <guillaume.ligneul@gmail.com> 18 18 19 Documentation: Chris Verges <kg4ysn@gmail.com> 19 Documentation: Chris Verges <kg4ysn@gmail.com> 20 20 21 21 22 Description 22 Description 23 ----------- 23 ----------- 24 24 25 The LM73 is a digital temperature sensor. All 25 The LM73 is a digital temperature sensor. All temperature values are 26 given in degrees Celsius. 26 given in degrees Celsius. 27 27 28 Measurement Resolution Support 28 Measurement Resolution Support 29 ------------------------------ 29 ------------------------------ 30 30 31 The LM73 supports four resolutions, defined in 31 The LM73 supports four resolutions, defined in terms of degrees C per 32 LSB: 0.25, 0.125, 0.0625, and 0.3125. Changin 32 LSB: 0.25, 0.125, 0.0625, and 0.3125. Changing the resolution mode 33 affects the conversion time of the LM73's anal 33 affects the conversion time of the LM73's analog-to-digital converter. 34 From userspace, the desired resolution can be 34 From userspace, the desired resolution can be specified as a function of 35 conversion time via the 'update_interval' sysf 35 conversion time via the 'update_interval' sysfs attribute for the 36 device. This attribute will normalize ranges 36 device. This attribute will normalize ranges of input values to the 37 maximum times defined for the resolution in th 37 maximum times defined for the resolution in the datasheet. 38 38 39 ============= ============= ============ 39 ============= ============= ============ 40 Resolution Conv. Time Input Range 40 Resolution Conv. Time Input Range 41 (C/LSB) (msec) (msec) 41 (C/LSB) (msec) (msec) 42 ============= ============= ============ 42 ============= ============= ============ 43 0.25 14 0..14 43 0.25 14 0..14 44 0.125 28 15..28 44 0.125 28 15..28 45 0.0625 56 29..56 45 0.0625 56 29..56 46 0.03125 112 57..infinity 46 0.03125 112 57..infinity 47 ============= ============= ============ 47 ============= ============= ============ 48 48 49 The following examples show how the 'update_in 49 The following examples show how the 'update_interval' attribute can be 50 used to change the conversion time:: 50 used to change the conversion time:: 51 51 52 $ echo 0 > update_interval 52 $ echo 0 > update_interval 53 $ cat update_interval 53 $ cat update_interval 54 14 54 14 55 $ cat temp1_input 55 $ cat temp1_input 56 24250 56 24250 57 57 58 $ echo 22 > update_interval 58 $ echo 22 > update_interval 59 $ cat update_interval 59 $ cat update_interval 60 28 60 28 61 $ cat temp1_input 61 $ cat temp1_input 62 24125 62 24125 63 63 64 $ echo 56 > update_interval 64 $ echo 56 > update_interval 65 $ cat update_interval 65 $ cat update_interval 66 56 66 56 67 $ cat temp1_input 67 $ cat temp1_input 68 24062 68 24062 69 69 70 $ echo 85 > update_interval 70 $ echo 85 > update_interval 71 $ cat update_interval 71 $ cat update_interval 72 112 72 112 73 $ cat temp1_input 73 $ cat temp1_input 74 24031 74 24031 75 75 76 As shown here, the lm73 driver automatically a 76 As shown here, the lm73 driver automatically adjusts any user input for 77 'update_interval' via a step function. Readin 77 'update_interval' via a step function. Reading back the 78 'update_interval' value after a write operatio 78 'update_interval' value after a write operation will confirm the 79 conversion time actively in use. 79 conversion time actively in use. 80 80 81 Mathematically, the resolution can be derived 81 Mathematically, the resolution can be derived from the conversion time 82 via the following function: 82 via the following function: 83 83 84 g(x) = 0.250 * [log(x/14) / log(2)] 84 g(x) = 0.250 * [log(x/14) / log(2)] 85 85 86 where 'x' is the output from 'update_interval' 86 where 'x' is the output from 'update_interval' and 'g(x)' is the 87 resolution in degrees C per LSB. 87 resolution in degrees C per LSB. 88 88 89 Alarm Support 89 Alarm Support 90 ------------- 90 ------------- 91 91 92 The LM73 features a simple over-temperature al 92 The LM73 features a simple over-temperature alarm mechanism. This 93 feature is exposed via the sysfs attributes. 93 feature is exposed via the sysfs attributes. 94 94 95 The attributes 'temp1_max_alarm' and 'temp1_mi 95 The attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags 96 provided by the LM73 that indicate whether the 96 provided by the LM73 that indicate whether the measured temperature has 97 passed the 'temp1_max' and 'temp1_min' thresho 97 passed the 'temp1_max' and 'temp1_min' thresholds, respectively. These 98 values _must_ be read to clear the registers o 98 values _must_ be read to clear the registers on the LM73.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.