| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | Kernel driver lm63 | 
|  | 2 | ================== | 
|  | 3 |  | 
|  | 4 | Supported chips: | 
|  | 5 | * National Semiconductor LM63 | 
|  | 6 | Prefix: 'lm63' | 
|  | 7 | Addresses scanned: I2C 0x4c | 
|  | 8 | Datasheet: Publicly available at the National Semiconductor website | 
|  | 9 | http://www.national.com/pf/LM/LM63.html | 
|  | 10 | * National Semiconductor LM64 | 
|  | 11 | Prefix: 'lm64' | 
|  | 12 | Addresses scanned: I2C 0x18 and 0x4e | 
|  | 13 | Datasheet: Publicly available at the National Semiconductor website | 
|  | 14 | http://www.national.com/pf/LM/LM64.html | 
|  | 15 | * National Semiconductor LM96163 | 
|  | 16 | Prefix: 'lm96163' | 
|  | 17 | Addresses scanned: I2C 0x4c | 
|  | 18 | Datasheet: Publicly available at the National Semiconductor website | 
|  | 19 | http://www.national.com/pf/LM/LM96163.html | 
|  | 20 |  | 
|  | 21 | Author: Jean Delvare <jdelvare@suse.de> | 
|  | 22 |  | 
|  | 23 | Thanks go to Tyan and especially Alex Buckingham for setting up a remote | 
|  | 24 | access to their S4882 test platform for this driver. | 
|  | 25 | http://www.tyan.com/ | 
|  | 26 |  | 
|  | 27 | Description | 
|  | 28 | ----------- | 
|  | 29 |  | 
|  | 30 | The LM63 is a digital temperature sensor with integrated fan monitoring | 
|  | 31 | and control. | 
|  | 32 |  | 
|  | 33 | The LM63 is basically an LM86 with fan speed monitoring and control | 
|  | 34 | capabilities added. It misses some of the LM86 features though: | 
|  | 35 | - No low limit for local temperature. | 
|  | 36 | - No critical limit for local temperature. | 
|  | 37 | - Critical limit for remote temperature can be changed only once. We | 
|  | 38 | will consider that the critical limit is read-only. | 
|  | 39 |  | 
|  | 40 | The datasheet isn't very clear about what the tachometer reading is. | 
|  | 41 |  | 
|  | 42 | An explanation from National Semiconductor: The two lower bits of the read | 
|  | 43 | value have to be masked out. The value is still 16 bit in width. | 
|  | 44 |  | 
|  | 45 | All temperature values are given in degrees Celsius. Resolution is 1.0 | 
|  | 46 | degree for the local temperature, 0.125 degree for the remote temperature. | 
|  | 47 |  | 
|  | 48 | The fan speed is measured using a tachometer. Contrary to most chips which | 
|  | 49 | store the value in an 8-bit register and have a selectable clock divider | 
|  | 50 | to make sure that the result will fit in the register, the LM63 uses 16-bit | 
|  | 51 | value for measuring the speed of the fan. It can measure fan speeds down to | 
|  | 52 | 83 RPM, at least in theory. | 
|  | 53 |  | 
|  | 54 | Note that the pin used for fan monitoring is shared with an alert out | 
|  | 55 | function. Depending on how the board designer wanted to use the chip, fan | 
|  | 56 | speed monitoring will or will not be possible. The proper chip configuration | 
|  | 57 | is left to the BIOS, and the driver will blindly trust it. Only the original | 
|  | 58 | LM63 suffers from this limitation, the LM64 and LM96163 have separate pins | 
|  | 59 | for fan monitoring and alert out. On the LM64, monitoring is always enabled; | 
|  | 60 | on the LM96163 it can be disabled. | 
|  | 61 |  | 
|  | 62 | A PWM output can be used to control the speed of the fan. The LM63 has two | 
|  | 63 | PWM modes: manual and automatic. Automatic mode is not fully implemented yet | 
|  | 64 | (you cannot define your custom PWM/temperature curve), and mode change isn't | 
|  | 65 | supported either. | 
|  | 66 |  | 
|  | 67 | The lm63 driver will not update its values more frequently than configured with | 
|  | 68 | the update_interval sysfs attribute; reading them more often will do no harm, | 
|  | 69 | but will return 'old' values. Values in the automatic fan control lookup table | 
|  | 70 | (attributes pwm1_auto_*) have their own independent lifetime of 5 seconds. | 
|  | 71 |  | 
|  | 72 | The LM64 is effectively an LM63 with GPIO lines. The driver does not | 
|  | 73 | support these GPIO lines at present. | 
|  | 74 |  | 
|  | 75 | The LM96163 is an enhanced version of LM63 with improved temperature accuracy | 
|  | 76 | and better PWM resolution. For LM96163, the external temperature sensor type is | 
|  | 77 | configurable as CPU embedded diode(1) or 3904 transistor(2). |