xref: /linux/Documentation/hwmon/nzxt-smart2.rst (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1*53e68c20SAleksandr Mezin.. SPDX-License-Identifier: GPL-2.0-or-later
2*53e68c20SAleksandr Mezin
3*53e68c20SAleksandr MezinKernel driver nzxt-smart2
4*53e68c20SAleksandr Mezin=========================
5*53e68c20SAleksandr Mezin
6*53e68c20SAleksandr MezinSupported devices:
7*53e68c20SAleksandr Mezin
8*53e68c20SAleksandr Mezin- NZXT RGB & Fan controller
9*53e68c20SAleksandr Mezin- NZXT Smart Device v2
10*53e68c20SAleksandr Mezin
11*53e68c20SAleksandr MezinDescription
12*53e68c20SAleksandr Mezin-----------
13*53e68c20SAleksandr Mezin
14*53e68c20SAleksandr MezinThis driver implements monitoring and control of fans plugged into the device.
15*53e68c20SAleksandr MezinBesides typical speed monitoring and PWM duty cycle control, voltage and current
16*53e68c20SAleksandr Mezinis reported for every fan.
17*53e68c20SAleksandr Mezin
18*53e68c20SAleksandr MezinThe device also has two connectors for RGB LEDs; support for them isn't
19*53e68c20SAleksandr Mezinimplemented (mainly because there is no standardized sysfs interface).
20*53e68c20SAleksandr Mezin
21*53e68c20SAleksandr MezinAlso, the device has a noise sensor, but the sensor seems to be completely
22*53e68c20SAleksandr Mezinuseless (and very imprecise), so support for it isn't implemented too.
23*53e68c20SAleksandr Mezin
24*53e68c20SAleksandr MezinUsage Notes
25*53e68c20SAleksandr Mezin-----------
26*53e68c20SAleksandr Mezin
27*53e68c20SAleksandr MezinThe device should be autodetected, and the driver should load automatically.
28*53e68c20SAleksandr Mezin
29*53e68c20SAleksandr MezinIf fans are plugged in/unplugged while the system is powered on, the driver
30*53e68c20SAleksandr Mezinmust be reloaded to detect configuration changes; otherwise, new fans can't
31*53e68c20SAleksandr Mezinbe controlled (`pwm*` changes will be ignored). It is necessary because the
32*53e68c20SAleksandr Mezindevice has a dedicated "detect fans" command, and currently, it is executed only
33*53e68c20SAleksandr Mezinduring initialization. Speed, voltage, current monitoring will work even without
34*53e68c20SAleksandr Mezinreload. As an alternative to reloading the module, a userspace tool (like
35*53e68c20SAleksandr Mezin`liquidctl`_) can be used to run "detect fans" command through hidraw interface.
36*53e68c20SAleksandr Mezin
37*53e68c20SAleksandr MezinThe driver coexists with userspace tools that access the device through hidraw
38*53e68c20SAleksandr Mezininterface with no known issues.
39*53e68c20SAleksandr Mezin
40*53e68c20SAleksandr Mezin.. _liquidctl: https://github.com/liquidctl/liquidctl
41*53e68c20SAleksandr Mezin
42*53e68c20SAleksandr MezinSysfs entries
43*53e68c20SAleksandr Mezin-------------
44*53e68c20SAleksandr Mezin
45*53e68c20SAleksandr Mezin=======================	========================================================
46*53e68c20SAleksandr Mezinfan[1-3]_input		Fan speed monitoring (in rpm).
47*53e68c20SAleksandr Mezincurr[1-3]_input		Current supplied to the fan (in milliamperes).
48*53e68c20SAleksandr Mezinin[0-2]_input		Voltage supplied to the fan (in millivolts).
49*53e68c20SAleksandr Mezinpwm[1-3]		Controls fan speed: PWM duty cycle for PWM-controlled
50*53e68c20SAleksandr Mezin			fans, voltage for other fans. Voltage can be changed in
51*53e68c20SAleksandr Mezin			9-12 V range, but the value of the sysfs attribute is
52*53e68c20SAleksandr Mezin			always in 0-255 range (1 = 9V, 255 = 12V). Setting the
53*53e68c20SAleksandr Mezin			attribute to 0 turns off the fan completely.
54*53e68c20SAleksandr Mezinpwm[1-3]_enable		1 if the fan can be controlled by writing to the
55*53e68c20SAleksandr Mezin			corresponding pwm* attribute, 0 otherwise. The device
56*53e68c20SAleksandr Mezin			can control only the fans it detected itself, so the
57*53e68c20SAleksandr Mezin			attribute is read-only.
58*53e68c20SAleksandr Mezinpwm[1-3]_mode		Read-only, 1 for PWM-controlled fans, 0 for other fans
59*53e68c20SAleksandr Mezin			(or if no fan connected).
60*53e68c20SAleksandr Mezinupdate_interval		The interval at which all inputs are updated (in
61*53e68c20SAleksandr Mezin			milliseconds). The default is 1000ms. Minimum is 250ms.
62*53e68c20SAleksandr Mezin=======================	========================================================
63