Ibrahim Tilki | 8e27c2f | 2022-09-10 20:19:43 +0300 | [diff] [blame] | 1 | .. SPDX-License-Identifier: GPL-2.0-or-later |
| 2 | |
| 3 | Kernel driver max31760 |
| 4 | ====================== |
| 5 | |
| 6 | Supported chips: |
| 7 | * Analog Devices MAX31760 |
| 8 | |
| 9 | Prefix: 'max31760' |
| 10 | |
| 11 | Addresses scanned: none |
| 12 | |
| 13 | Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX31760.pdf |
| 14 | |
| 15 | |
| 16 | Author: Ibrahim Tilki <Ibrahim.Tilki@analog.com> |
| 17 | |
| 18 | Description |
| 19 | ----------- |
| 20 | |
| 21 | The MAX31760 integrates temperature sensing along with precision PWM fan |
| 22 | control. It accurately measures its local die temperature and the remote |
| 23 | temperature of a discrete diode-connected transistor, such as a 2N3906, |
| 24 | or a thermal diode commonly found on CPUs, graphics processor units (GPUs), |
| 25 | and other ASICs. Multiple temperature thresholds, such as local |
| 26 | high/overtemperature (OT) and remote high/overtemperature, can be set by an |
| 27 | I2C-compatible interface. Fan speed is controlled based on the temperature |
| 28 | reading as an index to a 48-byte lookup table (LUT) containing |
| 29 | user-programmed PWM values. The flexible LUT-based architecture enables |
| 30 | the user to program a smooth nonlinear fan speed vs. temperature transfer |
| 31 | function to minimize acoustic fan noise. Two tachometer inputs allow |
| 32 | measuring the speeds of two fans independently. When the local or remote |
| 33 | OT threshold is exceeded, the SHDN pin is asserted low and can be used to |
| 34 | shut down the system. A dedicated ALERT pin reports that either a local or |
| 35 | remote high-temperature threshold has been exceeded. |
| 36 | |
| 37 | Temperature measurement range: from -55°C to 125°C |
| 38 | |
| 39 | Temperature Resolution: 11 Bits, ±0.125°C |
| 40 | |
| 41 | Please refer how to instantiate this driver: Documentation/i2c/instantiating-devices.rst |
| 42 | |
| 43 | Lookup table for auto fan control |
| 44 | --------------------------------- |
| 45 | |
| 46 | ========= ================================= |
| 47 | LUT Index Name |
| 48 | ========= ================================= |
| 49 | 1 PWM value for T < +18°C |
| 50 | 2 PWM value for +18°C ≤ T < +20°C |
| 51 | 3 PWM value for +20°C ≤ T < +22°C |
| 52 | ... ... |
| 53 | 47 PWM value for +108°C ≤ T < +110°C |
| 54 | 48 PWM value for T ≥ +110°C |
| 55 | ========= ================================= |
| 56 | |
| 57 | Sysfs entries |
| 58 | ------------- |
| 59 | |
| 60 | =============================== ================================================================================= |
| 61 | fan[1-2]_input Fan speed (in RPM) |
| 62 | fan[1-2]_enable Enable fan readings and fan fault alarms |
| 63 | fan[1-2]_fault Fan fault status |
| 64 | temp[1-2]_label "Remote" and "Local" temperature channel labels |
| 65 | temp[1-2]_input Temperature sensor readings (in millidegrees Celsius) |
| 66 | temp1_fault Remote temperature sensor fault status |
| 67 | temp[1-2]_max Temperature max value. Asserts "ALERT" pin when exceeded |
| 68 | temp[1-2]_max_alarm Temperature max alarm status |
| 69 | temp[1-2]_crit Temperature critical value. Asserts "SHDN" pin when exceeded |
| 70 | temp[1-2]_crit_alarm Temperature critical alarm status |
| 71 | pwm1 PWM value for direct fan control |
| 72 | pwm1_enable 1: direct fan control, 2: temperature based auto fan control |
| 73 | pwm1_freq PWM frequency in hertz |
| 74 | pwm1_auto_channels_temp Temperature source for auto fan control. 1: temp1, 2: temp2, 3: max(temp1, temp2) |
| 75 | pwm1_auto_point[1-48]_pwm PWM value for LUT point |
| 76 | pwm1_auto_point_temp_hyst Temperature hysteresis for auto fan control. Can be either 2000mC or 4000mC |
| 77 | =============================== ================================================================================= |