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

hwmon: Add driver for ASUS ROG RYUJIN II 360 AIO cooler

This driver exposes hardware sensors of the ASUS ROG RYUJIN II 360
all-in-one CPU liquid cooler, which communicates through a proprietary
USB HID protocol. Report offsets were initially discovered in [1] by
Florian Freudiger.

Available sensors are pump, internal and external
(controller) fan speed in RPM, their duties in PWM, as well as
coolant temperature.

Attaching external fans to the controller is optional and allows them
to be controlled from the device. If not connected, the fan-related
sensors will report zeroes. The controller is a separate hardware unit
that comes bundled with the AIO and connects to it to allow fan control.

The addressable LCD screen is not supported in this
driver and should be controlled through userspace tools.

[1]: https://github.com/liquidctl/liquidctl/pull/653



Tested-by: default avatarFlorian Freudiger <florian.freudiger@proton.me>
Signed-off-by: default avatarAleksa Savic <savicaleksa83@gmail.com>
Link: https://lore.kernel.org/r/20240108094453.22986-1-savicaleksa83@gmail.com


[groeck: Add HID dependency]
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent f3b4b146
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0-or-later

Kernel driver asus_rog_ryujin
=============================

Supported devices:

* ASUS ROG RYUJIN II 360

Author: Aleksa Savic

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

This driver enables hardware monitoring support for the listed ASUS ROG RYUJIN
all-in-one CPU liquid coolers. Available sensors are pump, internal and external
(controller) fan speed in RPM, their duties in PWM, as well as coolant temperature.

Attaching external fans to the controller is optional and allows them to be
controlled from the device. If not connected, the fan-related sensors will
report zeroes. The controller is a separate hardware unit that comes bundled
with the AIO and connects to it to allow fan control.

The addressable LCD screen is not supported in this driver and should
be controlled through userspace tools.

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

As these are USB HIDs, the driver can be loaded automatically by the kernel and
supports hot swapping.

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

=========== =============================================
fan1_input  Pump speed (in rpm)
fan2_input  Internal fan speed (in rpm)
fan3_input  External (controller) fan 1 speed (in rpm)
fan4_input  External (controller) fan 2 speed (in rpm)
fan5_input  External (controller) fan 3 speed (in rpm)
fan6_input  External (controller) fan 4 speed (in rpm)
temp1_input Coolant temperature (in millidegrees Celsius)
pwm1        Pump duty
pwm2        Internal fan duty
pwm3        External (controller) fan duty
=========== =============================================
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ Hardware Monitoring Kernel Drivers
   asc7621
   aspeed-pwm-tacho
   asus_ec_sensors
   asus_rog_ryujin
   asus_wmi_sensors
   bcm54140
   bel-pfe
+6 −0
Original line number Diff line number Diff line
@@ -3181,6 +3181,12 @@ S: Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
F:	drivers/platform/x86/asus-tf103c-dock.c
ASUS ROG RYUJIN AIO HARDWARE MONITOR DRIVER
M:	Aleksa Savic <savicaleksa83@gmail.com>
L:	linux-hwmon@vger.kernel.org
S:	Maintained
F:	drivers/hwmon/asus_rog_ryujin.c
ASUS WIRELESS RADIO CONTROL DRIVER
M:	João Paulo Rechi Vita <jprvita@gmail.com>
L:	platform-driver-x86@vger.kernel.org
+10 −0
Original line number Diff line number Diff line
@@ -301,6 +301,16 @@ config SENSORS_ASC7621
	  This driver can also be built as a module. If so, the module
	  will be called asc7621.

config SENSORS_ASUS_ROG_RYUJIN
	tristate "ASUS ROG RYUJIN II 360 hardware monitoring driver"
	depends on HID
	help
	  If you say yes here you get support for the fans and sensors of
	  the ASUS ROG RYUJIN II 360 AIO CPU liquid cooler.

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

config SENSORS_AXI_FAN_CONTROL
	tristate "Analog Devices FAN Control HDL Core driver"
	help
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ obj-$(CONFIG_SENSORS_ARM_SCPI) += scpi-hwmon.o
obj-$(CONFIG_SENSORS_AS370)	+= as370-hwmon.o
obj-$(CONFIG_SENSORS_ASC7621)	+= asc7621.o
obj-$(CONFIG_SENSORS_ASPEED)	+= aspeed-pwm-tacho.o
obj-$(CONFIG_SENSORS_ASUS_ROG_RYUJIN)	+= asus_rog_ryujin.o
obj-$(CONFIG_SENSORS_ATXP1)	+= atxp1.o
obj-$(CONFIG_SENSORS_AXI_FAN_CONTROL) += axi-fan-control.o
obj-$(CONFIG_SENSORS_BT1_PVT)	+= bt1-pvt.o
Loading