cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

adt7475.rst (5272B)


      1Kernel driver adt7475
      2=====================
      3
      4Supported chips:
      5
      6  * Analog Devices ADT7473
      7
      8    Prefix: 'adt7473'
      9
     10    Addresses scanned: I2C 0x2C, 0x2D, 0x2E
     11
     12    Datasheet: Publicly available at the On Semiconductors website
     13
     14  * Analog Devices ADT7475
     15
     16    Prefix: 'adt7475'
     17
     18    Addresses scanned: I2C 0x2E
     19
     20    Datasheet: Publicly available at the On Semiconductors website
     21
     22  * Analog Devices ADT7476
     23
     24    Prefix: 'adt7476'
     25
     26    Addresses scanned: I2C 0x2C, 0x2D, 0x2E
     27
     28    Datasheet: Publicly available at the On Semiconductors website
     29
     30  * Analog Devices ADT7490
     31
     32    Prefix: 'adt7490'
     33
     34    Addresses scanned: I2C 0x2C, 0x2D, 0x2E
     35
     36    Datasheet: Publicly available at the On Semiconductors website
     37
     38Authors:
     39	- Jordan Crouse
     40	- Hans de Goede
     41	- Darrick J. Wong (documentation)
     42	- Jean Delvare
     43
     44
     45Description
     46-----------
     47
     48This driver implements support for the Analog Devices ADT7473, ADT7475,
     49ADT7476 and ADT7490 chip family. The ADT7473 and ADT7475 differ only in
     50minor details. The ADT7476 has additional features, including extra voltage
     51measurement inputs and VID support. The ADT7490 also has additional
     52features, including extra voltage measurement inputs and PECI support. All
     53the supported chips will be collectively designed by the name "ADT747x" in
     54the rest of this document.
     55
     56The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
     57specification. Using an analog to digital converter it measures three (3)
     58temperatures and two (2) or more voltages. It has four (4) 16-bit counters
     59for measuring fan speed. There are three (3) PWM outputs that can be used
     60to control fan speed.
     61
     62A sophisticated control system for the PWM outputs is designed into the
     63ADT747x that allows fan speed to be adjusted automatically based on any of the
     64three temperature sensors. Each PWM output is individually adjustable and
     65programmable. Once configured, the ADT747x will adjust the PWM outputs in
     66response to the measured temperatures without further host intervention.
     67This feature can also be disabled for manual control of the PWM's.
     68
     69Each of the measured inputs (voltage, temperature, fan speed) has
     70corresponding high/low limit values. The ADT747x will signal an ALARM if
     71any measured value exceeds either limit.
     72
     73The ADT747x samples all inputs continuously. The driver will not read
     74the registers more often than once every other second. Further,
     75configuration data is only read once per minute.
     76
     77Chip Differences Summary
     78------------------------
     79
     80ADT7473:
     81  * 2 voltage inputs
     82  * system acoustics optimizations (not implemented)
     83
     84ADT7475:
     85  * 2 voltage inputs
     86
     87ADT7476:
     88  * 5 voltage inputs
     89  * VID support
     90
     91ADT7490:
     92  * 6 voltage inputs
     93  * 1 Imon input (not implemented)
     94  * PECI support (not implemented)
     95  * 2 GPIO pins (not implemented)
     96  * system acoustics optimizations (not implemented)
     97
     98Sysfs Mapping
     99-------------
    100
    101==== =========== =========== ========= ==========
    102in   ADT7490     ADT7476     ADT7475   ADT7473
    103==== =========== =========== ========= ==========
    104in0  2.5VIN (22) 2.5VIN (22) -         -
    105in1  VCCP   (23) VCCP   (23) VCCP (14) VCCP (14)
    106in2  VCC    (4)  VCC    (4)  VCC  (4)  VCC  (3)
    107in3  5VIN   (20) 5VIN   (20)
    108in4  12VIN  (21) 12VIN  (21)
    109in5  VTT    (8)
    110==== =========== =========== ========= ==========
    111
    112Special Features
    113----------------
    114
    115The ADT747x has a 10-bit ADC and can therefore measure temperatures
    116with a resolution of 0.25 degree Celsius. Temperature readings can be
    117configured either for two's complement format or "Offset 64" format,
    118wherein 64 is subtracted from the raw value to get the temperature value.
    119
    120The datasheet is very detailed and describes a procedure for determining
    121an optimal configuration for the automatic PWM control.
    122
    123Fan Speed Control
    124-----------------
    125
    126The driver exposes two trip points per PWM channel.
    127
    128- point1: Set the PWM speed at the lower temperature bound
    129- point2: Set the PWM speed at the higher temperature bound
    130
    131The ADT747x will scale the PWM linearly between the lower and higher PWM
    132speed when the temperature is between the two temperature boundaries.
    133Temperature boundaries are associated to temperature channels rather than
    134PWM outputs, and a given PWM output can be controlled by several temperature
    135channels. As a result, the ADT747x may compute more than one PWM value
    136for a channel at a given time, in which case the maximum value (fastest
    137fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
    138
    139Fan speed may be set to maximum when the temperature sensor associated with
    140the PWM control exceeds temp#_max.
    141
    142At Tmin - hysteresis the PWM output can either be off (0% duty cycle) or at the
    143minimum (i.e. auto_point1_pwm). This behaviour can be configured using the
    144`pwm[1-*]_stall_disable sysfs attribute`. A value of 0 means the fans will shut
    145off. A value of 1 means the fans will run at auto_point1_pwm.
    146
    147The responsiveness of the ADT747x to temperature changes can be configured.
    148This allows smoothing of the fan speed transition. To set the transition time
    149set the value in ms in the `temp[1-*]_smoothing` sysfs attribute.
    150
    151Notes
    152-----
    153
    154The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
    155Unfortunately, they fail to set the i2c adapter class, so this driver may
    156fail to find the chip until the nvidia driver is patched.