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