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;

Author: Vadim Pasternak <vadimp@mellanox.com>

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.

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