cf583b4275
The dual tachometer feature is implemented in hardware with a TACHSEL input to indicate the rotor under measurement, and exposed on the device by extending the READ_FAN_SPEED_1 word with two extra bytes*. The need to read the non-standard four-byte response leads to a cut-down implementation of i2c_smbus_xfer_emulated() included in the driver. Further, to expose the second rotor tachometer value to userspace the values are exposed through virtual pages. We re-route accesses to FAN_CONFIG_1_2 and READ_FAN_SPEED_1 on pages 23-28 (not defined by the hardware) to the same registers on pages 0-5, and with the latter command we extract the value from the second word of the four-byte response. * The documentation recommends the slower rotor be associated with TACHSEL=0, which corresponds to the first word of the response. The TACHSEL=0 measurement is used by the controller's closed-loop fan management to judge target fan rate. Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
60 lines
2 KiB
Text
60 lines
2 KiB
Text
Kernel driver max31785
|
|
======================
|
|
|
|
Supported chips:
|
|
* Maxim MAX31785, MAX31785A
|
|
Prefix: 'max31785' or 'max31785a'
|
|
Addresses scanned: -
|
|
Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX31785.pdf
|
|
|
|
Author: Andrew Jeffery <andrew@aj.id.au>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The Maxim MAX31785 is a PMBus device providing closed-loop, multi-channel fan
|
|
management with temperature and remote voltage sensing. Various fan control
|
|
features are provided, including PWM frequency control, temperature hysteresis,
|
|
dual tachometer measurements, and fan health monitoring.
|
|
|
|
For dual-rotor configurations the MAX31785A exposes the second rotor tachometer
|
|
readings in attributes fan[5-8]_input. By contrast the MAX31785 only exposes
|
|
the slowest rotor measurement, and does so in the fan[1-4]_input attributes.
|
|
|
|
Usage Notes
|
|
-----------
|
|
|
|
This driver does not probe for PMBus devices. You will have to instantiate
|
|
devices explicitly.
|
|
|
|
Sysfs attributes
|
|
----------------
|
|
|
|
fan[1-4]_alarm Fan alarm.
|
|
fan[1-4]_fault Fan fault.
|
|
fan[1-8]_input Fan RPM. On the MAX31785A, inputs 5-8 correspond to the
|
|
second rotor of fans 1-4
|
|
fan[1-4]_target Fan input target
|
|
|
|
in[1-6]_crit Critical maximum output voltage
|
|
in[1-6]_crit_alarm Output voltage critical high alarm
|
|
in[1-6]_input Measured output voltage
|
|
in[1-6]_label "vout[18-23]"
|
|
in[1-6]_lcrit Critical minimum output voltage
|
|
in[1-6]_lcrit_alarm Output voltage critical low alarm
|
|
in[1-6]_max Maximum output voltage
|
|
in[1-6]_max_alarm Output voltage high alarm
|
|
in[1-6]_min Minimum output voltage
|
|
in[1-6]_min_alarm Output voltage low alarm
|
|
|
|
pwm[1-4] Fan target duty cycle (0..255)
|
|
pwm[1-4]_enable 0: Full-speed
|
|
1: Manual PWM control
|
|
2: Automatic PWM (tach-feedback RPM fan-control)
|
|
3: Automatic closed-loop (temp-feedback fan-control)
|
|
|
|
temp[1-11]_crit Critical high temperature
|
|
temp[1-11]_crit_alarm Chip temperature critical high alarm
|
|
temp[1-11]_input Measured temperature
|
|
temp[1-11]_max Maximum temperature
|
|
temp[1-11]_max_alarm Chip temperature high alarm
|