Added support for IT8705F super I/O chips.
This commit is contained in:
@@ -24,6 +24,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
F71889F = 0x0723,
|
||||
F71808E = 0x0901,
|
||||
|
||||
IT8705F = 0x8705,
|
||||
IT8712F = 0x8712,
|
||||
IT8716F = 0x8716,
|
||||
IT8718F = 0x8718,
|
||||
@@ -64,6 +65,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
case Chip.F71889F: return "Fintek F71889F";
|
||||
case Chip.F71808E: return "Fintek F71808E";
|
||||
|
||||
case Chip.IT8705F: return "ITE IT8705F";
|
||||
case Chip.IT8712F: return "ITE IT8712F";
|
||||
case Chip.IT8716F: return "ITE IT8716F";
|
||||
case Chip.IT8718F: return "ITE IT8718F";
|
||||
|
||||
@@ -102,7 +102,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
|
||||
voltages = new float?[9];
|
||||
temperatures = new float?[3];
|
||||
fans = new float?[5];
|
||||
fans = new float?[chip == Chip.IT8705F ? 3 : 5];
|
||||
|
||||
// IT8721F, IT8728F and IT8772E use a 12mV resultion ADC, all others 16mV
|
||||
if (chip == Chip.IT8721F || chip == Chip.IT8728F || chip == Chip.IT8771E
|
||||
@@ -113,8 +113,10 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
voltageGain = 0.016f;
|
||||
}
|
||||
|
||||
// older IT8721F revision do not have 16-bit fan counters
|
||||
if (chip == Chip.IT8712F && version < 8) {
|
||||
// older IT8705F and IT8721F revisions do not have 16-bit fan counters
|
||||
if ((chip == Chip.IT8705F && version < 3) ||
|
||||
(chip == Chip.IT8712F && version < 8))
|
||||
{
|
||||
has16bitFanCounter = false;
|
||||
} else {
|
||||
has16bitFanCounter = true;
|
||||
@@ -132,6 +134,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
case Chip.IT8721F:
|
||||
gpioCount = 8;
|
||||
break;
|
||||
case Chip.IT8705F:
|
||||
case Chip.IT8728F:
|
||||
case Chip.IT8771E:
|
||||
case Chip.IT8772E:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
Copyright (C) 2009-2011 Michael Möller <mmoeller@openhardwaremonitor.org>
|
||||
Copyright (C) 2009-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
|
||||
|
||||
*/
|
||||
|
||||
@@ -44,6 +44,8 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
case "f71889fg":
|
||||
lmChips.Add(new LMChip(Chip.F71889F, path)); break;
|
||||
|
||||
case "it8705":
|
||||
lmChips.Add(new LMChip(Chip.IT8705F, path)); break;
|
||||
case "it8712":
|
||||
lmChips.Add(new LMChip(Chip.IT8712F, path)); break;
|
||||
case "it8716":
|
||||
|
||||
+17
-6
@@ -309,7 +309,8 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
#region ITE
|
||||
|
||||
private const byte IT87_ENVIRONMENT_CONTROLLER_LDN = 0x04;
|
||||
private const byte IT87_GPIO_LDN = 0x07;
|
||||
private const byte IT8705_GPIO_LDN = 0x05;
|
||||
private const byte IT87XX_GPIO_LDN = 0x07;
|
||||
private const byte IT87_CHIP_VERSION_REGISTER = 0x22;
|
||||
|
||||
private void IT87Enter() {
|
||||
@@ -335,6 +336,7 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
ushort chipID = ReadWord(CHIP_ID_REGISTER);
|
||||
Chip chip;
|
||||
switch (chipID) {
|
||||
case 0x8705: chip = Chip.IT8705F; break;
|
||||
case 0x8712: chip = Chip.IT8712F; break;
|
||||
case 0x8716: chip = Chip.IT8716F; break;
|
||||
case 0x8718: chip = Chip.IT8718F; break;
|
||||
@@ -360,11 +362,20 @@ namespace OpenHardwareMonitor.Hardware.LPC {
|
||||
|
||||
byte version = (byte)(ReadByte(IT87_CHIP_VERSION_REGISTER) & 0x0F);
|
||||
|
||||
Select(IT87_GPIO_LDN);
|
||||
ushort gpioAddress = ReadWord(BASE_ADDRESS_REGISTER + 2);
|
||||
Thread.Sleep(1);
|
||||
ushort gpioVerify = ReadWord(BASE_ADDRESS_REGISTER + 2);
|
||||
|
||||
ushort gpioAddress;
|
||||
ushort gpioVerify;
|
||||
if (chip == Chip.IT8705F) {
|
||||
Select(IT8705_GPIO_LDN);
|
||||
gpioAddress = ReadWord(BASE_ADDRESS_REGISTER);
|
||||
Thread.Sleep(1);
|
||||
gpioVerify = ReadWord(BASE_ADDRESS_REGISTER);
|
||||
} else {
|
||||
Select(IT87XX_GPIO_LDN);
|
||||
gpioAddress = ReadWord(BASE_ADDRESS_REGISTER + 2);
|
||||
Thread.Sleep(1);
|
||||
gpioVerify = ReadWord(BASE_ADDRESS_REGISTER + 2);
|
||||
}
|
||||
|
||||
IT87Exit();
|
||||
|
||||
if (address != verify || address < 0x100 || (address & 0xF007) != 0) {
|
||||
|
||||
@@ -62,6 +62,7 @@ namespace OpenHardwareMonitor.Hardware.Mainboard {
|
||||
List<Ctrl> c = new List<Ctrl>();
|
||||
|
||||
switch (superIO.Chip) {
|
||||
case Chip.IT8705F:
|
||||
case Chip.IT8712F:
|
||||
case Chip.IT8716F:
|
||||
case Chip.IT8718F:
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("0.4.0.8")]
|
||||
[assembly: AssemblyInformationalVersion("0.4.0.8 Alpha")]
|
||||
[assembly: AssemblyVersion("0.4.0.10")]
|
||||
[assembly: AssemblyInformationalVersion("0.4.0.10 Alpha")]
|
||||
Reference in New Issue
Block a user