diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 0c200b3..a82576b 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -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; diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs index 4032d84..57ac63d 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/Chip.cs @@ -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"; diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/IT87XX.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/IT87XX.cs index 1d8f9e7..90e51fe 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/IT87XX.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/IT87XX.cs @@ -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; } diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPCIO.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPCIO.cs index 12c0c99..bc4a947 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPCIO.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPCIO.cs @@ -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; diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPcPort.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPcPort.cs index d4b8913..09d6bf9 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPcPort.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/LPcPort.cs @@ -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() diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 0123f19..183da58 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -113,6 +113,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard Z68AP_D3, Z68X_UD3H_B3, Z68X_UD7_B3, + X470_AORUS_GAMING_7_WIFI, // Shuttle FH67, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index 3262691..08de762 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -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));