blob: 4d30d209881a2861ad95c07208a7179ead236b03 [file] [log] [blame]
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +00001Kernel driver lm63
2==================
3
4Supported 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
Matthew Garrett10f2ed32010-05-27 19:58:38 +020010 * 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
Guenter Roeck210961c2012-01-16 22:51:45 +010015 * 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
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000020
21Author: Jean Delvare <khali@linux-fr.org>
22
23Thanks go to Tyan and especially Alex Buckingham for setting up a remote
24access to their S4882 test platform for this driver.
25 http://www.tyan.com/
26
27Description
28-----------
29
30The LM63 is a digital temperature sensor with integrated fan monitoring
31and control.
32
33The LM63 is basically an LM86 with fan speed monitoring and control
34capabilities 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
40The datasheet isn't very clear about what the tachometer reading is.
41
42An explanation from National Semiconductor: The two lower bits of the read
43value have to be masked out. The value is still 16 bit in width.
44
45All temperature values are given in degrees Celsius. Resolution is 1.0
46degree for the local temperature, 0.125 degree for the remote temperature.
47
48The fan speed is measured using a tachometer. Contrary to most chips which
49store the value in an 8-bit register and have a selectable clock divider
50to make sure that the result will fit in the register, the LM63 uses 16-bit
51value for measuring the speed of the fan. It can measure fan speeds down to
5283 RPM, at least in theory.
53
54Note that the pin used for fan monitoring is shared with an alert out
55function. Depending on how the board designer wanted to use the chip, fan
56speed monitoring will or will not be possible. The proper chip configuration
Jean Delvare409c0b52012-01-16 22:51:46 +010057is left to the BIOS, and the driver will blindly trust it. Only the original
58LM63 suffers from this limitation, the LM64 and LM96163 have separate pins
59for fan monitoring and alert out. On the LM64, monitoring is always enabled;
60on the LM96163 it can be disabled.
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000061
62A PWM output can be used to control the speed of the fan. The LM63 has two
63PWM 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
65supported either.
66
Guenter Roeck04738b22012-01-16 22:51:46 +010067The lm63 driver will not update its values more frequently than configured with
68the update_interval sysfs attribute; reading them more often will do no harm,
Jean Delvared216f682012-01-16 22:51:47 +010069but will return 'old' values. Values in the automatic fan control lookup table
70(attributes pwm1_auto_*) have their own independent lifetime of 5 seconds.
R.Marek@sh.cvut.cz7f15b662005-05-26 12:42:19 +000071
Matthew Garrett10f2ed32010-05-27 19:58:38 +020072The LM64 is effectively an LM63 with GPIO lines. The driver does not
73support these GPIO lines at present.
Guenter Roeck210961c2012-01-16 22:51:45 +010074
75The LM96163 is an enhanced version of LM63 with improved temperature accuracy
Guenter Roeckf496b2d2012-01-16 22:51:46 +010076and better PWM resolution. For LM96163, the external temperature sensor type is
77configurable as CPU embedded diode(1) or 3904 transistor(2).