Commit | Line | Data |
---|---|---|
65afb4c8 VP |
1 | Kernel driver mlxreg-fan |
2 | ======================== | |
3 | ||
4 | Provides FAN control for the next Mellanox systems: | |
b04f2f7d MCC |
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 | ||
65afb4c8 VP |
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: | |
65afb4c8 | 19 | |
b04f2f7d MCC |
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. | |
65afb4c8 VP |
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 | ||
b04f2f7d MCC |
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 | ================= == =================================================== | |
65afb4c8 VP |
62 | |
63 | /sys files in thermal subsystem | |
64 | ------------------------------- | |
65 | ||
b04f2f7d MCC |
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 | ================= == ==================================================== |