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. 157