From 9930c5f0c19d27c78049f56026f7ae3a60064055 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 13 Jun 2023 17:52:53 +0930 Subject: [PATCH] Add support for ASUS ROG CROSSHAIR X670E GENE (#1092) * Trying a different register for NCT6799D * Making a note of what NCT6799D was before * a * Adding support for the ROG CROSSHAIR X670E GENE --- .../Hardware/Motherboard/Identification.cs | 2 ++ .../Motherboard/Lpc/EC/EmbeddedController.cs | 5 +++ .../Hardware/Motherboard/Lpc/Nct677X.cs | 2 ++ .../Hardware/Motherboard/Model.cs | 1 + .../Hardware/Motherboard/SuperIOHardware.cs | 33 +++++++++++++++++++ 5 files changed, 43 insertions(+) diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 6abeb4d..06355aa 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -153,6 +153,8 @@ internal class Identification return Model.ROG_CROSSHAIR_VIII_IMPACT; case var _ when name.Equals("ROG CROSSHAIR X670E EXTREME", StringComparison.OrdinalIgnoreCase): return Model.ROG_CROSSHAIR_X670E_EXTREME; + case var _ when name.Equals("ROG CROSSHAIR X670E GENE", StringComparison.OrdinalIgnoreCase): + return Model.ROG_CROSSHAIR_X670E_GENE; case var _ when name.Equals("M2N-SLI DELUXE", StringComparison.OrdinalIgnoreCase): return Model.M2N_SLI_Deluxe; case var _ when name.Equals("M4A79XTD EVO", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs index 29fdbcc..6739518 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs @@ -75,6 +75,11 @@ public abstract class EmbeddedController : Hardware ECSensor.TempWaterIn, ECSensor.TempWaterOut, ECSensor.FanCPUOpt), + new(Model.ROG_CROSSHAIR_X670E_EXTREME, + BoardFamily.Amd600, + ECSensor.TempWaterIn, + ECSensor.TempWaterOut, + ECSensor.FanCPUOpt), new(Model.ROG_CROSSHAIR_VIII_DARK_HERO, BoardFamily.Amd500, ECSensor.TempChipset, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs index ff966da..d1b9ef1 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs @@ -202,6 +202,7 @@ internal class Nct677X : ISuperIO new(SourceNct67Xxd.AUXTIN2, 0x07D, 0x07E, 7, 0xA00, 0x494), new(SourceNct67Xxd.AUXTIN3, 0x4A0, 0x49E, 6, 0xB00, 0x495), new(SourceNct67Xxd.AUXTIN4, 0x027, 0, -1, 0x621), + new(SourceNct67Xxd.TSENSOR, 0x4A2, 0x4A1, 7, 0xC00, 0x496), new(SourceNct67Xxd.SMBUSMASTER0, 0x150, 0x151, 7, 0x622), new(SourceNct67Xxd.SMBUSMASTER1, 0x670, 0, -1, 0xC26), new(SourceNct67Xxd.PECI_1, 0x672, 0, -1, 0xC27), @@ -952,6 +953,7 @@ internal class Nct677X : ISuperIO AUXTIN4 = 7, SMBUSMASTER0 = 8, SMBUSMASTER1 = 9, + TSENSOR = 10, PECI_0 = 16, PECI_1 = 17, PCH_CHIP_CPU_MAX_TEMP = 18, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 4ea8030..6341eb5 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -45,6 +45,7 @@ public enum Model ROG_CROSSHAIR_VIII_IMPACT, ROG_STRIX_X470_I, ROG_CROSSHAIR_X670E_EXTREME, + ROG_CROSSHAIR_X670E_GENE, ROG_STRIX_X570_E_GAMING, ROG_STRIX_X570_F_GAMING, ROG_STRIX_X570_I_GAMING, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index a1861dc..b34e9d6 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -3147,6 +3147,39 @@ internal sealed class SuperIOHardware : Hardware break; + case Model.ROG_CROSSHAIR_X670E_GENE: // NCT6799D + v.Add(new Voltage("Vcore", 0, 2, 2)); // This is wrong + v.Add(new Voltage("+5V", 1, 4, 1)); + v.Add(new Voltage("AVCC", 2, 34, 34)); + v.Add(new Voltage("+3.3V", 3, 34, 34)); + v.Add(new Voltage("+12V", 4, 11, 1)); + v.Add(new Voltage("Voltage #6", 5, true)); + v.Add(new Voltage("Voltage #7", 6, true)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBat", 8, 34, 34)); + v.Add(new Voltage("VTT", 9)); // This is wrong + v.Add(new Voltage("Voltage #11", 10, true)); + v.Add(new Voltage("Voltage #12", 11, true)); + v.Add(new Voltage("Voltage #13", 12, true)); + v.Add(new Voltage("Voltage #14", 13, true)); + v.Add(new Voltage("Voltage #15", 14, true)); + t.Add(new Temperature("CPU Core", 0)); + t.Add(new Temperature("Temperature #1", 1)); + t.Add(new Temperature("Temperature #2", 2)); + t.Add(new Temperature("Temperature #3", 3)); + 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("T Sensor", 24)); + + for (int i = 0; i < superIO.Fans.Length; i++) + f.Add(new Fan("Fan #" + (i + 1), i)); + + for (int i = 0; i < superIO.Controls.Length; i++) + c.Add(new Control("Fan #" + (i + 1), i)); + + break; + default: v.Add(new Voltage("Vcore", 0)); v.Add(new Voltage("Voltage #2", 1, true));