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