1Kernel driver mlxreg-fan 2======================== 3 4Provides FAN control for the next Mellanox systems: 5QMB700, equipped with 40x200GbE InfiniBand ports; 6MSN3700, equipped with 32x200GbE or 16x400GbE Ethernet ports; 7MSN3410, equipped with 6x400GbE plus 48x50GbE Ethernet ports; 8MSN3800, equipped with 64x1000GbE Ethernet ports; 9These are the Top of the Rack systems, equipped with Mellanox switch 10board with Mellanox Quantum or Spectrume-2 devices. 11FAN controller is implemented by the programmable device logic. 12 13The default registers offsets set within the programmable device is as 14following: 15- pwm1 0xe3 16- fan1 (tacho1) 0xe4 17- fan2 (tacho2) 0xe5 18- fan3 (tacho3) 0xe6 19- fan4 (tacho4) 0xe7 20- fan5 (tacho5) 0xe8 21- fan6 (tacho6) 0xe9 22- fan7 (tacho7) 0xea 23- fan8 (tacho8) 0xeb 24- fan9 (tacho9) 0xec 25- fan10 (tacho10) 0xed 26- fan11 (tacho11) 0xee 27- fan12 (tacho12) 0xef 28This setup can be re-programmed with other registers. 29 30Author: Vadim Pasternak <vadimp@mellanox.com> 31 32Description 33----------- 34 35The driver implements a simple interface for driving a fan connected to 36a PWM output and tachometer inputs. 37This driver obtains PWM and tachometers registers location according to 38the system configuration and creates FAN/PWM hwmon objects and a cooling 39device. PWM and tachometers are sensed through the on-board programmable 40device, which exports its register map. This device could be attached to 41any bus type, for which register mapping is supported. 42Single instance is created with one PWM control, up to 12 tachometers and 43one cooling device. It could be as many instances as programmable device 44supports. 45The driver exposes the fan to the user space through the hwmon's and 46thermal's sysfs interfaces. 47 48/sys files in hwmon subsystem 49----------------------------- 50 51fan[1-12]_fault - RO files for tachometers TACH1-TACH12 fault indication 52fan[1-12]_input - RO files for tachometers TACH1-TACH12 input (in RPM) 53pwm1 - RW file for fan[1-12] target duty cycle (0..255) 54 55/sys files in thermal subsystem 56------------------------------- 57 58cur_state - RW file for current cooling state of the cooling device 59 (0..max_state) 60max_state - RO file for maximum cooling state of the cooling device 61