0001 Kernel driver mlxreg-fan
0002 ========================
0003
0004 Provides FAN control for the next Mellanox systems:
0005
0006 - QMB700, equipped with 40x200GbE InfiniBand ports;
0007 - MSN3700, equipped with 32x200GbE or 16x400GbE Ethernet ports;
0008 - MSN3410, equipped with 6x400GbE plus 48x50GbE Ethernet ports;
0009 - MSN3800, equipped with 64x1000GbE Ethernet ports;
0010
0011 Author: Vadim Pasternak <vadimp@mellanox.com>
0012
0013 These are the Top of the Rack systems, equipped with Mellanox switch
0014 board with Mellanox Quantum or Spectrume-2 devices.
0015 FAN controller is implemented by the programmable device logic.
0016
0017 The default registers offsets set within the programmable device is as
0018 following:
0019
0020 ======================= ====
0021 pwm1 0xe3
0022 fan1 (tacho1) 0xe4
0023 fan2 (tacho2) 0xe5
0024 fan3 (tacho3) 0xe6
0025 fan4 (tacho4) 0xe7
0026 fan5 (tacho5) 0xe8
0027 fan6 (tacho6) 0xe9
0028 fan7 (tacho7) 0xea
0029 fan8 (tacho8) 0xeb
0030 fan9 (tacho9) 0xec
0031 fan10 (tacho10) 0xed
0032 fan11 (tacho11) 0xee
0033 fan12 (tacho12) 0xef
0034 ======================= ====
0035
0036 This setup can be re-programmed with other registers.
0037
0038 Description
0039 -----------
0040
0041 The driver implements a simple interface for driving a fan connected to
0042 a PWM output and tachometer inputs.
0043 This driver obtains PWM and tachometers registers location according to
0044 the system configuration and creates FAN/PWM hwmon objects and a cooling
0045 device. PWM and tachometers are sensed through the on-board programmable
0046 device, which exports its register map. This device could be attached to
0047 any bus type, for which register mapping is supported.
0048 Single instance is created with one PWM control, up to 12 tachometers and
0049 one cooling device. It could be as many instances as programmable device
0050 supports.
0051 The driver exposes the fan to the user space through the hwmon's and
0052 thermal's sysfs interfaces.
0053
0054 /sys files in hwmon subsystem
0055 -----------------------------
0056
0057 ================= == ===================================================
0058 fan[1-12]_fault RO files for tachometers TACH1-TACH12 fault indication
0059 fan[1-12]_input RO files for tachometers TACH1-TACH12 input (in RPM)
0060 pwm1 RW file for fan[1-12] target duty cycle (0..255)
0061 ================= == ===================================================
0062
0063 /sys files in thermal subsystem
0064 -------------------------------
0065
0066 ================= == ====================================================
0067 cur_state RW file for current cooling state of the cooling device
0068 (0..max_state)
0069 max_state RO file for maximum cooling state of the cooling device
0070 ================= == ====================================================