Add support for ITE IT8792E and Gigabyte X470 Aorus Gaming 7 Wifi (#157)

Thanks to @fboldog
This commit is contained in:
Ferenc Boldog
2019-12-10 10:14:48 +01:00
committed by Phyxion
parent 404b2a766b
commit 741b4aeb1e
7 changed files with 74 additions and 4 deletions
@@ -248,6 +248,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
return Model.B450A_PRO;
case var _ when name.Equals("B350 GAMING PLUS (MS-7A34)", StringComparison.OrdinalIgnoreCase):
return Model.B350_Gaming_Plus;
case var _ when name.Equals("X470 AORUS GAMING 7 WIFI-CF", StringComparison.OrdinalIgnoreCase):
return Model.X470_AORUS_GAMING_7_WIFI;
case var _ when name.Equals("Base Board Product Name", StringComparison.OrdinalIgnoreCase):
case var _ when name.Equals("To be filled by O.E.M.", StringComparison.OrdinalIgnoreCase):
return Model.Unknown;
@@ -40,6 +40,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
IT8728F = 0x8728,
IT8771E = 0x8771,
IT8772E = 0x8772,
IT8792E = 0x8733,
NCT6771F = 0xB470,
NCT6776F = 0xC330,
@@ -97,6 +98,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
case Chip.IT8728F: return "ITE IT8728F";
case Chip.IT8771E: return "ITE IT8771E";
case Chip.IT8772E: return "ITE IT8772E";
case Chip.IT8792E: return "ITE IT8792E";
case Chip.NCT610X: return "Nuvoton NCT610X";
@@ -80,6 +80,14 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
_fansDisabled = new bool[5];
Controls = new float?[3];
}
else if (chip == Chip.IT8792E)
{
Voltages = new float?[8];
Temperatures = new float?[3];
Fans = new float?[3];
_fansDisabled = new bool[3];
Controls = new float?[3];
}
else
{
Voltages = new float?[9];
@@ -98,7 +106,9 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
chip == Chip.IT8771E ||
chip == Chip.IT8772E ||
chip == Chip.IT8686E ||
chip == Chip.IT8688E)
chip == Chip.IT8688E ||
chip == Chip.IT8792E
)
{
_voltageGain = 0.012f;
}
@@ -122,7 +132,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
_has16BitFanCounter = true;
}
if (chip == Chip.IT8620E)
if (chip == Chip.IT8620E || chip == Chip.IT8792E)
{
_hasNewerAutoPwm = true;
}
@@ -495,7 +495,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
private bool DetectIT87(LpcPort port)
{
// IT87XX can enter only on port 0x2E
if (port.RegisterPort != 0x2E)
// IT8792 using 0x4E
if (port.RegisterPort != 0x2E && port.RegisterPort != 0x4E)
return false;
@@ -550,6 +551,9 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
case 0x8772:
chip = Chip.IT8772E;
break;
case 0x8733:
chip = Chip.IT8792E;
break;
default:
chip = Chip.Unknown;
break;
@@ -68,7 +68,14 @@ namespace LibreHardwareMonitor.Hardware.Motherboard.Lpc
Ring0.WriteIoPort(RegisterPort, 0x87);
Ring0.WriteIoPort(RegisterPort, 0x01);
Ring0.WriteIoPort(RegisterPort, 0x55);
Ring0.WriteIoPort(RegisterPort, 0x55);
if (RegisterPort == 0x4E)
{
Ring0.WriteIoPort(RegisterPort, 0xAA);
}
else
{
Ring0.WriteIoPort(RegisterPort, 0x55);
}
}
public void IT87Exit()
@@ -113,6 +113,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
Z68AP_D3,
Z68X_UD3H_B3,
Z68X_UD7_B3,
X470_AORUS_GAMING_7_WIFI,
// Shuttle
FH67,
@@ -211,6 +211,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
case Chip.IT8726F:
case Chip.IT8665E:
case Chip.IT8686E:
case Chip.IT8792E:
GetIteConfigurationsA(superIO, manufacturer, model, v, t, f, c, ref readFan, ref postUpdate, ref mutex);
break;
@@ -792,6 +793,49 @@ namespace LibreHardwareMonitor.Hardware.Motherboard
t.Add(new Temperature("PCIE_X16", 3));
t.Add(new Temperature("VRM", 4));
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;
case Model.X470_AORUS_GAMING_7_WIFI: //ITE IT8686E & IT8792
switch (superIO.Chip)
{
case Chip.IT8686E:
v.Add(new Voltage("Vcore", 0, 0, 1));
v.Add(new Voltage("+3.3V", 1, 6.5F, 10));
v.Add(new Voltage("+12V", 2, 5, 1));
v.Add(new Voltage("+5V", 3, 1.5F, 1));
v.Add(new Voltage("SOC Vcore", 4, 0, 1));
v.Add(new Voltage("VDDP", 5, 0, 1));
v.Add(new Voltage("DIMM AB", 6, 0, 1));
v.Add(new Voltage("3VSB", 7, 10, 10));
v.Add(new Voltage("VBat", 8, 10, 10));
v.Add(new Voltage("AVCC3", 9, 54, 10));
t.Add(new Temperature("System 1", 0));
t.Add(new Temperature("Chipset", 1));
t.Add(new Temperature("CPU", 2));
t.Add(new Temperature("PCIE_X16", 3));
t.Add(new Temperature("VRM", 4));
break;
case Chip.IT8792E:
v.Add(new Voltage("VIN0", 0, 0, 1));
v.Add(new Voltage("DDR VTT", 1, 0, 1));
v.Add(new Voltage("Chipset Core", 2, 0, 1));
v.Add(new Voltage("VIN3", 3, 0, 1));
v.Add(new Voltage("CPU VDD18", 4, 0, 1));
v.Add(new Voltage("Chipset Core +2.5V", 5, 0.5F, 1));
v.Add(new Voltage("3VSB", 6, 1, 10));
v.Add(new Voltage("VBat", 7, 0.7F, 1));
t.Add(new Temperature("PCIE_X8", 0));
t.Add(new Temperature("System 2", 2));
break;
}
for (int i = 0; i < superIO.Fans.Length; i++)
f.Add(new Fan("Fan #" + (i + 1), i));