.. 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 <[email protected]>
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
=============================== =================================================================================