Corrected the temperature reading on NCT6779D super I/O chips. Added a default mainboard specific configuration for NCT6779D super I/O chips.
This commit is contained in:
@@ -46,7 +46,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
Ring0.WriteIoPort(port + DATA_REGISTER_OFFSET, bank);
|
||||
Ring0.WriteIoPort(port + ADDRESS_REGISTER_OFFSET, register);
|
||||
Ring0.WriteIoPort(port + DATA_REGISTER_OFFSET, value);
|
||||
}
|
||||
}
|
||||
|
||||
// Consts
|
||||
private const ushort NUVOTON_VENDOR_ID = 0x5CA3;
|
||||
@@ -215,6 +215,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
alternateTemperatureRegister = new ushort?[]
|
||||
{ null, null, null, null };
|
||||
break;
|
||||
|
||||
case Chip.NCT6779D:
|
||||
fans = new float?[5];
|
||||
fanRpmBaseRegister = 0x4C0;
|
||||
@@ -354,7 +355,13 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
if ((temperatureSourceMask & (1 << temperaturesSource[i])) > 0)
|
||||
continue;
|
||||
|
||||
temperatures[i] = ReadByte(alternateTemperatureRegister[i].Value);
|
||||
float? temperature = (sbyte)
|
||||
ReadByte(alternateTemperatureRegister[i].Value);
|
||||
|
||||
if (temperature > 125 || temperature < -55)
|
||||
temperature = null;
|
||||
|
||||
temperatures[i] = temperature;
|
||||
}
|
||||
|
||||
for (int i = 0; i < fans.Length; i++) {
|
||||
|
||||
@@ -941,6 +941,34 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case Chip.NCT6779D:
|
||||
v.Add(new Voltage("CPU VCore", 0));
|
||||
v.Add(new Voltage("Voltage #2", 1, true));
|
||||
v.Add(new Voltage("AVCC", 2, 34, 34));
|
||||
v.Add(new Voltage("3VCC", 3, 34, 34));
|
||||
v.Add(new Voltage("Voltage #5", 4, true));
|
||||
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));
|
||||
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));
|
||||
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 Ctrl("Fan Control #" + (i + 1), i));
|
||||
break;
|
||||
default:
|
||||
for (int i = 0; i < superIO.Voltages.Length; i++)
|
||||
v.Add(new Voltage("Voltage #" + (i + 1), i, true));
|
||||
|
||||
Reference in New Issue
Block a user