17ebd8b66SMauro Carvalho ChehabKernel driver lm73 27ebd8b66SMauro Carvalho Chehab================== 37ebd8b66SMauro Carvalho Chehab 47ebd8b66SMauro Carvalho ChehabSupported chips: 57ebd8b66SMauro Carvalho Chehab 67ebd8b66SMauro Carvalho Chehab * Texas Instruments LM73 77ebd8b66SMauro Carvalho Chehab 87ebd8b66SMauro Carvalho Chehab Prefix: 'lm73' 97ebd8b66SMauro Carvalho Chehab 107ebd8b66SMauro Carvalho Chehab Addresses scanned: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, and 0x4e 117ebd8b66SMauro Carvalho Chehab 127ebd8b66SMauro Carvalho Chehab Datasheet: Publicly available at the Texas Instruments website 137ebd8b66SMauro Carvalho Chehab 14ad736c1aSAlexander A. Klimov https://www.ti.com/product/lm73 157ebd8b66SMauro Carvalho Chehab 167ebd8b66SMauro Carvalho Chehab 177ebd8b66SMauro Carvalho ChehabAuthor: Guillaume Ligneul <guillaume.ligneul@gmail.com> 187ebd8b66SMauro Carvalho Chehab 197ebd8b66SMauro Carvalho ChehabDocumentation: Chris Verges <kg4ysn@gmail.com> 207ebd8b66SMauro Carvalho Chehab 217ebd8b66SMauro Carvalho Chehab 227ebd8b66SMauro Carvalho ChehabDescription 237ebd8b66SMauro Carvalho Chehab----------- 247ebd8b66SMauro Carvalho Chehab 257ebd8b66SMauro Carvalho ChehabThe LM73 is a digital temperature sensor. All temperature values are 267ebd8b66SMauro Carvalho Chehabgiven in degrees Celsius. 277ebd8b66SMauro Carvalho Chehab 287ebd8b66SMauro Carvalho ChehabMeasurement Resolution Support 297ebd8b66SMauro Carvalho Chehab------------------------------ 307ebd8b66SMauro Carvalho Chehab 317ebd8b66SMauro Carvalho ChehabThe LM73 supports four resolutions, defined in terms of degrees C per 327ebd8b66SMauro Carvalho ChehabLSB: 0.25, 0.125, 0.0625, and 0.3125. Changing the resolution mode 337ebd8b66SMauro Carvalho Chehabaffects the conversion time of the LM73's analog-to-digital converter. 347ebd8b66SMauro Carvalho ChehabFrom userspace, the desired resolution can be specified as a function of 357ebd8b66SMauro Carvalho Chehabconversion time via the 'update_interval' sysfs attribute for the 367ebd8b66SMauro Carvalho Chehabdevice. This attribute will normalize ranges of input values to the 377ebd8b66SMauro Carvalho Chehabmaximum times defined for the resolution in the datasheet. 387ebd8b66SMauro Carvalho Chehab 397ebd8b66SMauro Carvalho Chehab ============= ============= ============ 407ebd8b66SMauro Carvalho Chehab Resolution Conv. Time Input Range 417ebd8b66SMauro Carvalho Chehab (C/LSB) (msec) (msec) 427ebd8b66SMauro Carvalho Chehab ============= ============= ============ 437ebd8b66SMauro Carvalho Chehab 0.25 14 0..14 447ebd8b66SMauro Carvalho Chehab 0.125 28 15..28 457ebd8b66SMauro Carvalho Chehab 0.0625 56 29..56 467ebd8b66SMauro Carvalho Chehab 0.03125 112 57..infinity 477ebd8b66SMauro Carvalho Chehab ============= ============= ============ 487ebd8b66SMauro Carvalho Chehab 497ebd8b66SMauro Carvalho ChehabThe following examples show how the 'update_interval' attribute can be 507ebd8b66SMauro Carvalho Chehabused to change the conversion time:: 517ebd8b66SMauro Carvalho Chehab 527ebd8b66SMauro Carvalho Chehab $ echo 0 > update_interval 537ebd8b66SMauro Carvalho Chehab $ cat update_interval 547ebd8b66SMauro Carvalho Chehab 14 557ebd8b66SMauro Carvalho Chehab $ cat temp1_input 567ebd8b66SMauro Carvalho Chehab 24250 577ebd8b66SMauro Carvalho Chehab 587ebd8b66SMauro Carvalho Chehab $ echo 22 > update_interval 597ebd8b66SMauro Carvalho Chehab $ cat update_interval 607ebd8b66SMauro Carvalho Chehab 28 617ebd8b66SMauro Carvalho Chehab $ cat temp1_input 627ebd8b66SMauro Carvalho Chehab 24125 637ebd8b66SMauro Carvalho Chehab 647ebd8b66SMauro Carvalho Chehab $ echo 56 > update_interval 657ebd8b66SMauro Carvalho Chehab $ cat update_interval 667ebd8b66SMauro Carvalho Chehab 56 677ebd8b66SMauro Carvalho Chehab $ cat temp1_input 687ebd8b66SMauro Carvalho Chehab 24062 697ebd8b66SMauro Carvalho Chehab 707ebd8b66SMauro Carvalho Chehab $ echo 85 > update_interval 717ebd8b66SMauro Carvalho Chehab $ cat update_interval 727ebd8b66SMauro Carvalho Chehab 112 737ebd8b66SMauro Carvalho Chehab $ cat temp1_input 747ebd8b66SMauro Carvalho Chehab 24031 757ebd8b66SMauro Carvalho Chehab 767ebd8b66SMauro Carvalho ChehabAs shown here, the lm73 driver automatically adjusts any user input for 777ebd8b66SMauro Carvalho Chehab'update_interval' via a step function. Reading back the 787ebd8b66SMauro Carvalho Chehab'update_interval' value after a write operation will confirm the 797ebd8b66SMauro Carvalho Chehabconversion time actively in use. 807ebd8b66SMauro Carvalho Chehab 817ebd8b66SMauro Carvalho ChehabMathematically, the resolution can be derived from the conversion time 827ebd8b66SMauro Carvalho Chehabvia the following function: 837ebd8b66SMauro Carvalho Chehab 847ebd8b66SMauro Carvalho Chehab g(x) = 0.250 * [log(x/14) / log(2)] 857ebd8b66SMauro Carvalho Chehab 867ebd8b66SMauro Carvalho Chehabwhere 'x' is the output from 'update_interval' and 'g(x)' is the 877ebd8b66SMauro Carvalho Chehabresolution in degrees C per LSB. 887ebd8b66SMauro Carvalho Chehab 897ebd8b66SMauro Carvalho ChehabAlarm Support 907ebd8b66SMauro Carvalho Chehab------------- 917ebd8b66SMauro Carvalho Chehab 927ebd8b66SMauro Carvalho ChehabThe LM73 features a simple over-temperature alarm mechanism. This 937ebd8b66SMauro Carvalho Chehabfeature is exposed via the sysfs attributes. 947ebd8b66SMauro Carvalho Chehab 957ebd8b66SMauro Carvalho ChehabThe attributes 'temp1_max_alarm' and 'temp1_min_alarm' are flags 967ebd8b66SMauro Carvalho Chehabprovided by the LM73 that indicate whether the measured temperature has 977ebd8b66SMauro Carvalho Chehabpassed the 'temp1_max' and 'temp1_min' thresholds, respectively. These 987ebd8b66SMauro Carvalho Chehabvalues _must_ be read to clear the registers on the LM73. 99