forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
hwmon: (mlxreg-fan) Add support for Mellanox FAN driver
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 controlled 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. Currently driver will be activated from the Mellanox platform driver: drivers/platform/x86/mlx-platform.c. For the future ARM based systems it could be activated from the ARM platform module. Signed-off-by: Vadim Pasternak <[email protected]> Signed-off-by: Guenter Roeck <[email protected]>
- Loading branch information
1 parent
ffb3243
commit 65afb4c
Showing
4 changed files
with
562 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
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 <[email protected]> | ||
|
||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.