Skip to content

Commit 880321f

Browse files
authored
Add support for ASUS ROG Crosshair X870E Hero motherboard (#1581)
* Add support for ASUS ROG Crosshair X870E Hero motherboard * Fix a typo * Add CPU Package temperature sensor. * Cleanup code * Aligning W_PUMP+ naming to others
1 parent 09855be commit 880321f

6 files changed

Lines changed: 44 additions & 0 deletions

File tree

LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,8 @@ public static Model GetModel(string name)
607607
return Model.X870E_AORUS_PRO;
608608
case var _ when name.Equals("X870E AORUS PRO ICE", StringComparison.OrdinalIgnoreCase):
609609
return Model.X870E_AORUS_PRO_ICE;
610+
case var _ when name.Equals("ROG CROSSHAIR X870E HERO", StringComparison.OrdinalIgnoreCase):
611+
return Model.ROG_CROSSHAIR_X870E_HERO;
610612
case var _ when name.Equals("Base Board Product Name", StringComparison.OrdinalIgnoreCase):
611613
case var _ when name.Equals("To be filled by O.E.M.", StringComparison.OrdinalIgnoreCase):
612614
return Model.Unknown;

LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ internal enum Chip : ushort
6969
NCT6687D = 0xD592,
7070
NCT6683D = 0xC732,
7171
NCT6799D = 0xD802,
72+
NCT6701D = 0xD806,
7273

7374
W83627DHG = 0xA020,
7475
W83627DHGP = 0xB070,
@@ -142,6 +143,7 @@ public static string GetName(Chip chip)
142143
case Chip.NCT6686D: return "Nuvoton NCT6686D";
143144
case Chip.NCT6687D: return "Nuvoton NCT6687D";
144145
case Chip.NCT6683D: return "Nuvoton NCT6683D";
146+
case Chip.NCT6701D: return "Nuvoton NCT6701D";
145147

146148
case Chip.W83627DHG: return "Winbond W83627DHG";
147149
case Chip.W83627DHGP: return "Winbond W83627DHG-P";

LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LpcIO.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,10 @@ private bool DetectWinbondFintek(LpcPort port)
403403
chip = Chip.NCT6799D;
404404
logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN;
405405
break;
406+
case 0x06:
407+
chip = Chip.NCT6701D;
408+
logicalDeviceNumber = WINBOND_NUVOTON_HARDWARE_MONITOR_LDN;
409+
break;
406410
}
407411

408412
break;
@@ -493,6 +497,7 @@ private bool DetectWinbondFintek(LpcPort port)
493497
case Chip.NCT6686D:
494498
case Chip.NCT6687D:
495499
case Chip.NCT6683D:
500+
case Chip.NCT6701D:
496501
_superIOs.Add(new Nct677X(chip, revision, address, port));
497502
break;
498503

LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Nct677X.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ public Nct677X(Chip chip, byte revision, ushort port, LpcPort lpcPort)
151151
case Chip.NCT6797D:
152152
case Chip.NCT6798D:
153153
case Chip.NCT6799D:
154+
case Chip.NCT6701D:
154155
switch (chip)
155156
{
156157
case Chip.NCT6779D:
@@ -162,6 +163,7 @@ public Nct677X(Chip chip, byte revision, ushort port, LpcPort lpcPort)
162163
case Chip.NCT6797D:
163164
case Chip.NCT6798D:
164165
case Chip.NCT6799D:
166+
case Chip.NCT6701D:
165167
Fans = new float?[7];
166168
Controls = new float?[7];
167169
break;
@@ -192,6 +194,7 @@ public Nct677X(Chip chip, byte revision, ushort port, LpcPort lpcPort)
192194
case Chip.NCT6797D:
193195
case Chip.NCT6798D:
194196
case Chip.NCT6799D:
197+
case Chip.NCT6701D:
195198
temperaturesSources.AddRange(new TemperatureSourceData[]
196199
{
197200
new(SourceNct67Xxd.PECI_0, 0x073, 0x074, 7, 0x100),

LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ public enum Model
110110
PRIME_Z690_A,
111111
ROG_MAXIMUS_Z790_FORMULA,
112112
ROG_MAXIMUS_XII_HERO_WIFI,
113+
ROG_CROSSHAIR_X870E_HERO,
113114

114115
//BIOSTAR
115116
B660GTN,

LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ private static void GetBoardSpecificConfiguration
354354
case Chip.NCT6797D:
355355
case Chip.NCT6798D:
356356
case Chip.NCT6799D:
357+
case Chip.NCT6701D:
357358
case Chip.NCT6683D:
358359
GetNuvotonConfigurationD(superIO, manufacturer, model, superIOIndex, v, t, f, c);
359360
break;
@@ -4362,6 +4363,36 @@ private static void GetNuvotonConfigurationD(ISuperIO superIO, Manufacturer manu
43624363

43634364
break;
43644365

4366+
case Model.ROG_CROSSHAIR_X870E_HERO: // NCT6701D
4367+
v.Add(new Voltage("Vcore", 0));
4368+
v.Add(new Voltage("+5V", 1, 4, 1));
4369+
v.Add(new Voltage("AVSB", 2, 34, 34));
4370+
v.Add(new Voltage("+3.3V", 3, 34, 34));
4371+
v.Add(new Voltage("+12V", 4, 11, 1));
4372+
v.Add(new Voltage("Voltage #6", 5, true));
4373+
v.Add(new Voltage("Voltage #7", 6, true));
4374+
v.Add(new Voltage("+3V Standby", 7, 34, 34));
4375+
v.Add(new Voltage("CMOS Battery", 8, 34, 34));
4376+
v.Add(new Voltage("CPU Termination", 9, true)); // Value does not match any in hwmonitor
4377+
v.Add(new Voltage("CPU VDDIO / MC", 10, 1, 1));
4378+
4379+
t.Add(new Temperature("CPU Package", 0));
4380+
t.Add(new Temperature("Motherboard", 2));
4381+
t.Add(new Temperature("CPU", 22));
4382+
4383+
fanControlNames = new[] { "Chassis Fan #1", "CPU Fan", "Chassis Fan #2", "Chassis Fan #3", "Chassis Fan #4", "Water Pump", "AIO Pump" };
4384+
4385+
System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length, $"Expected {fanControlNames.Length} fan register in the SuperIO chip");
4386+
System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length, "Expected counts of fan controls and fan speed registers to be equal");
4387+
4388+
for (int i = 0; i < fanControlNames.Length; i++)
4389+
f.Add(new Fan(fanControlNames[i], i));
4390+
4391+
for (int i = 0; i < fanControlNames.Length; i++)
4392+
c.Add(new Control(fanControlNames[i], i));
4393+
4394+
break;
4395+
43654396
default:
43664397
v.Add(new Voltage("Vcore", 0));
43674398
v.Add(new Voltage("Voltage #2", 1, true));

0 commit comments

Comments
 (0)