hwmon: Add driver for NZXT Kraken X and Z series AIO CPU coolers
This driver enables hardware monitoring support for NZXT Kraken X53/X63/X73 and Z53/Z63/Z73 all-in-one CPU liquid coolers. All models expose liquid temperature and pump speed (in RPM), as well as PWM control (natively only through a temp-PWM curve, but the driver also emulates fixed PWM control on top of that). The Z-series models additionally expose the speed and duty of an optionally connected fan, with the same PWM control capabilities. Pump and fan duty control mode can be set through pwm[1-2]_enable, where 1 is for the manual control mode and 2 is for the liquid temp to PWM curve mode. Writing a 0 disables control of the channel through the driver after setting its duty to 100%. As it is not possible to query the device for the active mode, the driver keeps track of it. The temperature of the curves relates to the fixed [20-59] C range, per device limitations, and correlating to the detected liquid temperature. Only PWM values (ranging from 0-255) can be set. The addressable RGB LEDs and LCD screen, included only on Z-series models, are not supported in this driver. Co-developed-by: Jonas Malaco <jonas@protocubo.io> Signed-off-by: Jonas Malaco <jonas@protocubo.io> Co-developed-by: Yury Zhuravlev <stalkerg@gmail.com> Signed-off-by: Yury Zhuravlev <stalkerg@gmail.com> Signed-off-by: Aleksa Savic <savicaleksa83@gmail.com> Link: https://lore.kernel.org/r/20240129111932.368232-1-savicaleksa83@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
684a28759f
commit
f3b4b146eb
@ -174,6 +174,7 @@ Hardware Monitoring Kernel Drivers
|
||||
nsa320
|
||||
ntc_thermistor
|
||||
nzxt-kraken2
|
||||
nzxt-kraken3
|
||||
nzxt-smart2
|
||||
occ
|
||||
oxp-sensors
|
||||
|
74
Documentation/hwmon/nzxt-kraken3.rst
Normal file
74
Documentation/hwmon/nzxt-kraken3.rst
Normal file
@ -0,0 +1,74 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
Kernel driver nzxt-kraken3
|
||||
==========================
|
||||
|
||||
Supported devices:
|
||||
|
||||
* NZXT Kraken X53
|
||||
* NZXT Kraken X63
|
||||
* NZXT Kraken X73
|
||||
* NZXT Kraken Z53
|
||||
* NZXT Kraken Z63
|
||||
* NZXT Kraken Z73
|
||||
|
||||
Author: Jonas Malaco, Aleksa Savic
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver enables hardware monitoring support for NZXT Kraken X53/X63/X73 and
|
||||
Z53/Z63/Z73 all-in-one CPU liquid coolers. All models expose liquid temperature
|
||||
and pump speed (in RPM), as well as PWM control (either as a fixed value
|
||||
or through a temp-PWM curve). The Z-series models additionally expose the speed
|
||||
and duty of an optionally connected fan, with the same PWM control capabilities.
|
||||
|
||||
Pump and fan duty control mode can be set through pwm[1-2]_enable, where 1 is
|
||||
for the manual control mode and 2 is for the liquid temp to PWM curve mode.
|
||||
Writing a 0 disables control of the channel through the driver after setting its
|
||||
duty to 100%.
|
||||
|
||||
The temperature of the curves relates to the fixed [20-59] range, correlating to
|
||||
the detected liquid temperature. Only PWM values (ranging from 0-255) can be set.
|
||||
If in curve mode, setting point values should be done in moderation - the devices
|
||||
require complete curves to be sent for each change; they can lock up or discard
|
||||
the changes if they are too numerous at once. Suggestion is to set them while
|
||||
in an another mode, and then apply them by switching to curve.
|
||||
|
||||
The devices can report if they are faulty. The driver supports that situation
|
||||
and will issue a warning. This can also happen when the USB cable is connected,
|
||||
but SATA power is not.
|
||||
|
||||
The addressable RGB LEDs and LCD screen (only on Z-series models) are not
|
||||
supported in this driver, but can be controlled through existing userspace tools,
|
||||
such as `liquidctl`_.
|
||||
|
||||
.. _liquidctl: https://github.com/liquidctl/liquidctl
|
||||
|
||||
Usage Notes
|
||||
-----------
|
||||
|
||||
As these are USB HIDs, the driver can be loaded automatically by the kernel and
|
||||
supports hot swapping.
|
||||
|
||||
Possible pwm_enable values are:
|
||||
|
||||
====== ==========================================================================
|
||||
0 Set fan to 100%
|
||||
1 Direct PWM mode (applies value in corresponding PWM entry)
|
||||
2 Curve control mode (applies the temp-PWM duty curve based on coolant temp)
|
||||
====== ==========================================================================
|
||||
|
||||
Sysfs entries
|
||||
-------------
|
||||
|
||||
============================== ================================================================
|
||||
fan1_input Pump speed (in rpm)
|
||||
fan2_input Fan speed (in rpm)
|
||||
temp1_input Coolant temperature (in millidegrees Celsius)
|
||||
pwm1 Pump duty (value between 0-255)
|
||||
pwm1_enable Pump duty control mode (0: disabled, 1: manual, 2: curve)
|
||||
pwm2 Fan duty (value between 0-255)
|
||||
pwm2_enable Fan duty control mode (0: disabled, 1: manual, 2: curve)
|
||||
temp[1-2]_auto_point[1-40]_pwm Temp-PWM duty curves (for pump and fan), related to coolant temp
|
||||
============================== ================================================================
|
@ -15840,6 +15840,14 @@ S: Maintained
|
||||
F: Documentation/hwmon/nzxt-kraken2.rst
|
||||
F: drivers/hwmon/nzxt-kraken2.c
|
||||
|
||||
NZXT-KRAKEN3 HARDWARE MONITORING DRIVER
|
||||
M: Jonas Malaco <jonas@protocubo.io>
|
||||
M: Aleksa Savic <savicaleksa83@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/nzxt-kraken3.rst
|
||||
F: drivers/hwmon/nzxt-kraken3.c
|
||||
|
||||
NZXT-SMART2 HARDWARE MONITORING DRIVER
|
||||
M: Aleksandr Mezin <mezin.alexander@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
|
@ -1695,6 +1695,16 @@ config SENSORS_NZXT_KRAKEN2
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called nzxt-kraken2.
|
||||
|
||||
config SENSORS_NZXT_KRAKEN3
|
||||
tristate "NZXT Kraken X53/X63/X73, Z53/Z63/Z73 coolers"
|
||||
depends on USB_HID
|
||||
help
|
||||
If you say yes here you get support for hardware monitoring for the
|
||||
NZXT Kraken X53/X63/X73, Z53/Z63/Z73 all-in-one CPU liquid coolers.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called nzxt-kraken3.
|
||||
|
||||
config SENSORS_NZXT_SMART2
|
||||
tristate "NZXT RGB & Fan Controller/Smart Device v2"
|
||||
depends on USB_HID
|
||||
|
@ -175,6 +175,7 @@ obj-$(CONFIG_SENSORS_NPCM7XX) += npcm750-pwm-fan.o
|
||||
obj-$(CONFIG_SENSORS_NSA320) += nsa320-hwmon.o
|
||||
obj-$(CONFIG_SENSORS_NTC_THERMISTOR) += ntc_thermistor.o
|
||||
obj-$(CONFIG_SENSORS_NZXT_KRAKEN2) += nzxt-kraken2.o
|
||||
obj-$(CONFIG_SENSORS_NZXT_KRAKEN3) += nzxt-kraken3.o
|
||||
obj-$(CONFIG_SENSORS_NZXT_SMART2) += nzxt-smart2.o
|
||||
obj-$(CONFIG_SENSORS_OXP) += oxp-sensors.o
|
||||
obj-$(CONFIG_SENSORS_PC87360) += pc87360.o
|
||||
|
1008
drivers/hwmon/nzxt-kraken3.c
Normal file
1008
drivers/hwmon/nzxt-kraken3.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user