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