Skip to content

Commit 0e35f63

Browse files
aleksamagickagroeck
authored andcommitted
hwmon: add driver for Aquacomputer D5 Next
This driver exposes hardware sensors of the Aquacomputer D5 Next watercooling pump, which communicates through a proprietary USB HID protocol. Available sensors are pump and fan speed, power, voltage and current, as well as coolant temperature. Also available through debugfs are the serial number, firmware version and power-on count. Attaching a fan is optional and allows it to be controlled using temperature curves directly from the pump. If it's not connected, the fan-related sensors will report zeroes. The pump can be configured either through software or via its physical interface. Configuring the pump through this driver is not implemented, as it seems to require sending it a complete configuration. That includes addressable RGB LEDs, for which there is no standard sysfs interface. Thus, that task is better suited for userspace tools. This driver has been tested on x86_64, both in-kernel and as a module. Signed-off-by: Aleksa Savic <[email protected]> Signed-off-by: Guenter Roeck <[email protected]>
1 parent fc958a6 commit 0e35f63

File tree

6 files changed

+443
-0
lines changed

6 files changed

+443
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
.. SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
Kernel driver aquacomputer-d5next
4+
=================================
5+
6+
Supported devices:
7+
8+
* Aquacomputer D5 Next watercooling pump
9+
10+
Author: Aleksa Savic
11+
12+
Description
13+
-----------
14+
15+
This driver exposes hardware sensors of the Aquacomputer D5 Next watercooling
16+
pump, which communicates through a proprietary USB HID protocol.
17+
18+
Available sensors are pump and fan speed, power, voltage and current, as
19+
well as coolant temperature. Also available through debugfs are the serial
20+
number, firmware version and power-on count.
21+
22+
Attaching a fan is optional and allows it to be controlled using temperature
23+
curves directly from the pump. If it's not connected, the fan-related sensors
24+
will report zeroes.
25+
26+
The pump can be configured either through software or via its physical
27+
interface. Configuring the pump through this driver is not implemented, as it
28+
seems to require sending it a complete configuration. That includes addressable
29+
RGB LEDs, for which there is no standard sysfs interface. Thus, that task is
30+
better suited for userspace tools.
31+
32+
Usage notes
33+
-----------
34+
35+
The pump communicates via HID reports. The driver is loaded automatically by
36+
the kernel and supports hotswapping.
37+
38+
Sysfs entries
39+
-------------
40+
41+
============ =============================================
42+
temp1_input Coolant temperature (in millidegrees Celsius)
43+
fan1_input Pump speed (in RPM)
44+
fan2_input Fan speed (in RPM)
45+
power1_input Pump power (in micro Watts)
46+
power2_input Fan power (in micro Watts)
47+
in0_input Pump voltage (in milli Volts)
48+
in1_input Fan voltage (in milli Volts)
49+
in2_input +5V rail voltage (in milli Volts)
50+
curr1_input Pump current (in milli Amperes)
51+
curr2_input Fan current (in milli Amperes)
52+
============ =============================================
53+
54+
Debugfs entries
55+
---------------
56+
57+
================ ===============================================
58+
serial_number Serial number of the pump
59+
firmware_version Version of installed firmware
60+
power_cycles Count of how many times the pump was powered on
61+
================ ===============================================

Documentation/hwmon/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Hardware Monitoring Kernel Drivers
3939
adt7475
4040
aht10
4141
amc6821
42+
aquacomputer_d5next
4243
asb100
4344
asc7621
4445
aspeed-pwm-tacho

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,6 +1316,13 @@ L: [email protected]
13161316
S: Maintained
13171317
F: drivers/media/i2c/aptina-pll.*
13181318

1319+
AQUACOMPUTER D5 NEXT PUMP SENSOR DRIVER
1320+
M: Aleksa Savic <[email protected]>
1321+
1322+
S: Maintained
1323+
F: Documentation/hwmon/aquacomputer_d5next.rst
1324+
F: drivers/hwmon/aquacomputer_d5next.c
1325+
13191326
AQUANTIA ETHERNET DRIVER (atlantic)
13201327
M: Igor Russkikh <[email protected]>
13211328

drivers/hwmon/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,16 @@ config SENSORS_AHT10
254254
This driver can also be built as a module. If so, the module
255255
will be called aht10.
256256

257+
config SENSORS_AQUACOMPUTER_D5NEXT
258+
tristate "Aquacomputer D5 Next watercooling pump"
259+
depends on USB_HID
260+
help
261+
If you say yes here you get support for the Aquacomputer D5 Next
262+
watercooling pump sensors.
263+
264+
This driver can also be built as a module. If so, the module
265+
will be called aquacomputer_d5next.
266+
257267
config SENSORS_AS370
258268
tristate "Synaptics AS370 SoC hardware monitoring driver"
259269
help

drivers/hwmon/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o
4646
obj-$(CONFIG_SENSORS_ADT7475) += adt7475.o
4747
obj-$(CONFIG_SENSORS_AHT10) += aht10.o
4848
obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o
49+
obj-$(CONFIG_SENSORS_AQUACOMPUTER_D5NEXT) += aquacomputer_d5next.o
4950
obj-$(CONFIG_SENSORS_ARM_SCMI) += scmi-hwmon.o
5051
obj-$(CONFIG_SENSORS_ARM_SCPI) += scpi-hwmon.o
5152
obj-$(CONFIG_SENSORS_AS370) += as370-hwmon.o

0 commit comments

Comments
 (0)