|  | Kernel driver mlxreg-fan | 
|  | ======================== | 
|  |  | 
|  | Provides FAN control for the next Mellanox systems: | 
|  | QMB700, equipped with 40x200GbE InfiniBand ports; | 
|  | MSN3700, equipped with 32x200GbE or 16x400GbE Ethernet ports; | 
|  | MSN3410, equipped with 6x400GbE plus 48x50GbE Ethernet ports; | 
|  | MSN3800, equipped with 64x1000GbE Ethernet ports; | 
|  | These are the Top of the Rack systems, equipped with Mellanox switch | 
|  | board with Mellanox Quantum or Spectrume-2 devices. | 
|  | FAN controller is implemented by the programmable device logic. | 
|  |  | 
|  | The default registers offsets set within the programmable device is as | 
|  | following: | 
|  | - pwm1			0xe3 | 
|  | - fan1 (tacho1)		0xe4 | 
|  | - fan2 (tacho2)		0xe5 | 
|  | - fan3 (tacho3)		0xe6 | 
|  | - fan4 (tacho4)		0xe7 | 
|  | - fan5 (tacho5)		0xe8 | 
|  | - fan6 (tacho6)		0xe9 | 
|  | - fan7 (tacho7)		0xea | 
|  | - fan8 (tacho8)		0xeb | 
|  | - fan9 (tacho9)		0xec | 
|  | - fan10 (tacho10)	0xed | 
|  | - fan11 (tacho11)	0xee | 
|  | - fan12 (tacho12)	0xef | 
|  | This setup can be re-programmed with other registers. | 
|  |  | 
|  | Author: Vadim Pasternak <vadimp@mellanox.com> | 
|  |  | 
|  | Description | 
|  | ----------- | 
|  |  | 
|  | The driver implements a simple interface for driving a fan connected to | 
|  | a PWM output and tachometer inputs. | 
|  | This driver obtains PWM and tachometers registers location according to | 
|  | the system configuration and creates FAN/PWM hwmon objects and a cooling | 
|  | device. PWM and tachometers are sensed through the on-board programmable | 
|  | device, which exports its register map. This device could be attached to | 
|  | any bus type, for which register mapping is supported. | 
|  | Single instance is created with one PWM control, up to 12 tachometers and | 
|  | one cooling device. It could be as many instances as programmable device | 
|  | supports. | 
|  | The driver exposes the fan to the user space through the hwmon's and | 
|  | thermal's sysfs interfaces. | 
|  |  | 
|  | /sys files in hwmon subsystem | 
|  | ----------------------------- | 
|  |  | 
|  | fan[1-12]_fault - RO files for tachometers TACH1-TACH12 fault indication | 
|  | fan[1-12]_input - RO files for tachometers TACH1-TACH12 input (in RPM) | 
|  | pwm1		- RW file for fan[1-12] target duty cycle (0..255) | 
|  |  | 
|  | /sys files in thermal subsystem | 
|  | ------------------------------- | 
|  |  | 
|  | cur_state	- RW file for current cooling state of the cooling device | 
|  | (0..max_state) | 
|  | max_state	- RO file for maximum cooling state of the cooling device |