Skip to content

Commit 42ac68e

Browse files
aleksamagickagroeck
authored andcommitted
hwmon: Add driver for Gigabyte AORUS Waterforce AIO coolers
This driver exposes hardware sensors of the Gigabyte AORUS Waterforce all-in-one CPU liquid coolers, which communicate through a proprietary USB HID protocol. Report offsets were initially discovered in [1] and confirmed by me on a Waterforce X240 by observing the sent reports from the official software. Available sensors are pump and fan speed in RPM, as well as coolant temperature. Also available through debugfs is the firmware version. Attaching a fan is optional and allows it to be controlled from the device. If it's not connected, the fan-related sensors will report zeroes. The addressable RGB LEDs and LCD screen are not supported in this driver and should be controlled through userspace tools. [1]: liquidctl/liquidctl#167 Signed-off-by: Aleksa Savic <savicaleksa83@gmail.com> Link: https://lore.kernel.org/r/20231207122402.107032-1-savicaleksa83@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
1 parent 7ae587e commit 42ac68e

6 files changed

Lines changed: 494 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
.. SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
Kernel driver gigabyte_waterforce
4+
=================================
5+
6+
Supported devices:
7+
8+
* Gigabyte AORUS WATERFORCE X240
9+
* Gigabyte AORUS WATERFORCE X280
10+
* Gigabyte AORUS WATERFORCE X360
11+
12+
Author: Aleksa Savic
13+
14+
Description
15+
-----------
16+
17+
This driver enables hardware monitoring support for the listed Gigabyte Waterforce
18+
all-in-one CPU liquid coolers. Available sensors are pump and fan speed in RPM, as
19+
well as coolant temperature. Also available through debugfs is the firmware version.
20+
21+
Attaching a fan is optional and allows it to be controlled from the device. If
22+
it's not connected, the fan-related sensors will report zeroes.
23+
24+
The addressable RGB LEDs and LCD screen are not supported in this driver and should
25+
be controlled through userspace tools.
26+
27+
Usage notes
28+
-----------
29+
30+
As these are USB HIDs, the driver can be loaded automatically by the kernel and
31+
supports hot swapping.
32+
33+
Sysfs entries
34+
-------------
35+
36+
=========== =============================================
37+
fan1_input Fan speed (in rpm)
38+
fan2_input Pump speed (in rpm)
39+
temp1_input Coolant temperature (in millidegrees Celsius)
40+
=========== =============================================
41+
42+
Debugfs entries
43+
---------------
44+
45+
================ =======================
46+
firmware_version Device firmware version
47+
================ =======================

Documentation/hwmon/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ Hardware Monitoring Kernel Drivers
7373
ftsteutates
7474
g760a
7575
g762
76+
gigabyte_waterforce
7677
gsc-hwmon
7778
gl518sm
7879
gxp-fan-ctrl

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8916,6 +8916,13 @@ F: Documentation/filesystems/gfs2*
89168916
F: fs/gfs2/
89178917
F: include/uapi/linux/gfs2_ondisk.h
89188918

8919+
GIGABYTE WATERFORCE SENSOR DRIVER
8920+
M: Aleksa Savic <savicaleksa83@gmail.com>
8921+
L: linux-hwmon@vger.kernel.org
8922+
S: Maintained
8923+
F: Documentation/hwmon/gigabyte_waterforce.rst
8924+
F: drivers/hwmon/gigabyte_waterforce.c
8925+
89198926
GIGABYTE WMI DRIVER
89208927
M: Thomas Weißschuh <thomas@weissschuh.net>
89218928
L: platform-driver-x86@vger.kernel.org

drivers/hwmon/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,16 @@ config SENSORS_FTSTEUTATES
664664
This driver can also be built as a module. If so, the module
665665
will be called ftsteutates.
666666

667+
config SENSORS_GIGABYTE_WATERFORCE
668+
tristate "Gigabyte Waterforce X240/X280/X360 AIO CPU coolers"
669+
depends on USB_HID
670+
help
671+
If you say yes here you get support for hardware monitoring for the
672+
Gigabyte Waterforce X240/X280/X360 all-in-one CPU liquid coolers.
673+
674+
This driver can also be built as a module. If so, the module
675+
will be called gigabyte_waterforce.
676+
667677
config SENSORS_GL518SM
668678
tristate "Genesys Logic GL518SM"
669679
depends on I2C

drivers/hwmon/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ obj-$(CONFIG_SENSORS_FSCHMD) += fschmd.o
8080
obj-$(CONFIG_SENSORS_FTSTEUTATES) += ftsteutates.o
8181
obj-$(CONFIG_SENSORS_G760A) += g760a.o
8282
obj-$(CONFIG_SENSORS_G762) += g762.o
83+
obj-$(CONFIG_SENSORS_GIGABYTE_WATERFORCE) += gigabyte_waterforce.o
8384
obj-$(CONFIG_SENSORS_GL518SM) += gl518sm.o
8485
obj-$(CONFIG_SENSORS_GL520SM) += gl520sm.o
8586
obj-$(CONFIG_SENSORS_GSC) += gsc-hwmon.o

0 commit comments

Comments
 (0)