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