diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 858784c..62bf97a 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -359,6 +359,8 @@ internal class Identification return Model.B560M_AORUS_PRO_AX; case var _ when name.Equals("ROG STRIX Z690-A GAMING WIFI D4", StringComparison.OrdinalIgnoreCase): return Model.ROG_STRIX_Z690_A_GAMING_WIFI_D4; + case var _ when name.Equals("ROG MAXIMUS Z690 FORMULA", StringComparison.OrdinalIgnoreCase): + return Model.ROG_MAXIMUS_Z690_FORMULA; case var _ when name.Equals("ROG MAXIMUS Z690 EXTREME GLACIAL", StringComparison.OrdinalIgnoreCase): return Model.ROG_MAXIMUS_Z690_EXTREME_GLACIAL; case var _ when name.Equals("B660GTN", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs index a4d81d0..46a78d3 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs @@ -141,6 +141,14 @@ public abstract class EmbeddedController : Hardware BoardFamily.Intel600, ECSensor.TempTSensor, ECSensor.TempVrm), + new(Model.ROG_MAXIMUS_Z690_FORMULA, + BoardFamily.Intel600, + ECSensor.TempTSensor, + ECSensor.TempVrm, + ECSensor.TempWaterIn, + ECSensor.TempWaterOut, + ECSensor.TempWaterBlockIn, + ECSensor.FanWaterFlow), new(Model.ROG_MAXIMUS_Z690_EXTREME_GLACIAL, BoardFamily.Intel600, ECSensor.TempVrm, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 376109a..1d93dd7 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -50,6 +50,7 @@ internal enum Model ROG_STRIX_B550_F_GAMING_WIFI, ROG_STRIX_B550_I_GAMING, ROG_STRIX_Z690_A_GAMING_WIFI_D4, + ROG_MAXIMUS_Z690_FORMULA, ROG_MAXIMUS_Z690_EXTREME_GLACIAL, M2N_SLI_Deluxe, M4A79XTD_EVO, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index ede60ae..58f355d 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -2524,7 +2524,49 @@ internal sealed class SuperIOHardware : Hardware t.Add(new Temperature("Virtual", 23)); fanControlNames = new[] {"Chassis Fan 1", "CPU Fan", "Chassis Fan 2", - "Chassis Fan 3", "High Amp Fan", "W_PUMP+", "AIO Pump"}; + "Chassis Fan 3", "High Amp Fan", "Waterpump", "AIO Pump"}; + System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length, + $"Expected {fanControlNames.Length} fan register in the SuperIO chip"); + System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length, + "Expected counts of cans controls and fan speed registers to be equal"); + + for (int i = 0; i < fanControlNames.Length; i++) + f.Add(new Fan(fanControlNames[i], i)); + + for (int i = 0; i < fanControlNames.Length; i++) + c.Add(new Ctrl(fanControlNames[i], i)); + + break; + + case Model.ROG_MAXIMUS_Z690_FORMULA: //NCT6798D + v.Add(new Voltage("Vcore", 0)); + v.Add(new Voltage("+5V", 1, 4, 1)); + v.Add(new Voltage("AVSB", 2, 34, 34)); + v.Add(new Voltage("3VCC", 3, 34, 34)); + v.Add(new Voltage("+12V", 4, 11, 1)); + v.Add(new Voltage("IVR Atom L2 Cluster #1", 5)); + v.Add(new Voltage("Voltage #7", 6)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBat", 8, 34, 34)); + v.Add(new Voltage("VTT", 9, 1, 1)); + v.Add(new Voltage("Voltage #11", 10)); + v.Add(new Voltage("IVR Atom L2 Cluster #0", 11, 1, 1)); + v.Add(new Voltage("PCH", 12)); + v.Add(new Voltage("Voltage #14", 13)); + v.Add(new Voltage("Voltage #15", 14)); + + t.Add(new Temperature("Temperature #1", 0)); + t.Add(new Temperature("CPU", 1)); + t.Add(new Temperature("Motherboard", 2)); + t.Add(new Temperature("Temperature #4", 4)); + t.Add(new Temperature("Temperature #5", 5)); + t.Add(new Temperature("Temperature #6", 6)); + t.Add(new Temperature("Temperature #7", 7)); + t.Add(new Temperature("PCH", 12)); + t.Add(new Temperature("Temperature #9", 21)); + + fanControlNames = new[] { "Chassis Fan 1", "CPU Fan", "Chassis Fan 2", "Chassis Fan 3", "Chassis Fan 4", "Waterpump", "AIO Pump" }; + System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length, $"Expected {fanControlNames.Length} fan register in the SuperIO chip"); System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length,