Skip to content

Instantly share code, notes, and snippets.

@Voltara
Created March 13, 2024 13:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Voltara/3bd918ff2904ddc6f499e2b678a757b8 to your computer and use it in GitHub Desktop.
Save Voltara/3bd918ff2904ddc6f499e2b678a757b8 to your computer and use it in GitHub Desktop.
VRM temperatures, VRM/USB4/M.2 fan speeds for Asus WRX90E-SAGE SE
--- a/linux/drivers/hwmon/asus-ec-sensors.c 2024-02-07 09:00:48.000000000 -0500
+++ b/linux/drivers/hwmon/asus-ec-sensors.c 2024-03-13 09:48:52.892324808 -0400
@@ -137,6 +137,14 @@
ec_sensor_temp_sensor_extra_2,
/* "Extra_3" temperature sensor reading [℃] */
ec_sensor_temp_sensor_extra_3,
+ /* VRM_2 temperature [℃] */
+ ec_sensor_temp_vrm_2,
+ /* USB4 temperature [℃] */
+ ec_sensor_fan_usb4,
+ /* VRM_2 heat sink fan [RPM] */
+ ec_sensor_fan_vrm_hs_2,
+ /* M.2 fan [RPM] */
+ ec_sensor_fan_m2,
};
#define SENSOR_TEMP_CHIPSET BIT(ec_sensor_temp_chipset)
@@ -159,6 +167,10 @@
#define SENSOR_TEMP_SENSOR_EXTRA_1 BIT(ec_sensor_temp_sensor_extra_1)
#define SENSOR_TEMP_SENSOR_EXTRA_2 BIT(ec_sensor_temp_sensor_extra_2)
#define SENSOR_TEMP_SENSOR_EXTRA_3 BIT(ec_sensor_temp_sensor_extra_3)
+#define SENSOR_TEMP_VRM_2 BIT(ec_sensor_temp_vrm_2)
+#define SENSOR_FAN_VRM_HS_2 BIT(ec_sensor_fan_vrm_hs_2)
+#define SENSOR_FAN_USB4 BIT(ec_sensor_fan_usb4)
+#define SENSOR_FAN_M2 BIT(ec_sensor_fan_m2)
enum board_family {
family_unknown,
@@ -166,7 +178,8 @@
family_amd_500_series,
family_amd_600_series,
family_intel_300_series,
- family_intel_600_series
+ family_intel_600_series,
+ family_amd_wrx90_series,
};
/* All the known sensors for ASUS EC controllers */
@@ -276,6 +289,17 @@
[ec_sensor_temp_vrm] = EC_SENSOR("VRM", hwmon_temp, 1, 0x00, 0x3e),
};
+static const struct ec_sensor_info sensors_family_amd_wrx90[] = {
+ [ec_sensor_temp_cpu] =
+ EC_SENSOR("CPU", hwmon_temp, 1, 0x00, 0x31),
+ [ec_sensor_temp_vrm] = EC_SENSOR("VRME", hwmon_temp, 1, 0x00, 0x33),
+ [ec_sensor_temp_vrm_2] = EC_SENSOR("VRMW", hwmon_temp, 1, 0x00, 0x34),
+ [ec_sensor_fan_vrm_hs_2] = EC_SENSOR("VRMW", hwmon_fan, 2, 0x00, 0xb4),
+ [ec_sensor_fan_usb4] = EC_SENSOR("USB4", hwmon_fan, 2, 0x00, 0xb6),
+ [ec_sensor_fan_vrm_hs] = EC_SENSOR("VRME", hwmon_fan, 2, 0x00, 0xbc),
+ [ec_sensor_fan_m2] = EC_SENSOR("M.2", hwmon_fan, 2, 0x00, 0xbe),
+};
+
/* Shortcuts for common combinations */
#define SENSOR_SET_TEMP_CHIPSET_CPU_MB \
(SENSOR_TEMP_CHIPSET | SENSOR_TEMP_CPU | SENSOR_TEMP_MB)
@@ -459,6 +483,14 @@
.family = family_amd_500_series,
};
+static const struct ec_board_info board_info_pro_ws_wrx90e_sage_se = {
+ .sensors = SENSOR_TEMP_CPU | SENSOR_TEMP_VRM | SENSOR_TEMP_VRM_2 |
+ SENSOR_FAN_VRM_HS | SENSOR_FAN_VRM_HS_2 | SENSOR_FAN_USB4 |
+ SENSOR_FAN_M2,
+ .mutex_path = ASUS_HW_ACCESS_MUTEX_SB_PCI0_SBRG_SIO1_MUT0,
+ .family = family_amd_wrx90_series,
+};
+
#define DMI_EXACT_MATCH_ASUS_BOARD_NAME(name, board_info) \
{ \
.matches = { \
@@ -516,6 +548,8 @@
&board_info_zenith_ii_extreme),
DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG ZENITH II EXTREME ALPHA",
&board_info_zenith_ii_extreme),
+ DMI_EXACT_MATCH_ASUS_BOARD_NAME("Pro WS WRX90E-SAGE SE",
+ &board_info_pro_ws_wrx90e_sage_se),
{},
};
@@ -982,6 +1016,9 @@
case family_intel_600_series:
ec_data->sensors_info = sensors_family_intel_600;
break;
+ case family_amd_wrx90_series:
+ ec_data->sensors_info = sensors_family_amd_wrx90;
+ break;
default:
dev_err(dev, "Unknown board family: %d",
ec_data->board_info->family);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment