Add support for IT8688E chip and various motherboards (#83)

* Add IT8688E chip type

* Add Z390 M Gaming motherboard type

* Add proper voltage and temperatures for Z390 M Gaming

* Add support for Z390 Aorus Ultra and Z390 UD
This commit is contained in:
Antoine Reversat
2019-01-18 16:34:55 +01:00
committed by Phyxion
parent 5a075e67f6
commit 040d6f8222
6 changed files with 50 additions and 1 deletions
+2
View File
@@ -30,6 +30,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
IT8628E = 0x8628,
IT8665E = 0x8665,
IT8686E = 0x8686,
IT8688E = 0x8688,
IT8705F = 0x8705,
IT8712F = 0x8712,
IT8716F = 0x8716,
@@ -86,6 +87,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
case Chip.IT8628E: return "ITE IT8628E";
case Chip.IT8665E: return "ITE IT8665E";
case Chip.IT8686E: return "ITE IT8686E";
case Chip.IT8688E: return "ITE IT8688E";
case Chip.IT8705F: return "ITE IT8705F";
case Chip.IT8712F: return "ITE IT8712F";
case Chip.IT8716F: return "ITE IT8716F";
+12 -1
View File
@@ -64,6 +64,10 @@ namespace OpenHardwareMonitor.Hardware.LPC {
Ring0.WriteIoPort(addressReg, register);
byte value = Ring0.ReadIoPort(dataReg);
valid = register == Ring0.ReadIoPort(addressReg);
// IT8688E doesn't return the value we wrote to
// addressReg when we read it back.
if (this.chip == Chip.IT8688E)
valid = true;
return value;
}
@@ -198,6 +202,11 @@ namespace OpenHardwareMonitor.Hardware.LPC {
fans = new float?[6];
fansDisabled = new bool[6];
controls = new float?[3];
} else if (chip == Chip.IT8688E) {
voltages = new float?[11];
temperatures = new float?[6];
fans = new float?[5];
controls = new float?[3];
} else {
voltages = new float?[9];
temperatures = new float?[3];
@@ -209,7 +218,8 @@ namespace OpenHardwareMonitor.Hardware.LPC {
// IT8620E, IT8628E, IT8721F, IT8728F, IT8772E and IT8686E use a 12mV resultion
// ADC, all others 16mV
if (chip == Chip.IT8620E || chip == Chip.IT8628E || chip == Chip.IT8721F
|| chip == Chip.IT8728F || chip == Chip.IT8771E || chip == Chip.IT8772E || chip == Chip.IT8686E)
|| chip == Chip.IT8728F || chip == Chip.IT8771E || chip == Chip.IT8772E
|| chip == Chip.IT8686E || chip == Chip.IT8688E)
{
voltageGain = 0.012f;
}
@@ -266,6 +276,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
break;
case Chip.IT8620E:
case Chip.IT8628E:
case Chip.IT8688E:
case Chip.IT8705F:
case Chip.IT8728F:
case Chip.IT8771E:
+1
View File
@@ -385,6 +385,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
case 0x8628: chip = Chip.IT8628E; break;
case 0x8665: chip = Chip.IT8665E; break;
case 0x8686: chip = Chip.IT8686E; break;
case 0x8688: chip = Chip.IT8688E; break;
case 0x8705: chip = Chip.IT8705F; break;
case 0x8712: chip = Chip.IT8712F; break;
case 0x8716: chip = Chip.IT8716F; break;
+6
View File
@@ -195,6 +195,12 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
return Model.Z68X_UD3H_B3;
case "Z68X-UD7-B3":
return Model.Z68X_UD7_B3;
case "Z390 M GAMING-CF":
return Model.Z390_M_GAMING;
case "Z390 AORUS ULTRA":
return Model.Z390_AORUS_ULTRA;
case "Z390 UD":
return Model.Z390_UD;
case "FH67":
return Model.FH67;
case "AX370-Gaming K7":
+3
View File
@@ -87,6 +87,9 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
Z68X_UD3H_B3,
Z68X_UD7_B3,
AX370_K7,
Z390_M_GAMING,
Z390_AORUS_ULTRA,
Z390_UD,
// Shuttle
FH67,
+26
View File
@@ -176,6 +176,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
c = new List<Ctrl>();
switch (superIO.Chip) {
case Chip.IT8688E:
case Chip.IT8705F:
case Chip.IT8712F:
case Chip.IT8716F:
@@ -649,6 +650,31 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
t.Add(new Temperature("VRM MOS", 4));
for (int i = 0; i < superIO.Fans.Length; i++)
f.Add(new Fan("Fan #" + (i + 1), i));
break;
case Model.Z390_M_GAMING: // IT8688E
case Model.Z390_AORUS_ULTRA:
case Model.Z390_UD:
v.Add(new Voltage("CPU VCore", 0));
v.Add(new Voltage("+3.3V", 1, 6.49f, 10));
v.Add(new Voltage("+12V", 2, 5f, 1));
v.Add(new Voltage("+5V", 3, 1.5f, 1));
v.Add(new Voltage("CPU VCCGT", 4));
v.Add(new Voltage("CPU VCCSA", 5));
v.Add(new Voltage("VDDQ", 6));
v.Add(new Voltage("DDRVTT", 7));
v.Add(new Voltage("PCHCore", 8));
v.Add(new Voltage("CPU VCCIO", 9));
v.Add(new Voltage("DDRVPP", 10));
t.Add(new Temperature("System1", 0));
t.Add(new Temperature("PCH", 1));
t.Add(new Temperature("CPU", 2));
t.Add(new Temperature("PCIEX16", 3));
t.Add(new Temperature("VRM MOS", 4));
t.Add(new Temperature("System2", 5));
f.Add(new Fan("CPU Fan", 0));
f.Add(new Fan("System Fan #1", 1));
f.Add(new Fan("System Fan #2", 2));
f.Add(new Fan("System Fan #3", 3));
break;
default:
v.Add(new Voltage("CPU VCore", 0));