Commit f890c6a3 authored by Jean Delvare's avatar Jean Delvare

hwmon: (adt7475) New documentation

New documentation for the adt7475 driver, based on the adt7473 driver
documentation. It is IMHO much more useful that the previous
documentation which was essentially redundant with sysfs-interface.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Cc: "Mark M. Hoffman" <mhoffman@lightlink.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Jordan Crouse <jordan@cosmicpenguin.net>
Cc: "Darrick J. Wong" <djwong@us.ibm.com>
parent b180d050
This describes the interface for the ADT7475 driver: Kernel driver adt7475
=====================
(there are 4 fans, numbered fan1 to fan4):
Supported chips:
fanX_input Read the current speed of the fan (in RPMs) * Analog Devices ADT7473
fanX_min Read/write the minimum speed of the fan. Dropping Prefix: 'adt7473'
below this sets an alarm. Addresses scanned: I2C 0x2C, 0x2D, 0x2E
Datasheet: Publicly available at the On Semiconductors website
(there are three PWMs, numbered pwm1 to pwm3): * Analog Devices ADT7475
Prefix: 'adt7475'
pwmX Read/write the current duty cycle of the PWM. Writes Addresses scanned: I2C 0x2E
only have effect when auto mode is turned off (see Datasheet: Publicly available at the On Semiconductors website
below). Range is 0 - 255.
Authors:
pwmX_enable Fan speed control method: Jordan Crouse
Hans de Goede
0 - No control (fan at full speed) Darrick J. Wong (documentation)
1 - Manual fan speed control (using pwm[1-*])
2 - Automatic fan speed control
Description
pwmX_auto_channels_temp Select which channels affect this PWM -----------
1 - TEMP1 controls PWM This driver implements support for the Analog Devices ADT7473 and ADT7475
2 - TEMP2 controls PWM chip family. Both chips differ only in minor details. They will be
4 - TEMP3 controls PWM collectively designed by the name "ADT747x" in the rest of this document.
6 - TEMP2 and TEMP3 control PWM
7 - All three inputs control PWM The ADT747x uses the 2-wire interface compatible with the SMBus 2.0
specification. Using an analog to digital converter it measures three (3)
pwmX_freq Read/write the PWM frequency in Hz. The number temperatures and two (2) voltages. It has four (4) 16-bit counters for
should be one of the following: measuring fan speed. There are three (3) PWM outputs that can be used
to control fan speed.
11 Hz
14 Hz A sophisticated control system for the PWM outputs is designed into the
22 Hz ADT747x that allows fan speed to be adjusted automatically based on any of the
29 Hz three temperature sensors. Each PWM output is individually adjustable and
35 Hz programmable. Once configured, the ADT747x will adjust the PWM outputs in
44 Hz response to the measured temperatures without further host intervention.
58 Hz This feature can also be disabled for manual control of the PWM's.
88 Hz
Each of the measured inputs (voltage, temperature, fan speed) has
pwmX_auto_point1_pwm Read/write the minimum PWM duty cycle in automatic mode corresponding high/low limit values. The ADT747x will signal an ALARM if
any measured value exceeds either limit.
pwmX_auto_point2_pwm Read/write the maximum PWM duty cycle in automatic mode
The ADT747x samples all inputs continuously. The driver will not read
(there are three temperature settings numbered temp1 to temp3): the registers more often than once every other second. Further,
configuration data is only read once per minute.
tempX_input Read the current temperature. The value is in milli
degrees of Celsius. Special Features
----------------
tempX_max Read/write the upper temperature limit - exceeding this
will cause an alarm. The ADT747x has a 10-bit ADC and can therefore measure temperatures
with a resolution of 0.25 degree Celsius. Temperature readings can be
tempX_min Read/write the lower temperature limit - exceeding this configured either for two's complement format or "Offset 64" format,
will cause an alarm. wherein 64 is subtracted from the raw value to get the temperature value.
tempX_offset Read/write the temperature adjustment offset The datasheet is very detailed and describes a procedure for determining
an optimal configuration for the automatic PWM control.
tempX_crit Read/write the THERM limit for remote1.
Fan Speed Control
tempX_crit_hyst Set the temperature value below crit where the -----------------
fans will stay on - this helps drive the temperature
low enough so it doesn't stay near the edge and The driver exposes two trip points per PWM channel.
cause THERM to keep tripping.
point1: Set the PWM speed at the lower temperature bound
tempX_auto_point1_temp Read/write the minimum temperature where the fans will point2: Set the PWM speed at the higher temperature bound
turn on in automatic mode.
The ADT747x will scale the PWM linearly between the lower and higher PWM
tempX_auto_point2_temp Read/write the maximum temperature over which the fans speed when the temperature is between the two temperature boundaries.
will run in automatic mode. tempX_auto_point1_temp Temperature boundaries are associated to temperature channels rather than
and tempX_auto_point2_temp together define the PWM outputs, and a given PWM output can be controlled by several temperature
range of automatic control. channels. As a result, the ADT747x may compute more than one PWM value
for a channel at a given time, in which case the maximum value (fastest
tempX_alarm Read a 1 if the max/min alarm is set fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
tempX_fault Read a 1 if either temp1 or temp3 diode has a fault
Fan speed may be set to maximum when the temperature sensor associated with
(There are two voltage settings, in1 and in2): the PWM control exceeds temp#_max.
inX_input Read the current voltage on VCC. Value is in Notes
millivolts. -----
inX_min read/write the minimum voltage limit. The nVidia binary driver presents an ADT7473 chip via an on-card i2c bus.
Dropping below this causes an alarm. Unfortunately, they fail to set the i2c adapter class, so this driver may
fail to find the chip until the nvidia driver is patched.
inX_max read/write the maximum voltage limit.
Exceeding this causes an alarm.
inX_alarm Read a 1 if the max/min alarm is set.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment