hwmon: (asus-ec-sensors) add PRIME Z270-A
authorEugene Shalygin <eugene.shalygin@gmail.com>
Wed, 3 Sep 2025 19:17:26 +0000 (21:17 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Sun, 7 Sep 2025 23:33:48 +0000 (16:33 -0700)
Add support for the PRIME Z270-A board.

Tested-by: Jan Philipp Groß <janphilippgross@mailbox.org>
Signed-off-by: Eugene Shalygin <eugene.shalygin@gmail.com>
Link: https://lore.kernel.org/r/20250903191736.14451-1-eugene.shalygin@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/hwmon/asus_ec_sensors.rst
drivers/hwmon/asus-ec-sensors.c

index e505215..baf9eba 100644 (file)
@@ -8,6 +8,7 @@ Supported boards:
  * PRIME X470-PRO
  * PRIME X570-PRO
  * PRIME X670E-PRO WIFI
+ * PRIME Z270-A
  * Pro WS X570-ACE
  * Pro WS WRX90E-SAGE SE
  * ProArt X570-CREATOR WIFI
index ecb058e..f580ff2 100644 (file)
@@ -60,6 +60,8 @@ static char *mutex_path_override;
 
 #define ASUS_HW_ACCESS_MUTEX_SB_PCI0_SBRG_SIO1_MUT0 "\\_SB_.PCI0.SBRG.SIO1.MUT0"
 
+#define ASUS_HW_ACCESS_MUTEX_SB_PCI0_LPCB_SIO1_MUT0 "\\_SB_.PCI0.LPCB.SIO1.MUT0"
+
 #define MAX_IDENTICAL_BOARD_VARIATIONS 3
 
 /* Moniker for the ACPI global lock (':' is not allowed in ASL identifiers) */
@@ -181,6 +183,7 @@ enum board_family {
        family_amd_600_series,
        family_amd_800_series,
        family_amd_wrx_90,
+       family_intel_200_series,
        family_intel_300_series,
        family_intel_400_series,
        family_intel_600_series,
@@ -306,6 +309,18 @@ static const struct ec_sensor_info sensors_family_amd_wrx_90[] = {
                EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x01, 0x04),
 };
 
+static const struct ec_sensor_info sensors_family_intel_200[] = {
+       [ec_sensor_temp_chipset] =
+               EC_SENSOR("Chipset", hwmon_temp, 1, 0x00, 0x3a),
+       [ec_sensor_temp_cpu] = EC_SENSOR("CPU", hwmon_temp, 1, 0x00, 0x3b),
+       [ec_sensor_temp_mb] =
+               EC_SENSOR("Motherboard", hwmon_temp, 1, 0x00, 0x3c),
+       [ec_sensor_temp_t_sensor] =
+               EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x00, 0x3d),
+       [ec_sensor_fan_cpu_opt] =
+               EC_SENSOR("CPU_Opt", hwmon_fan, 2, 0x00, 0xbc),
+};
+
 static const struct ec_sensor_info sensors_family_intel_300[] = {
        [ec_sensor_temp_chipset] =
                EC_SENSOR("Chipset", hwmon_temp, 1, 0x00, 0x3a),
@@ -479,6 +494,13 @@ static const struct ec_board_info board_info_prime_x670e_pro_wifi = {
        .family = family_amd_600_series,
 };
 
+static const struct ec_board_info board_info_prime_z270_a = {
+       .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB |
+               SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CPU_OPT,
+       .mutex_path = ASUS_HW_ACCESS_MUTEX_SB_PCI0_LPCB_SIO1_MUT0,
+       .family = family_intel_200_series,
+};
+
 static const struct ec_board_info board_info_pro_art_b550_creator = {
        .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB |
                SENSOR_TEMP_T_SENSOR |
@@ -685,6 +707,8 @@ static const struct dmi_system_id dmi_table[] = {
                                        &board_info_prime_x570_pro),
        DMI_EXACT_MATCH_ASUS_BOARD_NAME("PRIME X670E-PRO WIFI",
                                        &board_info_prime_x670e_pro_wifi),
+       DMI_EXACT_MATCH_ASUS_BOARD_NAME("PRIME Z270-A",
+                                       &board_info_prime_z270_a),
        DMI_EXACT_MATCH_ASUS_BOARD_NAME("ProArt B550-CREATOR",
                                        &board_info_pro_art_b550_creator),
        DMI_EXACT_MATCH_ASUS_BOARD_NAME("ProArt X570-CREATOR WIFI",
@@ -1223,6 +1247,9 @@ static int asus_ec_probe(struct platform_device *pdev)
        case family_amd_wrx_90:
                ec_data->sensors_info = sensors_family_amd_wrx_90;
                break;
+       case family_intel_200_series:
+               ec_data->sensors_info = sensors_family_intel_200;
+               break;
        case family_intel_300_series:
                ec_data->sensors_info = sensors_family_intel_300;
                break;