From 90e7c3ec4753d949991d97dee260fa1bced91da0 Mon Sep 17 00:00:00 2001 From: Tijmen van Nisselrooij Date: Fri, 17 Jan 2025 10:30:00 +0100 Subject: [PATCH] Add support for ASUS PRIME X870-P (Nuvoton NCT6701D) (#1565) * Initial commit based on existing pull request Work done to support ROG STRIX X870E-E copied: https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/pull/1523/files * Update SuperIOHardware.cs Update fan hierarchy for X870-P motherboard Small typo fix * Update SuperIOHardware.cs * Update SuperIOHardware.cs Fixed some existing voltages Added some voltages Added VRM temperature readout Removed debug fan lines * Update SuperIOHardware.cs Change to more descriptive name Hide VMISC -> Voltage #12 as can't be confirmed * Revert CR change --- .../Hardware/Motherboard/Identification.cs | 2 ++ .../Hardware/Motherboard/Model.cs | 1 + .../Hardware/Motherboard/SuperIOHardware.cs | 33 +++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 7c7b55f..ef1d32d 100755 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -607,6 +607,8 @@ internal class Identification return Model.X870E_AORUS_PRO; case var _ when name.Equals("X870E AORUS PRO ICE", StringComparison.OrdinalIgnoreCase): return Model.X870E_AORUS_PRO_ICE; + case var _ when name.Equals("PRIME X870-P", StringComparison.OrdinalIgnoreCase): + return Model.PRIME_X870_P; case var _ when name.Equals("ROG CROSSHAIR X870E HERO", StringComparison.OrdinalIgnoreCase): return Model.ROG_CROSSHAIR_X870E_HERO; case var _ when name.Equals("Base Board Product Name", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 51d1c2b..93e7372 100755 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -110,6 +110,7 @@ public enum Model PRIME_Z690_A, ROG_MAXIMUS_Z790_FORMULA, ROG_MAXIMUS_XII_HERO_WIFI, + PRIME_X870_P, ROG_CROSSHAIR_X870E_HERO, //BIOSTAR diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index 9af1c18..333c2e2 100755 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -4366,6 +4366,39 @@ internal sealed class SuperIOHardware : Hardware c.Add(new Control("Fan #" + (i + 1), i)); break; + + case Model.PRIME_X870_P: // NCT6701D + 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("+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("+3V Standby", 7, 34, 34)); + v.Add(new Voltage("CMOS Battery", 8, 34, 34)); + v.Add(new Voltage("CPU Termination", 9, 34, 34)); + v.Add(new Voltage("CPU VDDIO / MC", 10, 1, 1)); + v.Add(new Voltage("Voltage #12", 11, true)); + v.Add(new Voltage("+1.8V Standby", 12, true)); // Uknown values needed for tuning, hidden for now + v.Add(new Voltage("Voltage #14", 13, true)); + v.Add(new Voltage("Voltage #15", 14, true)); + v.Add(new Voltage("Voltage #16", 15, true)); + // All voltage channels above 15 cannot be added? + + t.Add(new Temperature("Motherboard", 2)); + t.Add(new Temperature("VRM", 7)); + t.Add(new Temperature("CPU", 22)); + + fanControlNames = new[] { "Chassis Fan #1", "CPU Fan", "Chassis Fan #2", "Chassis Fan #3", "CPU_OPT", "Chassis Fan #4", "AIO Pump" }; + + 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 Control(fanControlNames[i], i)); + + break; case Model.ROG_CROSSHAIR_X870E_HERO: // NCT6701D v.Add(new Voltage("Vcore", 0));