[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20250830120121.738223-1-eugene.shalygin@gmail.com>
Date: Sat, 30 Aug 2025 14:00:59 +0200
From: Eugene Shalygin <eugene.shalygin@...il.com>
To: eugene.shalygin@...il.com
Cc: Michael Tandy <git@....me.uk>,
Guenter Roeck <linux@...ck-us.net>,
Jonathan Corbet <corbet@....net>,
linux-hwmon@...r.kernel.org,
linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH] (asus-ec-sensors) add Pro WS WRX90E-SAGE SE
From: Michael Tandy <git@....me.uk>
Add support for Pro WS WRX90E-SAGE SE
Signed-off-by: Michael Tandy <git@....me.uk>
Signed-off-by: Eugene Shalygin <eugene.shalygin@...il.com>
---
Documentation/hwmon/asus_ec_sensors.rst | 1 +
drivers/hwmon/asus-ec-sensors.c | 42 +++++++++++++++++++++++++
2 files changed, 43 insertions(+)
diff --git a/Documentation/hwmon/asus_ec_sensors.rst b/Documentation/hwmon/asus_ec_sensors.rst
index bedddb6bf9e1..12c6b5b266bb 100644
--- a/Documentation/hwmon/asus_ec_sensors.rst
+++ b/Documentation/hwmon/asus_ec_sensors.rst
@@ -9,6 +9,7 @@ Supported boards:
* PRIME X570-PRO
* PRIME X670E-PRO WIFI
* Pro WS X570-ACE
+ * Pro WS WRX90E-SAGE SE
* ProArt X570-CREATOR WIFI
* ProArt X670E-CREATOR WIFI
* ProArt X870E-CREATOR WIFI
diff --git a/drivers/hwmon/asus-ec-sensors.c b/drivers/hwmon/asus-ec-sensors.c
index 83047c3263d3..09a751b44ee2 100644
--- a/drivers/hwmon/asus-ec-sensors.c
+++ b/drivers/hwmon/asus-ec-sensors.c
@@ -117,10 +117,18 @@ enum ec_sensors {
ec_sensor_fan_cpu_opt,
/* VRM heat sink fan [RPM] */
ec_sensor_fan_vrm_hs,
+ /* VRM east heat sink fan [RPM] */
+ ec_sensor_fan_vrme_hs,
+ /* VRM west heat sink fan [RPM] */
+ ec_sensor_fan_vrmw_hs,
/* Chipset fan [RPM] */
ec_sensor_fan_chipset,
/* Water flow sensor reading [RPM] */
ec_sensor_fan_water_flow,
+ /* USB4 fan [RPM] */
+ ec_sensor_fan_usb4,
+ /* M.2 fan [RPM] */
+ ec_sensor_fan_m2,
/* CPU current [A] */
ec_sensor_curr_cpu,
/* "Water_In" temperature sensor reading [℃] */
@@ -150,8 +158,12 @@ enum ec_sensors {
#define SENSOR_IN_CPU_CORE BIT(ec_sensor_in_cpu_core)
#define SENSOR_FAN_CPU_OPT BIT(ec_sensor_fan_cpu_opt)
#define SENSOR_FAN_VRM_HS BIT(ec_sensor_fan_vrm_hs)
+#define SENSOR_FAN_VRME_HS BIT(ec_sensor_fan_vrme_hs)
+#define SENSOR_FAN_VRMW_HS BIT(ec_sensor_fan_vrmw_hs)
#define SENSOR_FAN_CHIPSET BIT(ec_sensor_fan_chipset)
#define SENSOR_FAN_WATER_FLOW BIT(ec_sensor_fan_water_flow)
+#define SENSOR_FAN_USB4 BIT(ec_sensor_fan_usb4)
+#define SENSOR_FAN_M2 BIT(ec_sensor_fan_m2)
#define SENSOR_CURR_CPU BIT(ec_sensor_curr_cpu)
#define SENSOR_TEMP_WATER_IN BIT(ec_sensor_temp_water_in)
#define SENSOR_TEMP_WATER_OUT BIT(ec_sensor_temp_water_out)
@@ -168,6 +180,7 @@ enum board_family {
family_amd_500_series,
family_amd_600_series,
family_amd_800_series,
+ family_amd_wrx_90,
family_intel_300_series,
family_intel_400_series,
family_intel_600_series,
@@ -278,6 +291,21 @@ static const struct ec_sensor_info sensors_family_amd_800[] = {
EC_SENSOR("CPU_Opt", hwmon_fan, 2, 0x00, 0xb0),
};
+static const struct ec_sensor_info sensors_family_amd_wrx_90[] = {
+ [ec_sensor_temp_cpu_package] =
+ EC_SENSOR("CPU Package", hwmon_temp, 1, 0x00, 0x31),
+ [ec_sensor_fan_cpu_opt] =
+ EC_SENSOR("CPU_Opt", hwmon_fan, 2, 0x00, 0xb0),
+ [ec_sensor_fan_vrmw_hs] =
+ EC_SENSOR("VRMW HS", hwmon_fan, 2, 0x00, 0xb4),
+ [ec_sensor_fan_usb4] = EC_SENSOR("USB4", hwmon_fan, 2, 0x00, 0xb6),
+ [ec_sensor_fan_vrme_hs] =
+ EC_SENSOR("VRME HS", hwmon_fan, 2, 0x00, 0xbc),
+ [ec_sensor_fan_m2] = EC_SENSOR("M.2", hwmon_fan, 2, 0x00, 0xbe),
+ [ec_sensor_temp_t_sensor] =
+ EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x01, 0x04),
+};
+
static const struct ec_sensor_info sensors_family_intel_300[] = {
[ec_sensor_temp_chipset] =
EC_SENSOR("Chipset", hwmon_temp, 1, 0x00, 0x3a),
@@ -421,6 +449,15 @@ static const struct ec_board_info board_info_pro_art_b550_creator = {
.family = family_amd_500_series,
};
+static const struct ec_board_info board_info_pro_ws_wrx90e_sage_se = {
+ /* Board also has a nct6798 with 7 more fans and temperatures */
+ .sensors = SENSOR_TEMP_CPU_PACKAGE | SENSOR_TEMP_T_SENSOR |
+ SENSOR_FAN_CPU_OPT | SENSOR_FAN_USB4 | SENSOR_FAN_M2 |
+ SENSOR_FAN_VRME_HS | SENSOR_FAN_VRMW_HS,
+ .mutex_path = ASUS_HW_ACCESS_MUTEX_RMTW_ASMX,
+ .family = family_amd_wrx_90,
+};
+
static const struct ec_board_info board_info_pro_ws_x570_ace = {
.sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM |
SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET |
@@ -650,6 +687,8 @@ static const struct dmi_system_id dmi_table[] = {
&board_info_pro_art_x870E_creator_wifi),
DMI_EXACT_MATCH_ASUS_BOARD_NAME("ProArt B550-CREATOR",
&board_info_pro_art_b550_creator),
+ DMI_EXACT_MATCH_ASUS_BOARD_NAME("Pro WS WRX90E-SAGE SE",
+ &board_info_pro_ws_wrx90e_sage_se),
DMI_EXACT_MATCH_ASUS_BOARD_NAME("Pro WS X570-ACE",
&board_info_pro_ws_x570_ace),
DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG CROSSHAIR VIII DARK HERO",
@@ -1173,6 +1212,9 @@ static int asus_ec_probe(struct platform_device *pdev)
case family_amd_800_series:
ec_data->sensors_info = sensors_family_amd_800;
break;
+ case family_amd_wrx_90:
+ ec_data->sensors_info = sensors_family_amd_wrx_90;
+ break;
case family_intel_300_series:
ec_data->sensors_info = sensors_family_intel_300;
break;
--
2.51.0
Powered by blists - more mailing lists