Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) Kernel driver lm85
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) ==================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) Supported chips:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)   * National Semiconductor LM85 (B and C versions)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8)     Prefix: 'lm85b' or 'lm85c'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)     Datasheet: http://www.national.com/pf/LM/LM85.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)   * Texas Instruments LM96000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)     Prefix: 'lm9600'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20)     Datasheet: https://www.ti.com/lit/ds/symlink/lm96000.pdf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22)   * Analog Devices ADM1027
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24)     Prefix: 'adm1027'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28)     Datasheet: https://www.onsemi.com/PowerSolutions/product.do?id=ADM1027
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30)   * Analog Devices ADT7463
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32)     Prefix: 'adt7463'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36)     Datasheet: https://www.onsemi.com/PowerSolutions/product.do?id=ADT7463
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38)   * Analog Devices ADT7468
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40)     Prefix: 'adt7468'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44)     Datasheet: https://www.onsemi.com/PowerSolutions/product.do?id=ADT7468
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)   * SMSC EMC6D100, SMSC EMC6D101
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)     Prefix: 'emc6d100'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52)     Datasheet: http://www.smsc.com/media/Downloads_Public/discontinued/6d100.pdf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54)   * SMSC EMC6D102
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56)     Prefix: 'emc6d102'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60)     Datasheet: http://www.smsc.com/main/catalog/emc6d102.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62)   * SMSC EMC6D103
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64)     Prefix: 'emc6d103'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68)     Datasheet: http://www.smsc.com/main/catalog/emc6d103.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70)   * SMSC EMC6D103S
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72)     Prefix: 'emc6d103s'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74)     Addresses scanned: I2C 0x2c, 0x2d, 0x2e
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76)     Datasheet: http://www.smsc.com/main/catalog/emc6d103s.html
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) Authors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79)        - Philip Pokorny <ppokorny@penguincomputing.com>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)        - Frodo Looijaard <frodol@dds.nl>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)        - Richard Barrington <rich_b_nz@clear.net.nz>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82)        - Margit Schubert-While <margitsw@t-online.de>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)        - Justin Thiessen <jthiessen@penguincomputing.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) Description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) This driver implements support for the National Semiconductor LM85 and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) compatible chips including the Analog Devices ADM1027, ADT7463, ADT7468 and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) SMSC EMC6D10x chips family.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) The LM85 uses the 2-wire interface compatible with the SMBUS 2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) specification. Using an analog to digital converter it measures three (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) temperatures and five (5) voltages. It has four (4) 16-bit counters for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) measuring fan speed. Five (5) digital inputs are provided for sampling the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) VID signals from the processor to the VRM. Lastly, there are three (3) PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) outputs that can be used to control fan speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) The voltage inputs have internal scaling resistors so that the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) voltage can be measured without external resistors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)   2.5V, 3.3V, 5V, 12V, and CPU core voltage (2.25V)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) The temperatures measured are one internal diode, and two remote diodes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) Remote 1 is generally the CPU temperature. These inputs are designed to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) measure a thermal diode like the one in a Pentium 4 processor in a socket
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 423 or socket 478 package. They can also measure temperature using a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) transistor like the 2N3904.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) A sophisticated control system for the PWM outputs is designed into the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) LM85 that allows fan speed to be adjusted automatically based on any of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) three temperature sensors. Each PWM output is individually adjustable and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) programmable. Once configured, the LM85 will adjust the PWM outputs in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) response to the measured temperatures without further host intervention.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) This feature can also be disabled for manual control of the PWM's.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) Each of the measured inputs (voltage, temperature, fan speed) has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) corresponding high/low limit values. The LM85 will signal an ALARM if any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) measured value exceeds either limit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) The LM85 samples all inputs continuously. The lm85 driver will not read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) the registers more often than once a second. Further, configuration data is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) only read once each 5 minutes. There is twice as much config data as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) measurements, so this would seem to be a worthwhile optimization.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) Special Features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) ----------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) The LM85 has four fan speed monitoring modes. The ADM1027 has only two.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) Both have special circuitry to compensate for PWM interactions with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) TACH signal from the fans. The ADM1027 can be configured to measure the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) speed of a two wire fan, but the input conditioning circuitry is different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) for 3-wire and 2-wire mode. For this reason, the 2-wire fan modes are not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) exposed to user control. The BIOS should initialize them to the correct
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) mode. If you've designed your own ADM1027, you'll have to modify the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) init_client function and add an insmod parameter to set this up.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) To smooth the response of fans to changes in temperature, the LM85 has an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) optional filter for smoothing temperatures. The ADM1027 has the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) config option but uses it to rate limit the changes to fan speed instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) The ADM1027, ADT7463 and ADT7468 have a 10-bit ADC and can therefore
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) measure temperatures with 0.25 degC resolution. They also provide an offset
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) to the temperature readings that is automatically applied during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) measurement. This offset can be used to zero out any errors due to traces
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) and placement. The documentation says that the offset is in 0.25 degC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) steps, but in initial testing of the ADM1027 it was 1.00 degC steps. Analog
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) Devices has confirmed this "bug". The ADT7463 is reported to work as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) described in the documentation. The current lm85 driver does not show the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) offset register.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) The ADT7468 has a high-frequency PWM mode, where all PWM outputs are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) driven by a 22.5 kHz clock. This is a global mode, not per-PWM output,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) which means that setting any PWM frequency above 11.3 kHz will switch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) all 3 PWM outputs to a 22.5 kHz frequency. Conversely, setting any PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) frequency below 11.3 kHz will switch all 3 PWM outputs to a frequency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) between 10 and 100 Hz, which can then be tuned separately.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) See the vendor datasheets for more information. There is application note
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) from National (AN-1260) with some additional information about the LM85.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) The Analog Devices datasheet is very detailed and describes a procedure for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) determining an optimal configuration for the automatic PWM control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) The SMSC EMC6D100 & EMC6D101 monitor external voltages, temperatures, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) fan speeds. They use this monitoring capability to alert the system to out
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) of limit conditions and can automatically control the speeds of multiple
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) fans in a PC or embedded system. The EMC6D101, available in a 24-pin SSOP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) package, and the EMC6D100, available in a 28-pin SSOP package, are designed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) to be register compatible. The EMC6D100 offers all the features of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) EMC6D101 plus additional voltage monitoring and system control features.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) Unfortunately it is not possible to distinguish between the package
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) versions on register level so these additional voltage inputs may read
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) zero. EMC6D102 and EMC6D103 feature additional ADC bits thus extending precision
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) of voltage and temperature channels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) SMSC EMC6D103S is similar to EMC6D103, but does not support pwm#_auto_pwm_minctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) and temp#_auto_temp_off.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) The LM96000 supports additional high frequency PWM modes (22.5 kHz, 24 kHz,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 25.7 kHz, 27.7 kHz and 30 kHz), which can be configured on a per-PWM basis.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) Hardware Configurations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) -----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) The LM85 can be jumpered for 3 different SMBus addresses. There are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) no other hardware configuration options for the LM85.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) The lm85 driver detects both LM85B and LM85C revisions of the chip. See the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) datasheet for a complete description of the differences. Other than
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) identifying the chip, the driver behaves no differently with regard to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) these two chips. The LM85B is recommended for new designs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) The ADM1027, ADT7463 and ADT7468 chips have an optional SMBALERT output
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) that can be used to signal the chipset in case a limit is exceeded or the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) temperature sensors fail. Individual sensor interrupts can be masked so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) they won't trigger SMBALERT. The SMBALERT output if configured replaces one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) of the other functions (PWM2 or IN0). This functionality is not implemented
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) in current driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) The ADT7463 and ADT7468 also have an optional THERM output/input which can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) be connected to the processor PROC_HOT output. If available, the autofan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) control dynamic Tmin feature can be enabled to keep the system temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) within spec (just?!) with the least possible fan noise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) Configuration Notes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) -------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) Besides standard interfaces driver adds following:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) * Temperatures and Zones
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) Each temperature sensor is associated with a Zone. There are three
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) sensors and therefore three zones (# 1, 2 and 3). Each zone has the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) temperature configuration points:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) * temp#_auto_temp_off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 	- temperature below which fans should be off or spinning very low.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) * temp#_auto_temp_min
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	- temperature over which fans start to spin.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) * temp#_auto_temp_max
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	- temperature when fans spin at full speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) * temp#_auto_temp_crit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 	- temperature when all fans will run full speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) PWM Control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) ^^^^^^^^^^^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) There are three PWM outputs. The LM85 datasheet suggests that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) pwm3 output control both fan3 and fan4. Each PWM can be individually
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) configured and assigned to a zone for its control value. Each PWM can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) configured individually according to the following options.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) * pwm#_auto_pwm_min
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 	- this specifies the PWM value for temp#_auto_temp_off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 	  temperature. (PWM value from 0 to 255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) * pwm#_auto_pwm_minctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 	- this flags selects for temp#_auto_temp_off temperature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 	  the behaviour of fans. Write 1 to let fans spinning at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 	  pwm#_auto_pwm_min or write 0 to let them off.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 	It has been reported that there is a bug in the LM85 that causes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 	the flag to be associated with the zones not the PWMs. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 	contradicts all the published documentation. Setting pwm#_min_ctl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 	in this case actually affects all PWMs controlled by zone '#'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) PWM Controlling Zone selection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) * pwm#_auto_channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	- controls zone that is associated with PWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) Configuration choices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) ========== =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) Value      Meaning
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) ========== =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)       1    Controlled by Zone 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)       2    Controlled by Zone 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262)       3    Controlled by Zone 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263)      23    Controlled by higher temp of Zone 2 or 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)     123    Controlled by highest temp of Zone 1, 2 or 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)       0    PWM always 0%  (off)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266)      -1    PWM always 100%  (full on)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267)      -2    Manual control (write to 'pwm#' to set)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) ========== =============================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) The National LM85's have two vendor specific configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) features. Tach. mode and Spinup Control. For more details on these,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) see the LM85 datasheet or Application Note AN-1260. These features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) are not currently supported by the lm85 driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) The Analog Devices ADM1027 has several vendor specific enhancements.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) The number of pulses-per-rev of the fans can be set, Tach monitoring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) can be optimized for PWM operation, and an offset can be applied to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) the temperatures to compensate for systemic errors in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) measurements. These features are not currently supported by the lm85
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) In addition to the ADM1027 features, the ADT7463 and ADT7468 also have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) Tmin control and THERM asserted counts. Automatic Tmin control acts to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) adjust the Tmin value to maintain the measured temperature sensor at a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) specified temperature. There isn't much documentation on this feature in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) the ADT7463 data sheet. This is not supported by current driver.