mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
8e27c2fd61
Adding documentation for max31760 fan speed controller Signed-off-by: Ibrahim Tilki <Ibrahim.Tilki@analog.com> Link: https://lore.kernel.org/r/20220910171945.48088-3-Ibrahim.Tilki@analog.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
78 lines
3.4 KiB
ReStructuredText
78 lines
3.4 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
Kernel driver max31760
|
|
======================
|
|
|
|
Supported chips:
|
|
* Analog Devices MAX31760
|
|
|
|
Prefix: 'max31760'
|
|
|
|
Addresses scanned: none
|
|
|
|
Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX31760.pdf
|
|
|
|
|
|
Author: Ibrahim Tilki <Ibrahim.Tilki@analog.com>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The MAX31760 integrates temperature sensing along with precision PWM fan
|
|
control. It accurately measures its local die temperature and the remote
|
|
temperature of a discrete diode-connected transistor, such as a 2N3906,
|
|
or a thermal diode commonly found on CPUs, graphics processor units (GPUs),
|
|
and other ASICs. Multiple temperature thresholds, such as local
|
|
high/overtemperature (OT) and remote high/overtemperature, can be set by an
|
|
I2C-compatible interface. Fan speed is controlled based on the temperature
|
|
reading as an index to a 48-byte lookup table (LUT) containing
|
|
user-programmed PWM values. The flexible LUT-based architecture enables
|
|
the user to program a smooth nonlinear fan speed vs. temperature transfer
|
|
function to minimize acoustic fan noise. Two tachometer inputs allow
|
|
measuring the speeds of two fans independently. When the local or remote
|
|
OT threshold is exceeded, the SHDN pin is asserted low and can be used to
|
|
shut down the system. A dedicated ALERT pin reports that either a local or
|
|
remote high-temperature threshold has been exceeded.
|
|
|
|
Temperature measurement range: from -55°C to 125°C
|
|
|
|
Temperature Resolution: 11 Bits, ±0.125°C
|
|
|
|
Please refer how to instantiate this driver: Documentation/i2c/instantiating-devices.rst
|
|
|
|
Lookup table for auto fan control
|
|
---------------------------------
|
|
|
|
========= =================================
|
|
LUT Index Name
|
|
========= =================================
|
|
1 PWM value for T < +18°C
|
|
2 PWM value for +18°C ≤ T < +20°C
|
|
3 PWM value for +20°C ≤ T < +22°C
|
|
... ...
|
|
47 PWM value for +108°C ≤ T < +110°C
|
|
48 PWM value for T ≥ +110°C
|
|
========= =================================
|
|
|
|
Sysfs entries
|
|
-------------
|
|
|
|
=============================== =================================================================================
|
|
fan[1-2]_input Fan speed (in RPM)
|
|
fan[1-2]_enable Enable fan readings and fan fault alarms
|
|
fan[1-2]_fault Fan fault status
|
|
temp[1-2]_label "Remote" and "Local" temperature channel labels
|
|
temp[1-2]_input Temperature sensor readings (in millidegrees Celsius)
|
|
temp1_fault Remote temperature sensor fault status
|
|
temp[1-2]_max Temperature max value. Asserts "ALERT" pin when exceeded
|
|
temp[1-2]_max_alarm Temperature max alarm status
|
|
temp[1-2]_crit Temperature critical value. Asserts "SHDN" pin when exceeded
|
|
temp[1-2]_crit_alarm Temperature critical alarm status
|
|
pwm1 PWM value for direct fan control
|
|
pwm1_enable 1: direct fan control, 2: temperature based auto fan control
|
|
pwm1_freq PWM frequency in hertz
|
|
pwm1_auto_channels_temp Temperature source for auto fan control. 1: temp1, 2: temp2, 3: max(temp1, temp2)
|
|
pwm1_auto_point[1-48]_pwm PWM value for LUT point
|
|
pwm1_auto_point_temp_hyst Temperature hysteresis for auto fan control. Can be either 2000mC or 4000mC
|
|
=============================== =================================================================================
|