Commit 0e35f63f authored by Aleksa Savic's avatar Aleksa Savic Committed by Guenter Roeck
Browse files

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: default avatarAleksa Savic <savicaleksa83@gmail.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent fc958a61
Loading
Loading
Loading
Loading
+61 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0-or-later

Kernel driver aquacomputer-d5next
=================================

Supported devices:

* Aquacomputer D5 Next watercooling pump

Author: Aleksa Savic

Description
-----------

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.

Usage notes
-----------

The pump communicates via HID reports. The driver is loaded automatically by
the kernel and supports hotswapping.

Sysfs entries
-------------

============ =============================================
temp1_input  Coolant temperature (in millidegrees Celsius)
fan1_input   Pump speed (in RPM)
fan2_input   Fan speed (in RPM)
power1_input Pump power (in micro Watts)
power2_input Fan power (in micro Watts)
in0_input    Pump voltage (in milli Volts)
in1_input    Fan voltage (in milli Volts)
in2_input    +5V rail voltage (in milli Volts)
curr1_input  Pump current (in milli Amperes)
curr2_input  Fan current (in milli Amperes)
============ =============================================

Debugfs entries
---------------

================ ===============================================
serial_number    Serial number of the pump
firmware_version Version of installed firmware
power_cycles     Count of how many times the pump was powered on
================ ===============================================
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ Hardware Monitoring Kernel Drivers
   adt7475
   aht10
   amc6821
   aquacomputer_d5next
   asb100
   asc7621
   aspeed-pwm-tacho
+7 −0
Original line number Diff line number Diff line
@@ -1316,6 +1316,13 @@ L: linux-media@vger.kernel.org
S:	Maintained
F:	drivers/media/i2c/aptina-pll.*
AQUACOMPUTER D5 NEXT PUMP SENSOR DRIVER
M:	Aleksa Savic <savicaleksa83@gmail.com>
L:	linux-hwmon@vger.kernel.org
S:	Maintained
F:	Documentation/hwmon/aquacomputer_d5next.rst
F:	drivers/hwmon/aquacomputer_d5next.c
AQUANTIA ETHERNET DRIVER (atlantic)
M:	Igor Russkikh <irusskikh@marvell.com>
L:	netdev@vger.kernel.org
+10 −0
Original line number Diff line number Diff line
@@ -254,6 +254,16 @@ config SENSORS_AHT10
	  This driver can also be built as a module. If so, the module
	  will be called aht10.

config SENSORS_AQUACOMPUTER_D5NEXT
	tristate "Aquacomputer D5 Next watercooling pump"
	depends on USB_HID
	help
	  If you say yes here you get support for the Aquacomputer D5 Next
	  watercooling pump sensors.

	  This driver can also be built as a module. If so, the module
	  will be called aquacomputer_d5next.

config SENSORS_AS370
	tristate "Synaptics AS370 SoC hardware monitoring driver"
	help
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ obj-$(CONFIG_SENSORS_ADT7470) += adt7470.o
obj-$(CONFIG_SENSORS_ADT7475)	+= adt7475.o
obj-$(CONFIG_SENSORS_AHT10)	+= aht10.o
obj-$(CONFIG_SENSORS_APPLESMC)	+= applesmc.o
obj-$(CONFIG_SENSORS_AQUACOMPUTER_D5NEXT) += aquacomputer_d5next.o
obj-$(CONFIG_SENSORS_ARM_SCMI)	+= scmi-hwmon.o
obj-$(CONFIG_SENSORS_ARM_SCPI)	+= scpi-hwmon.o
obj-$(CONFIG_SENSORS_AS370)	+= as370-hwmon.o
Loading