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
This commit is contained in:
Tijmen van Nisselrooij
2025-01-17 10:30:00 +01:00
committed by GitHub
parent 07c0c00909
commit 90e7c3ec47
3 changed files with 36 additions and 0 deletions
@@ -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):
@@ -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
@@ -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));